From e1d0c58e6468fdd37e6369967ffca22f2121743c Mon Sep 17 00:00:00 2001 From: adrian Date: Wed, 10 Sep 2025 11:52:16 +0200 Subject: [PATCH] test: add ci workflow for substreams tests --- .dockerignore | 3 - .github/actions/substreams-docker/action.yml | 49 ++++++++++ .github/workflows/substreams.tests.yaml | 90 ++++++++++++++++++ .gitignore | 1 - evm/.gitignore | 1 + evm/out/AdapterTest.sol/AdapterTest.json | 1 - evm/out/Address.sol/Address.json | 1 - evm/out/AngleAdapter.sol/AngleAdapter.json | 1 - evm/out/AngleAdapter.sol/IAgToken.json | 1 - evm/out/AngleAdapter.sol/IManager.json | 1 - evm/out/AngleAdapter.sol/ITransmuter.json | 1 - evm/out/AngleAdapter.sol/LibManager.json | 1 - .../AngleAdapter.t.sol/AngleAdapterTest.json | 1 - .../BalancerCustomWrapHelpers.json | 1 - .../BalancerERC20Helpers.json | 1 - .../BalancerERC4626Helpers.json | 1 - .../BalancerInterfaces.sol/IBatchRouter.json | 1 - evm/out/BalancerInterfaces.sol/IPermit2.json | 1 - .../BalancerInterfaces.sol/IRateProvider.json | 1 - evm/out/BalancerInterfaces.sol/IVault.json | 1 - .../BalancerStorage.sol/BalancerStorage.json | 1 - .../BalancerSwapHelpers.json | 1 - .../BalancerV2SwapAdapter.json | 1 - evm/out/BalancerV2SwapAdapter.sol/IPool.json | 1 - evm/out/BalancerV2SwapAdapter.sol/IVault.json | 1 - .../BalancerV2SwapAdapterTest.json | 1 - .../BalancerV3Errors.json | 1 - .../BalancerV3SwapAdapter.json | 1 - .../BalancerV3SwapAdapterTest.json | 1 - evm/out/Base.sol/CommonBase.json | 1 - evm/out/Base.sol/ScriptBase.json | 1 - evm/out/Base.sol/TestBase.json | 1 - evm/out/Constants.sol/Constants.json | 1 - evm/out/Context.sol/Context.json | 1 - evm/out/CurveAdapter.sol/CurveAdapter.json | 1 - .../ICurveCryptoSwapPool.json | 1 - .../ICurveCryptoSwapPoolEth.json | 1 - .../ICurveCustomInt128Pool.json | 1 - .../ICurveStableSwapMetaPool.json | 1 - .../ICurveStableSwapPool.json | 1 - .../ICurveStableSwapPoolEth.json | 1 - .../CurveAdapter.t.sol/CurveAdapterTest.json | 1 - evm/out/CurveAdapter.t.sol/IwstETH.json | 1 - .../CustomBytesAppend.json | 1 - evm/out/ERC20.sol/ERC20.json | 1 - evm/out/ERC20/IERC20.sol/IERC20.json | 1 - evm/out/ERC4626.sol/ERC4626.json | 1 - .../EfficientERC20.sol/EfficientERC20.json | 1 - evm/out/Errors.sol/Errors.json | 1 - .../EtherfiAdapter.sol/EtherfiAdapter.json | 1 - .../EtherfiAdapter.sol/ILiquidityPool.json | 1 - evm/out/EtherfiAdapter.sol/IWeEth.json | 1 - evm/out/EtherfiAdapter.sol/IeEth.json | 1 - .../EtherfiAdapterTest.json | 1 - evm/out/FractionMath.sol/FractionMath.json | 1 - .../FixedPointMathLib.json | 1 - .../FraxV3FrxEthAdapter.json | 1 - evm/out/FraxV3FrxEthAdapter.sol/IFrxEth.json | 1 - .../IFrxEthMinter.json | 1 - evm/out/FraxV3FrxEthAdapter.sol/ISfrxEth.json | 1 - .../FraxV3FrxEthAdapterTest.json | 1 - .../FixedPointMathLib.json | 1 - .../FraxV3SFraxAdapter.json | 1 - evm/out/FraxV3SFraxAdapter.sol/ISFrax.json | 1 - .../FraxV3SFraxAdapterTest.json | 1 - evm/out/IBufferRouter.sol/IBufferRouter.json | 1 - evm/out/IERC1363.sol/IERC1363.json | 1 - evm/out/IERC165.sol/IERC165.json | 1 - evm/out/IERC20.sol/IERC20.json | 1 - .../IERC20Metadata.sol/IERC20Metadata.json | 1 - evm/out/IERC4626.sol/IERC4626.json | 1 - evm/out/IERC721.sol/IERC721.json | 1 - evm/out/IERC721.sol/IERC721Enumerable.json | 1 - evm/out/IERC721.sol/IERC721Metadata.json | 1 - evm/out/IERC721.sol/IERC721TokenReceiver.json | 1 - evm/out/IMulticall3.sol/IMulticall3.json | 1 - evm/out/ISwapAdapter.sol/ISwapAdapter.json | 1 - .../ISwapAdapterTypes.json | 1 - .../ISwapAdapterV2.sol/ISwapAdapterV2.json | 1 - evm/out/ISwapExecutor.sol/ISwapExecutor.json | 1 - .../ISwapExecutorErrors.json | 1 - .../IntegralSwapAdapter.sol/IReserves.json | 1 - .../IntegralSwapAdapter.sol/ITwapERC20.json | 1 - .../IntegralSwapAdapter.sol/ITwapFactory.json | 1 - .../IntegralSwapAdapter.sol/ITwapPair.json | 1 - .../IntegralSwapAdapter.sol/ITwapRelayer.json | 1 - .../IntegralSwapAdapter.json | 1 - .../IntegralSwapAdapterTest.json | 1 - evm/out/Math.sol/Math.json | 1 - .../IMaverickV2Factory.json | 1 - .../IMaverickV2Pool.json | 1 - .../IMaverickV2Quoter.json | 1 - evm/out/MaverickV2SwapAdapter.sol/IWETH9.json | 1 - .../MaverickV2SwapAdapter.json | 1 - .../MaverickV2SwapAdapterTest.json | 1 - evm/out/MockERC20.sol/MockERC20.json | 1 - .../MockERC721.sol/IERC721TokenReceiver.json | 1 - evm/out/MockERC721.sol/MockERC721.json | 1 - evm/out/MockSETHx.sol/MockSETHx.json | 1 - evm/out/MockSGOETH.sol/MockSGOETH.json | 1 - evm/out/MockSUSDC.sol/MockSUSDC.json | 1 - evm/out/Panic.sol/Panic.json | 1 - evm/out/SafeCast.sol/SafeCast.json | 1 - evm/out/SafeERC20.sol/SafeERC20.json | 1 - evm/out/StdAssertions.sol/StdAssertions.json | 1 - evm/out/StdChains.sol/StdChains.json | 1 - evm/out/StdCheats.sol/StdCheats.json | 1 - evm/out/StdCheats.sol/StdCheatsSafe.json | 1 - evm/out/StdError.sol/stdError.json | 1 - evm/out/StdInvariant.sol/StdInvariant.json | 1 - evm/out/StdJson.sol/stdJson.json | 1 - evm/out/StdMath.sol/stdMath.json | 1 - evm/out/StdStorage.sol/stdStorage.json | 1 - evm/out/StdStorage.sol/stdStorageSafe.json | 1 - evm/out/StdStyle.sol/StdStyle.json | 1 - evm/out/StdToml.sol/stdToml.json | 1 - evm/out/StdUtils.sol/StdUtils.json | 1 - .../TemplateSwapAdapter.json | 1 - .../TemplateSwapAdapterTest.json | 1 - evm/out/Test.sol/Test.json | 1 - .../IUniswapV2Factory.json | 1 - .../IUniswapV2Pair.json | 1 - .../UniswapV2SwapAdapter.json | 1 - .../UniswapV2PairFunctionTest.json | 1 - evm/out/Vm.sol/Vm.json | 1 - evm/out/Vm.sol/VmSafe.json | 1 - evm/out/_buildRuntime.s.sol/buildRuntime.json | 1 - evm/out/build-info/1773b8b97607d36c.json | 1 - evm/out/console.sol/console.json | 1 - evm/out/console2.sol/console2.json | 1 - .../draft-IERC6093.sol/IERC1155Errors.json | 1 - evm/out/draft-IERC6093.sol/IERC20Errors.json | 1 - evm/out/draft-IERC6093.sol/IERC721Errors.json | 1 - .../introspection/IERC165.sol/IERC165.json | 1 - evm/out/safeconsole.sol/safeconsole.json | 1 - protocol-testing/run.Dockerfile | 31 +++--- .../release/ethereum_ambient.wasm | Bin 372702 -> 0 bytes .../release/ethereum_balancer_v2.wasm | Bin 552206 -> 0 bytes .../release/ethereum_balancer_v3.wasm | Bin 549787 -> 0 bytes .../release/ethereum_curve.wasm | Bin 646494 -> 0 bytes .../release/ethereum_ekubo_v2.wasm | Bin 630848 -> 0 bytes .../release/ethereum_maverick_v2.wasm | Bin 511933 -> 0 bytes .../release/ethereum_pancakeswap_v3.wasm | Bin 507000 -> 0 bytes .../release/ethereum_sfrax.wasm | Bin 357072 -> 0 bytes .../release/ethereum_sfraxeth.wasm | Bin 397014 -> 0 bytes .../release/ethereum_template_factory.wasm | Bin 402665 -> 0 bytes .../release/ethereum_template_singleton.wasm | Bin 458908 -> 0 bytes .../release/ethereum_uniswap_v2.wasm | Bin 371663 -> 0 bytes .../release/ethereum_uniswap_v3.wasm | Bin 403133 -> 0 bytes .../ethereum_uniswap_v3_logs_only.wasm | Bin 521746 -> 0 bytes .../release/ethereum_uniswap_v4.wasm | Bin 530694 -> 0 bytes 151 files changed, 154 insertions(+), 151 deletions(-) create mode 100644 .github/actions/substreams-docker/action.yml create mode 100644 .github/workflows/substreams.tests.yaml delete mode 100644 evm/out/AdapterTest.sol/AdapterTest.json delete mode 100644 evm/out/Address.sol/Address.json delete mode 100644 evm/out/AngleAdapter.sol/AngleAdapter.json delete mode 100644 evm/out/AngleAdapter.sol/IAgToken.json delete mode 100644 evm/out/AngleAdapter.sol/IManager.json delete mode 100644 evm/out/AngleAdapter.sol/ITransmuter.json delete mode 100644 evm/out/AngleAdapter.sol/LibManager.json delete mode 100644 evm/out/AngleAdapter.t.sol/AngleAdapterTest.json delete mode 100644 evm/out/BalancerCustomWrapHelpers.sol/BalancerCustomWrapHelpers.json delete mode 100644 evm/out/BalancerERC20Helpers.sol/BalancerERC20Helpers.json delete mode 100644 evm/out/BalancerERC4626Helpers.sol/BalancerERC4626Helpers.json delete mode 100644 evm/out/BalancerInterfaces.sol/IBatchRouter.json delete mode 100644 evm/out/BalancerInterfaces.sol/IPermit2.json delete mode 100644 evm/out/BalancerInterfaces.sol/IRateProvider.json delete mode 100644 evm/out/BalancerInterfaces.sol/IVault.json delete mode 100644 evm/out/BalancerStorage.sol/BalancerStorage.json delete mode 100644 evm/out/BalancerSwapHelpers.sol/BalancerSwapHelpers.json delete mode 100644 evm/out/BalancerV2SwapAdapter.sol/BalancerV2SwapAdapter.json delete mode 100644 evm/out/BalancerV2SwapAdapter.sol/IPool.json delete mode 100644 evm/out/BalancerV2SwapAdapter.sol/IVault.json delete mode 100644 evm/out/BalancerV2SwapAdapter.t.sol/BalancerV2SwapAdapterTest.json delete mode 100644 evm/out/BalancerV3Errors.sol/BalancerV3Errors.json delete mode 100644 evm/out/BalancerV3SwapAdapter.sol/BalancerV3SwapAdapter.json delete mode 100644 evm/out/BalancerV3SwapAdapter.t.sol/BalancerV3SwapAdapterTest.json delete mode 100644 evm/out/Base.sol/CommonBase.json delete mode 100644 evm/out/Base.sol/ScriptBase.json delete mode 100644 evm/out/Base.sol/TestBase.json delete mode 100644 evm/out/Constants.sol/Constants.json delete mode 100644 evm/out/Context.sol/Context.json delete mode 100644 evm/out/CurveAdapter.sol/CurveAdapter.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveCryptoSwapPool.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveCryptoSwapPoolEth.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveCustomInt128Pool.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveStableSwapMetaPool.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveStableSwapPool.json delete mode 100644 evm/out/CurveAdapter.sol/ICurveStableSwapPoolEth.json delete mode 100644 evm/out/CurveAdapter.t.sol/CurveAdapterTest.json delete mode 100644 evm/out/CurveAdapter.t.sol/IwstETH.json delete mode 100644 evm/out/CustomBytesAppend.sol/CustomBytesAppend.json delete mode 100644 evm/out/ERC20.sol/ERC20.json delete mode 100644 evm/out/ERC20/IERC20.sol/IERC20.json delete mode 100644 evm/out/ERC4626.sol/ERC4626.json delete mode 100644 evm/out/EfficientERC20.sol/EfficientERC20.json delete mode 100644 evm/out/Errors.sol/Errors.json delete mode 100644 evm/out/EtherfiAdapter.sol/EtherfiAdapter.json delete mode 100644 evm/out/EtherfiAdapter.sol/ILiquidityPool.json delete mode 100644 evm/out/EtherfiAdapter.sol/IWeEth.json delete mode 100644 evm/out/EtherfiAdapter.sol/IeEth.json delete mode 100644 evm/out/EtherfiAdapter.t.sol/EtherfiAdapterTest.json delete mode 100644 evm/out/FractionMath.sol/FractionMath.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.sol/FixedPointMathLib.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.sol/FraxV3FrxEthAdapter.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.sol/IFrxEth.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.sol/IFrxEthMinter.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.sol/ISfrxEth.json delete mode 100644 evm/out/FraxV3FrxEthAdapter.t.sol/FraxV3FrxEthAdapterTest.json delete mode 100644 evm/out/FraxV3SFraxAdapter.sol/FixedPointMathLib.json delete mode 100644 evm/out/FraxV3SFraxAdapter.sol/FraxV3SFraxAdapter.json delete mode 100644 evm/out/FraxV3SFraxAdapter.sol/ISFrax.json delete mode 100644 evm/out/FraxV3SFraxAdapter.t.sol/FraxV3SFraxAdapterTest.json delete mode 100644 evm/out/IBufferRouter.sol/IBufferRouter.json delete mode 100644 evm/out/IERC1363.sol/IERC1363.json delete mode 100644 evm/out/IERC165.sol/IERC165.json delete mode 100644 evm/out/IERC20.sol/IERC20.json delete mode 100644 evm/out/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 evm/out/IERC4626.sol/IERC4626.json delete mode 100644 evm/out/IERC721.sol/IERC721.json delete mode 100644 evm/out/IERC721.sol/IERC721Enumerable.json delete mode 100644 evm/out/IERC721.sol/IERC721Metadata.json delete mode 100644 evm/out/IERC721.sol/IERC721TokenReceiver.json delete mode 100644 evm/out/IMulticall3.sol/IMulticall3.json delete mode 100644 evm/out/ISwapAdapter.sol/ISwapAdapter.json delete mode 100644 evm/out/ISwapAdapterTypes.sol/ISwapAdapterTypes.json delete mode 100644 evm/out/ISwapAdapterV2.sol/ISwapAdapterV2.json delete mode 100644 evm/out/ISwapExecutor.sol/ISwapExecutor.json delete mode 100644 evm/out/ISwapExecutor.sol/ISwapExecutorErrors.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/IReserves.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/ITwapERC20.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/ITwapFactory.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/ITwapPair.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/ITwapRelayer.json delete mode 100644 evm/out/IntegralSwapAdapter.sol/IntegralSwapAdapter.json delete mode 100644 evm/out/IntegralSwapAdapter.t.sol/IntegralSwapAdapterTest.json delete mode 100644 evm/out/Math.sol/Math.json delete mode 100644 evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Factory.json delete mode 100644 evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Pool.json delete mode 100644 evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Quoter.json delete mode 100644 evm/out/MaverickV2SwapAdapter.sol/IWETH9.json delete mode 100644 evm/out/MaverickV2SwapAdapter.sol/MaverickV2SwapAdapter.json delete mode 100644 evm/out/MaverickV2SwapAdapter.t.sol/MaverickV2SwapAdapterTest.json delete mode 100644 evm/out/MockERC20.sol/MockERC20.json delete mode 100644 evm/out/MockERC721.sol/IERC721TokenReceiver.json delete mode 100644 evm/out/MockERC721.sol/MockERC721.json delete mode 100644 evm/out/MockSETHx.sol/MockSETHx.json delete mode 100644 evm/out/MockSGOETH.sol/MockSGOETH.json delete mode 100644 evm/out/MockSUSDC.sol/MockSUSDC.json delete mode 100644 evm/out/Panic.sol/Panic.json delete mode 100644 evm/out/SafeCast.sol/SafeCast.json delete mode 100644 evm/out/SafeERC20.sol/SafeERC20.json delete mode 100644 evm/out/StdAssertions.sol/StdAssertions.json delete mode 100644 evm/out/StdChains.sol/StdChains.json delete mode 100644 evm/out/StdCheats.sol/StdCheats.json delete mode 100644 evm/out/StdCheats.sol/StdCheatsSafe.json delete mode 100644 evm/out/StdError.sol/stdError.json delete mode 100644 evm/out/StdInvariant.sol/StdInvariant.json delete mode 100644 evm/out/StdJson.sol/stdJson.json delete mode 100644 evm/out/StdMath.sol/stdMath.json delete mode 100644 evm/out/StdStorage.sol/stdStorage.json delete mode 100644 evm/out/StdStorage.sol/stdStorageSafe.json delete mode 100644 evm/out/StdStyle.sol/StdStyle.json delete mode 100644 evm/out/StdToml.sol/stdToml.json delete mode 100644 evm/out/StdUtils.sol/StdUtils.json delete mode 100644 evm/out/TemplateSwapAdapter.sol/TemplateSwapAdapter.json delete mode 100644 evm/out/TemplateSwapAdapter.t.sol/TemplateSwapAdapterTest.json delete mode 100644 evm/out/Test.sol/Test.json delete mode 100644 evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Factory.json delete mode 100644 evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Pair.json delete mode 100644 evm/out/UniswapV2SwapAdapter.sol/UniswapV2SwapAdapter.json delete mode 100644 evm/out/UniswapV2SwapAdapter.t.sol/UniswapV2PairFunctionTest.json delete mode 100644 evm/out/Vm.sol/Vm.json delete mode 100644 evm/out/Vm.sol/VmSafe.json delete mode 100644 evm/out/_buildRuntime.s.sol/buildRuntime.json delete mode 100644 evm/out/build-info/1773b8b97607d36c.json delete mode 100644 evm/out/console.sol/console.json delete mode 100644 evm/out/console2.sol/console2.json delete mode 100644 evm/out/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 evm/out/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 evm/out/draft-IERC6093.sol/IERC721Errors.json delete mode 100644 evm/out/introspection/IERC165.sol/IERC165.json delete mode 100644 evm/out/safeconsole.sol/safeconsole.json delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_ambient.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_balancer_v2.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_balancer_v3.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_curve.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_ekubo_v2.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_maverick_v2.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_pancakeswap_v3.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_sfrax.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_sfraxeth.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_template_factory.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_template_singleton.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v2.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3_logs_only.wasm delete mode 100755 substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v4.wasm diff --git a/.dockerignore b/.dockerignore index dc99ecb..0fdf199 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,6 +4,3 @@ **/target/ protocol-testing/*.Dockerfile protocol-testing/docker-compose.yaml -!substreams/target/wasm32-unknown-unknown/release/*.wasm -!evm/out -!evm/cache diff --git a/.github/actions/substreams-docker/action.yml b/.github/actions/substreams-docker/action.yml new file mode 100644 index 0000000..7927789 --- /dev/null +++ b/.github/actions/substreams-docker/action.yml @@ -0,0 +1,49 @@ +name: Build Docker Images +description: Build Docker images +inputs: + protocols: + required: true + description: Protocols to test +runs: + using: "composite" + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Build db image + run: | + docker buildx build \ + --cache-from type=local,src=/tmp/.buildx-cache \ + --cache-to type=local,dest=/tmp/.buildx-cache \ + -f protocol-testing/postgres.Dockerfile \ + -t protocol-testing-db:latest \ + --load . + shell: bash + + - name: Build test-runner image + run: | + docker buildx build \ + --cache-from type=local,src=/tmp/.buildx-cache \ + --cache-to type=local,dest=/tmp/.buildx-cache \ + -f protocol-testing/run.Dockerfile \ + -t protocol-testing-test-runner:latest \ + --load . + shell: bash + + - name: Run protocol tests + env: + PROTOCOLS: ${{ inputs.protocols }} + RPC_URL: ${{ env.RPC_URL }} + SUBSTREAMS_API_TOKEN: ${{ env.SUBSTREAMS_API_TOKEN }} + run: | + docker compose up --abort-on-container-exit --exit-code-from test-runner + shell: bash + working-directory: protocol-testing diff --git a/.github/workflows/substreams.tests.yaml b/.github/workflows/substreams.tests.yaml new file mode 100644 index 0000000..6f4bb7c --- /dev/null +++ b/.github/workflows/substreams.tests.yaml @@ -0,0 +1,90 @@ +name: Substreams Tests + +env: + RPC_URL: ${{ secrets.RPC_URL }} + SUBSTREAMS_API_TOKEN: ${{ secrets.SUBSTREAMS_API_TOKEN }} + AUTH_API_KEY: ${{ secrets.AUTH_API_KEY }} + EXCLUDED_SUBSTREAMS: target|crates|ethereum-template-factory|ethereum-template-singleton + +on: + workflow_dispatch: + pull_request: + paths: + - 'substreams/**' + +jobs: + detect-changes: + runs-on: ubuntu-latest + outputs: + protocol-testing-changed: ${{ steps.protocol-testing-files-changed.outputs.any_changed }} + substreams-changed: ${{ steps.substreams-files-changed.outputs.any_changed }} + all-substreams: ${{ steps.all_substreams.outputs.all_substreams }} + changed-substreams: ${{ steps.changes.outputs.changed_substreams }} + steps: + - uses: actions/checkout@v4 + + - name: Check if any files changed under protocol-testing + id: protocol-testing-files-changed + uses: tj-actions/changed-files@v35 + with: + files: protocol-testing/** + + - name: Check if any files changed under substreams + id: substreams-files-changed + uses: tj-actions/changed-files@v35 + with: + files: substreams/** + + - name: Get all substreams folders + id: all_substreams + run: | + FOLDERS=$(find substreams -mindepth 1 -maxdepth 1 -type d \ + -exec basename {} \; | sort | \ + grep -v -E "^(${EXCLUDED_SUBSTREAMS})$" | \ + tr '\n' ' ') + if [ -z "$FOLDERS" ]; then + echo "No substreams folders found" + else + echo "Substreams folders: $FOLDERS" + fi + echo "all_substreams=$FOLDERS" >> $GITHUB_OUTPUT + + - name: Fetch full git history + if: steps.substreams-files-changed.outputs.any_changed == 'true' + run: git fetch --unshallow || true + + - name: Get changed substreams folders + id: changes + if: steps.substreams-files-changed.outputs.any_changed == 'true' + run: | + CHANGED=$(git diff --name-only origin/main ${{ github.sha }} | \ + grep '^substreams/' | awk -F'/' '{print $2}' | sort -u | \ + grep -v -E "^(${EXCLUDED_SUBSTREAMS})$") + if [ -z "$CHANGED" ]; then + echo "No changed substreams" + else + echo "Changed substreams: $CHANGED" + fi + echo "changed_substreams=$CHANGED" >> $GITHUB_OUTPUT + + test-changed: + runs-on: ubuntu-latest + needs: [detect-changes] + if: needs.detect-changes.outputs.substreams-changed == 'true' && needs.detect-changes.outputs.changed-substreams != '' + steps: + - uses: actions/checkout@v4 + - name: Run tests for changed substreams + uses: ./.github/actions/substreams-docker + with: + protocols: ${{ needs.detect-changes.outputs.changed-substreams }} + + test-all: + runs-on: ubuntu-latest + needs: [detect-changes] + if: github.event_name == 'workflow_dispatch' + steps: + - uses: actions/checkout@v4 + - name: Run all protocol-testing tests + uses: ./.github/actions/substreams-docker + with: + protocols: ${{ needs.detect-changes.outputs.all-substreams }} diff --git a/.gitignore b/.gitignore index bfaeedf..6e0396a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ # will have compiled files and executables debug/ target/ -!substreams/target/wasm32-unknown-unknown/release/*.wasm # Substreams spkg files are build artifacts *.spkg diff --git a/evm/.gitignore b/evm/.gitignore index 01b6f92..409f575 100644 --- a/evm/.gitignore +++ b/evm/.gitignore @@ -1,5 +1,6 @@ # Compiler files cache/ +out/ coverage/ # Ignores development broadcast logs diff --git a/evm/out/AdapterTest.sol/AdapterTest.json b/evm/out/AdapterTest.sol/AdapterTest.json deleted file mode 100644 index 8585ed2..0000000 --- a/evm/out/AdapterTest.sol/AdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f51602061445b5f395f51905f52915b600482106100f75760405161412590816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f51602061445b5f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610140806040526004361015610013575f80fd5b5f3560e01c90816308c4174514610d4e575080631ed7831c14610cd15780632ade388014610b0f5780633e5e3c2314610a925780633f7286f414610a1557806366d9a9a01461086557806385226c81146107d2578063916a17c614610544578063a00872f1146104dc578063b5508aa914610442578063ba414fa61461041e578063d170c3cc1461016a578063e20c9f71146100dd5763fa7626d4146100b7575f80fd5b346100d9575f3660031901126100d957602060ff601e54166040519015158152f35b5f80fd5b346100d9575f3660031901126100d95760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b81811061014b576101478561013b81870382610dd1565b60405191829182610df2565b0390f35b82546001600160a01b0316845260209093019260019283019201610124565b346100d95760403660031901126100d9576004356001600160a01b038116908181036100d957602435906001600160401b0382116100d957366023830112156100d9578160040135916101bc8361104b565b926101ca6040519485610dd1565b8084526024602085019160051b830101913683116100d957602401905b82821061040e575050506101fa82611178565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183885af180156103df5761023a915f916103ec575b5061122c565b15925f5b83518110156103ea576102518185611195565b516040519063ecbbc03360e01b825260048201525f8160248183875af180156103df5786915f91610329575b5060019291610323916102a2866001600160a01b0361029b84611178565b51166112d7565b6102b586868060a01b0361029b84611185565b6102ed826102c3868b611195565b51878060a01b036102d385611178565b5116888060a01b036102e486611185565b5116918b6115bb565b6102f78489611195565b5190858060a01b0361030882611185565b51169061031a878060a01b0391611178565b511691886115bb565b0161023e565b9150503d805f833e61033b8183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d95781516103718161104b565b9161037f6040519384610dd1565b81835260208084019260051b8501019081116100d9576020899401915b8183106103ad57505050600161027d565b825195989593945091929091906001600160a01b03811681036100d9578152939693889392602090810192910161039c565b6040513d5f823e3d90fd5b005b61040891503d805f833e6104008183610dd1565b8101906111a9565b85610234565b81358152602091820191016101e7565b346100d9575f3660031901126100d95760206104386110dd565b6040519015158152f35b346100d9575f3660031901126100d95760195461045e8161104b565b9061046c6040519283610dd1565b80825260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104b057604051806101478782610f07565b6001602081926040516104ce816104c78189610fca565b0382610dd1565b81520192019201919061049b565b346100d95760203660031901126100d957600435601f548110156100d95761050390610f66565b610531576104c761051d6101479260405192838092610fca565b604051918291602083526020830190610e34565b634e487b7160e01b5f525f60045260245ffd5b346100d9575f3660031901126100d957601c546105608161104b565b61056d6040519182610dd1565b8181526020810191601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211925f905b8282106105b357604051806101478682610e58565b6040516105bf81610d87565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b816007840110610733578460019794600297946020979461064b945491818110610717575b8181106106fb575b8181106106df575b8181106106c3575b8181106106a7575b81811061068b575b818110610671575b1061065d575b500382610dd1565b8382015281520195019101909361059e565b6001600160e01b031916815286018d610643565b828a1b6001600160e01b0319168452928901928b0161063d565b604083901b6001600160e01b0319168452928901928b01610635565b606083901b6001600160e01b0319168452928901928b0161062d565b608083901b6001600160e01b0319168452928901928b01610625565b60a083901b6001600160e01b0319168452928901928b0161061d565b60c083901b6001600160e01b0319168452928901928b01610615565b60e083901b6001600160e01b0319168452928901928b0161060d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916105e8565b346100d9575f3660031901126100d957601a546107ee8161104b565b906107fc6040519283610dd1565b808252601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061084057604051806101478782610f07565b600160208192604051610857816104c78189610fca565b81520192019201919061082b565b346100d9575f3660031901126100d957601b546108818161104b565b61088e6040519182610dd1565b8181526020810191601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1925f905b8282106108d457604051806101478682610e58565b6040516108e081610d87565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106109765784600197946002979460209794610964945491818110610717578181106106fb578181106106df578181106106c3578181106106a75781811061068b57818110610671571061065d57500382610dd1565b838201528152019501910190936108bf565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191610909565b346100d9575f3660031901126100d95760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b818110610a73576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610a5c565b346100d9575f3660031901126100d95760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b818110610af0576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610ad9565b346100d9575f3660031901126100d957601d54610b2b8161104b565b90610b396040519283610dd1565b808252602082019081601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f915b838310610c3e57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b828210610ba857505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b8501019401925f5b828110610c135750505050506020806001929601920192018594939192610b99565b9091929394602080610c31600193605f198782030189528951610e34565b9701950193929101610bf1565b604051610c4a81610d87565b82546001600160a01b03168152600183018054610c668161104b565b91610c746040519384610dd1565b81835260208301905f5260205f20905f905b838210610cac575050505060019282602092836002950152815201920192019190610b6a565b600160208192604051610cc3816104c7818a610fca565b815201930191019091610c86565b346100d9575f3660031901126100d95760405180602060165491828152019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110610d2f576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610d18565b346100d95760403660031901126100d957610d7f602091610d6e81610d87565b600435815260243583820152611080565b604051908152f35b604081019081106001600160401b03821117610da257604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610da257604052565b90601f801991011681019081106001600160401b03821117610da257604052565b60206040818301928281528451809452019201905f5b818110610e155750505090565b82516001600160a01b0316845260209384019390920191600101610e08565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610e8a57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210610ee45750505060208060019297019301930191939290610e7b565b82516001600160e01b031916845260209384019390920191600190910190610ec5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f3957505050505090565b9091929394602080610f57600193603f198682030187528951610e34565b97019301930191939290610f2a565b601f54811015610f7e57601f5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c92168015610fc0575b6020831014610fac57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610fa1565b5f9291815491610fd983610f92565b808352926001811690811561102e5750600114610ff557505050565b5f9081526020812093945091925b838310611014575060209250010190565b600181602092949394548385870101520191019190611003565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b038111610da25760051b60200190565b811561106c570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156110ba5760206110b792015190611062565b90565b634e487b7160e01b5f52601160045260245ffd5b908160209103126100d9575190565b60085460ff1680156110ec5790565b50604051630667f9d760e41b81525f5160206140d05f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206140d05f395f51905f525afa9081156103df575f91611146575b50151590565b90506020813d602011611170575b8161116160209383610dd1565b810103126100d957515f611140565b3d9150611154565b805115610f7e5760200190565b805160011015610f7e5760400190565b8051821015610f7e5760209160051b010190565b6020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d9578151906111dd8261104b565b926111eb6040519485610dd1565b82845260208085019360051b8201019182116100d957602001915b8183106112135750505090565b8251600a8110156100d957815260209283019201611206565b5f5b8151811015611275576112418183611195565b51600a8110156112615760051461125a5760010161122e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b8151811015611275576112908183611195565b51600a8110156112615760091461125a5760010161127d565b5f5b8151811015611275576112be8183611195565b51600a8110156112615760081461125a576001016112ab565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f1960448401526044835261130f606484610dd1565b82516001600160a01b038316915f91829182855af19061132d612f81565b8261138f575b5081611384575b501561134557505050565b61137d611382936040519063095ea7b360e01b602083015260248201525f604482015260448152611377606482610dd1565b82612fb0565b612fb0565b565b90503b15155f61133a565b805191925081159182156113a7575b5050905f611333565b6113ba92506020809183010191016115a3565b5f8061139e565b6001600160401b038111610da257601f01601f191660200190565b91908260409103126100d9576040516113f481610d87565b6020808294805184520151910152565b6020818303126100d9578051906001600160401b0382116100d9570181601f820112156100d95780516114368161104b565b926114446040519485610dd1565b81845260208085019260061b840101928184116100d957602001915b83831061146e575050505090565b602060409161147d84866113dc565b815201920191611460565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106114cc5750505090565b82518452602093840193909201916001016114bf565b906080828203126100d9576115139060408051936114ff85610db6565b8051855260208101516020860152016113dc565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b60405190611558606083610dd1565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b908160209103126100d9575180151581036100d95790565b6101009490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f81806064810160c08490520381836001600160a01b0389165af180156103df575f90612eef575b6116249150611178565b5160a052606060e081905260405161167e916116409082610dd1565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015260a051613073565b60e051505f8061170661173360405161169960e05182610dd1565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190610e34565b6001600160a01b038a811660448401528716606483015260a051608483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156103df576117a0915f91612ed5575b5061127b565b90604051916117b060a084610dd1565b60048352608036602085013715612ec9575f5b6117cc83611178565b526103e860a051046117dd83611185565b52815160021015610f7e5760e051820160a05160011c9052815160031015610f7e5760a051608083015260405163155adc9160e31b8152935f858061182886868b8a60048601611488565b0381836001600160a01b0386165af19485156103df575f95612ead575b5061185861185286611178565b51611080565b85515f198101919082116110ba576118766118526118d09389611195565b60e05160405192906118889084610dd1565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526130e4565b6118dc61185286611178565b85515f1981019081116110ba576119776119905f936118ff61185286958c611195565b60e0516040519291906119129084610dd1565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260e05160248601526084850190610e34565b916044840152606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa5060e0516040516119f6916119b99082610dd1565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152613119565b611a49611a0286611178565b5151604061012081905280519190611a1a9083610dd1565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152613073565b611a9b6020611a5787611178565b5101516101205180519190611a6c9083610dd1565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152613073565b611aa761185286611178565b946101205150611ae9866101205151611ac36101205182610dd1565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b602082015261315d565b6101205151611af781610db6565b5f81525f6020820152610120515190611b0f82610d87565b5f808352602083015261012051015283515f1981019081116110ba57611b359085611195565b5160058181020481036110ba575f80610120515160208101906370a0823160e01b825230602482015260248152611b6d604482610dd1565b51908b5afa50611b8d611b7e612f81565b602080825183010191016110ce565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e5468010000000000000000811015610da25760018101600e55600e54811015610f7e57600e5f5260205f200130905560018060a01b0360115416600f5460e01b60105490611c0a613328565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f52602052610120515f2061012051516020810190611c6081611c52888886613311565b03601f198101835282610dd1565b5190205f5260205260ff6003610120515f2001541615612e9f575b6001600160a01b0384165f908152600d60205260409020905f52602052611c52611cb8610120515f20936101205151928391602083019586613311565b5190205f52602052610120515f206001810154926002820154611cdb8186613262565b612ced575b82546101205151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f5160206140d05f395f51905f525afa968715612cac575f97612cb9575b506001908201610100031b5f1901811b1986165f5160206140d05f395f51905f523b156100d95761012051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f5160206140d05f395f51905f525af18015612cac57612c98575b50600f5460e01b6020611dfb6024611dc2600d613402565b61012051519384918183019663ffffffff60e01b1687528051918291018484015e810160c051838201520301601f198101835282610dd1565b60115460c051915191928392916001600160a01b03165afa611e1b612f81565b6010549091906001600160fb1b03811681036124715760c05183519093906020811115612c9257506020905b60c051925b828410612c2c575050505015918215612c1e575b5050612b31575050506bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e5460c051600e5580612b06575b5060c0516010556013805460ff19169055601454611eb990610f92565b80612aa4575b506101205151634b88b8ad60e11b815260208160048160c0515f5160206140d05f395f51905f525af180156123da5760c051608052612a71575b5060015b84518110156124b7575f80611fb8611fde611f1785610f66565b50611f22868b611195565b51611fca6104c7611f91610120515194611f3e60e05187610dd1565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b61012051870152610120515192838092610fca565b6101205151635821efa160e01b602082015260e05160248201529586946084860190610e34565b84810360231901604486015290610e34565b90606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa506120006118528284611195565b5f8061207861209c8c612013878c611195565b516101205151916120276101205184610dd1565b601783527f544553543a205377617070696e67202564206f662025730000000000000000006020840152610120515194859363038fd88960e31b602086015260e05160248601526084850190610e34565b60448401929092526001600160a01b0316606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa508460808a896120e16120c3878c611195565b516101205151638307c65560e01b815295869485946004860161151b565b038160c05160018060a01b038a165af19081156123da5760c05191612489575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156124715761214e61215a916a084595161401484a000000612146878c611195565b519102611062565b91610120510151611080565b916121a08261012051516121716101205182610dd1565b601d81527f544553543a20202d2045786563757465642070726963653a2020202564000000602082015261315d565b6121e58161012051516121b66101205182610dd1565b601d81527f544553543a20202d20507269636520617420616d6f756e743a20202564000000602082015261315d565b61222a8361012051516121fb6101205182610dd1565b601d81527f544553543a20202d20507269636520616674657220737761703a202564000000602082015261315d565b61010051156123e95760e05161012051516123659461230893909261229c9291906122559083610dd1565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b61012051830152856131a0565b60e051610120515191906122b09083610dd1565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000061012051830152836130e4565b60e0516101205151919061231c9083610dd1565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b61012051830152896130e4565b610120515190631135fc2960e21b8252608051600483015260208260248160c0515f5160206140d05f395f51905f525af19182156123da576001926123ac575b5001611efd565b6123cc9060203d81116123d3575b6123c48183610dd1565b8101906115a3565b505f6123a5565b503d6123ba565b61012051513d60c051823e3d90fd5b6124129061240361246c946123fc611549565b908d6131a0565b61240b611549565b908b6131a0565b61012051519061242460e05183610dd1565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b61012051830152896131a0565b612365565b634e487b7160e01b60c051526011600452602460c051fd5b6124aa915060803d81116124b0575b6124a28183610dd1565b8101906114e2565b5f612101565b503d612498565b5050915091939250606960a0510260a051810460691460a0511517156124715761012051516348bd7dfd60e01b815260c08051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af180156123da576125379160c05191612a55575b506112a9565b156128f5576125a184610120515161255160e05182610dd1565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101205182015261315d565b61012051805194906125b39086610dd1565b6001855261012051601f19013660208701376125ce85611178565b52610120515163155adc9160e31b815260c05181806125f38888878c60048601611488565b038160c05160018060a01b0388165af190816128d3575b506128665760016126196131d5565b6308c379a0146127d7575b6123da57612633608094611178565b5194612657610120515196879586948594638307c65560e01b86526004860161151b565b60c051919003926001600160a01b03165af190816127ba575b5061275757600161267f6131d5565b6308c379a0146126d3575b6123da575b61138261012051516126a46101205182610dd1565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152613119565b6126db6131f0565b806126e7575b5061268a565b60c05160e05161012051519193506127519291906127059082610dd1565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101205182015261326f565b5f6126e1565b610120515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6127d29060803d6080116124b0576124a28183610dd1565b612670565b6127df6131f0565b806127eb575b50612624565b60c05160e05161012051519193506128609291906128099082610dd1565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101205182015261326f565b5f6127e5565b610120515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6128f0903d8060c051833e6128e88183610dd1565b810190611404565b61260a565b60e05161012051516129599186919061290e9082610dd1565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101205182015261315d565b610120518051949061296b9086610dd1565b6001855261012051601f190136602087013761298685611178565b5261012051519363155adc9160e31b855260c05185806129ac8488878c60048601611488565b038160c05160018060a01b0388165af19081156123da576080956129d592612a3b575b50611178565b51946129f9610120515196879586948594638307c65560e01b86526004860161151b565b60c051919003926001600160a01b03165af180156123da57612a1c575b5061268f565b612a349060803d6080116124b0576124a28183610dd1565b505f612a16565b612a50903d8060c051833e6128e88183610dd1565b6129cf565b612a6b91503d8060c051833e6104008183610dd1565b5f612531565b6020813d602011612a9c575b81612a8a60209383610dd1565b810103126100d957516080525f611ef9565b3d9150612a7d565b601f8111600114612abd575060c0516014555b5f611ebf565b601460c051526001601f602060c05120920160051c820191015b818110612afb57505060c08051601490819052905160208120918190559055612ab7565b5f8155600101612ad7565b600e60c05152602060c05120908101905b818110612b245750611e9c565b60c0518155600101612b17565b54915f5160206140d05f395f51905f523b15612c185761012051516370ca10bb60e01b815260c0516001600160a01b03909316600482015260248101939093526044830152818060648101038160c0515f5160206140d05f395f51905f525af180156123da57612bff575b610120515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b60c051612c0b91610dd1565b60c051612c185780612b9c565b60c05180fd5b600502141590505f80611e60565b90919294612c3d868360051b613262565b8351811015612c7a57830160200151600387901b91906001600160f81b03191687156008898504141715612471576001921c179501929190611e4c565b634e487b7160e01b60c051526032600452602460c051fd5b90611e47565b5f612ca291610dd1565b5f60c0525f611daa565b61012051513d5f823e3d90fd5b9096506020813d602011612ce5575b81612cd560209383610dd1565b810103126100d957519581611d2f565b3d9150612cc8565b612cf78186613262565b6101000361010081116110ba5760ff81116110ba57610120515163348051d760e11b81526001821b60048201525f816024815f5160206140d05f395f51905f525afa908115612cac575f91612e17575b50602091612ddc606a60019361012051519586917f73746453746f726167652066696e642853746453746f72616765293a20506163828401527f6b656420736c6f742e2057652063616e2774206669742076616c7565206772656101205184015269030ba32b9103a3430b7160b51b60e0518401528051918291018484015e81015f838201520301601f198101855284610dd1565b1b836005021015612ded5750611ce0565b610120515162461bcd60e51b815260206004820152908190612e13906024830190610e34565b0390fd5b90503d805f833e612e288183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019181601f840112156100d9578251612e5e816113c1565b92612e6e61012051519485610dd1565b818452602082860101116100d957606a6001935f602084612ddc9582809a018386015e830101529350505091612d47565b612ea7613639565b50611c7b565b612ec29195503d805f833e6128e88183610dd1565b935f611845565b61271060a051046117c3565b612ee991503d805f833e6104008183610dd1565b5f61179a565b503d805f833e612eff8183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d9578151612f358161104b565b92612f436040519485610dd1565b81845260208085019260051b8201019283116100d957602001905b828210612f71575050506116249061161a565b8151815260209182019101612f5e565b3d15612fab573d90612f92826113c1565b91612fa06040519384610dd1565b82523d5f602084013e565b606090565b8151612fdb926001600160a01b03909216915f91829160200182855af1612fd5612f81565b916132b3565b80519081612fe7575050565b602080612ff89383010191016115a3565b15612fff57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6110b79392606092825260208201528160408201520190610e34565b5f5160206140d05f395f51905f523b156100d9576130bb915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190610e34565b03815f5160206140d05f395f51905f525afa80156103df576130da5750565b5f61138291610dd1565b905f5160206140d05f395f51905f523b156100d9575f916130bb6040519485938493636cd1e26960e11b855260048501613057565b5f611c52613146829360405192839163104c13eb60e21b6020840152602060248401526044830190610e34565b6020815191016a636f6e736f6c652e6c6f675afa50565b61318c6131465f93928493604051938492632d839cb360e21b6020850152604060248501526064840190610e34565b90604483015203601f198101835282610dd1565b905f5160206140d05f395f51905f523b156100d9575f916130bb6040519485938493630389490b60e61b855260048501613057565b5f9060033d116131e157565b905060045f803e5f5160e01c90565b5f60443d106110b7576040513d600319016004823e8051913d60248401116001600160401b0384111761325c57828201928351916001600160401b038311613254573d8401600319018584016020011161325457506110b792910160200190610dd1565b949350505050565b92915050565b919082018092116110ba57565b6132a16131465f9392611c528594604051948593634b5c427760e01b6020860152604060248601526064850190610e34565b83810360231901604485015290610e34565b906132d757508051156132c857805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580613308575b6132e8575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156132e0565b60209291908391805192839101825e019081520190565b613333601454610f92565b6133f0576040519081826020600e549283815201600e5f5260205f20925f5b8181106133d757505061336792500383610dd1565b81518060051b90808204602014901517156110ba57613385816113c1565b906133936040519283610dd1565b8082526133a2601f19916113c1565b013660208301375f5b83518110156133d257806133c160019286611195565b5160208260051b85010152016133ab565b509150565b8454835260019485019487945060209093019201613352565b6040516110b7816104c7816014610fca565b60078101906134118254610f92565b6134cd57600191500190604051808360208295549384815201905f5260205f20925f5b8181106134b457505061344992500383610dd1565b81518060051b90808204602014901517156110ba57613467816113c1565b906134756040519283610dd1565b808252613484601f19916113c1565b013660208301375f5b83518110156133d257806134a360019286611195565b5160208260051b850101520161348d565b8454835260019485019487945060209093019201613434565b506110b76104c79160405192838092610fca565b905f806020600285015460e01b61353160246134fc88613402565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283610dd1565b60048601549151916001600160a01b03165afa600361354e612f81565b930154600581901b906001600160fb1b038116036110ba575f938051602081115f146135d657506020905b5f925b82841061358b57505050509190565b909192956135998783613262565b8351811015610f7e57830160200151600388901b91906001600160f81b031916881560088a85041417156110ba576001921c17960192919061357c565b90613579565b9080601f830112156100d95781516135f38161104b565b926136016040519485610dd1565b81845260208085019260051b8201019283116100d957602001905b8282106136295750505090565b815181526020918201910161361c565b601154600f546010546001600160a01b03909216915f9160e01b61365d600d613402565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061369681611c52888886613311565b5190205f5260205260ff600360405f20015416613ef2575f5160206140d05f395f51905f523b156100d95760405163266cf10960e01b81525f81600481835f5160206140d05f395f51905f525af180156103df57613edd575b506136fa600d6134e1565b90506040516365bc948160e01b81528660048201528581602481835f5160206140d05f395f51905f525af1908115613ed2578691613e66575b5080516137a457608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015613e5e578160206137bf836137f095611195565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206140d05f395f51905f525afa928315613e53578893613e20575b508215613dc8575b6138228282611195565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206140d05f395f51905f525afa908115613dbd578b91613d8c575b5061387d600d6134e1565b91909382155f14613d85575f19905b5f5160206140d05f395f51905f523b15613d6c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206140d05f395f51905f525af18015613ce657908d91613d70575b50506138fd600d6134e1565b601154909491506001600160a01b03165f5160206140d05f395f51905f523b15613d6c576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206140d05f395f51905f525af18015613d6157908c91613d48575b505082613d3d575b505015613d33578793889360ff60135416613bad575b6001868601610100031b5f1901851b16841c8103613b9f575090613a17917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89611c526139ec8d604051928391602083019586613311565b5190206139f98686611195565b51906040519283528a602084015260408301526060820152a1611195565b519060405191608083018381106001600160401b03821117613b8b5790600393929160405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190613a8281611c528d8d86613311565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190613add81611c52888886613311565b519020855260205260ff60036040862001541615613b2e576040948452600d602052848420908452602052611c52613b22858520938651928391602083019586613311565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b634e487b7160e01b89526041600452602489fd5b935091506001905b016137a6565b9450613bf89350613bbe8383611195565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206140d05f395f51905f525afa948515613d28578a95613cf5575b50613c2486600d613f33565b959096613c3281600d61400c565b60115490939192906001600160a01b03165f5160206140d05f395f51905f523b15613cf1576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206140d05f395f51905f525af18015613ce657908d91613ccd575b505087613cc5575b509495613991575093509150600190613ba7565b96505f613cb1565b81613cd791610dd1565b613ce2578b5f613ca9565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211613d20575b81613d1060209383610dd1565b810103126100d95751935f613c18565b3d9150613d03565b6040513d8c823e3d90fd5b9150600190613ba7565b141590505f8061397b565b81613d5291610dd1565b613d5d578a5f613973565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81613d7a91610dd1565b613ce2578b5f6138f1565b8c9061388c565b90506020813d8211613db5575b81613da660209383610dd1565b810103126100d957515f613872565b3d9150613d99565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5613e18613df68484611195565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1613818565b9092506020813d8211613e4b575b81613e3b60209383610dd1565b810103126100d95751915f613810565b3d9150613e2e565b6040513d8a823e3d90fd5b505050613ab0565b90503d8087833e613e778183610dd1565b8101604082820312613ece5781516001600160401b038111613eca5781613e9f9184016135dc565b916020810151906001600160401b038211613ec657613ebf9291016135dc565b505f613733565b8880fd5b8780fd5b8680fd5b6040513d88823e3d90fd5b613eea9194505f90610dd1565b5f925f6136ef565b91939092505f52600d60205260405f20905f52602052611c52613f2460405f2093604051928391602083019586613311565b5190205f5260205260405f2090565b91905f5b6101008110613f4a57505090505f905f90565b8060ff0360ff81116110ba576004850154600190911b906001600160a01b03165f5160206140d05f395f51905f523b156100d9576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206140d05f395f51905f525af180156103df57613ffc575b50613fd6846134e1565b81613ff2575b50613fe957600101613f37565b92505060019190565b905015155f613fdc565b5f61400691610dd1565b5f613fcc565b91905f5b610100811061402357505090505f905f90565b60048401546001821b906001600160a01b03165f5160206140d05f395f51905f523b156100d9576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206140d05f395f51905f525af180156103df576140bf575b506140a2846134e1565b816140b5575b50613fe957600101614010565b905015155f6140a8565b5f6140c991610dd1565b5f61409856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220aaa303a2e73c457c5330a4baeaaa08061815030f38cefa5c159eaf6399f2bfd364736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"360:8685:65:-:0;;;;;;3166:4:2;360:8685:65;;3166:4:2;360:8685:65;;;3166:4:2;360:8685:65;3166:4:2;360:8685:65;;1038:4:12;360:8685:65;;;1038:4:12;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;360:8685:65;;;;;;;;;:::i;:::-;564:29;360:8685;;-1:-1:-1;;;360:8685:65;;;;;564:29;;360:8685;;;;:::i;:::-;;;;-1:-1:-1;;;360:8685:65;;;;;564:29;;360:8685;;;;:::i;:::-;564:29;360:8685;;-1:-1:-1;;;360:8685:65;;;;564:29;;;360:8685;;;564:29;360:8685;;;564:29;360:8685;;;-1:-1:-1;;360:8685:65;;;;;-1:-1:-1;;;;;;;;;;;360:8685:65;;564:29;360:8685;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;360:8685:65;;;;;;;;;;;-1:-1:-1;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;360:8685:65;;;;;;;;;;;564:29;360:8685;;;;;;;;-1:-1:-1;;;;;;;;;;;360:8685:65;;;;;;;;;;;;;;3166:4:2;360:8685:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610140806040526004361015610013575f80fd5b5f3560e01c90816308c4174514610d4e575080631ed7831c14610cd15780632ade388014610b0f5780633e5e3c2314610a925780633f7286f414610a1557806366d9a9a01461086557806385226c81146107d2578063916a17c614610544578063a00872f1146104dc578063b5508aa914610442578063ba414fa61461041e578063d170c3cc1461016a578063e20c9f71146100dd5763fa7626d4146100b7575f80fd5b346100d9575f3660031901126100d957602060ff601e54166040519015158152f35b5f80fd5b346100d9575f3660031901126100d95760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b81811061014b576101478561013b81870382610dd1565b60405191829182610df2565b0390f35b82546001600160a01b0316845260209093019260019283019201610124565b346100d95760403660031901126100d9576004356001600160a01b038116908181036100d957602435906001600160401b0382116100d957366023830112156100d9578160040135916101bc8361104b565b926101ca6040519485610dd1565b8084526024602085019160051b830101913683116100d957602401905b82821061040e575050506101fa82611178565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183885af180156103df5761023a915f916103ec575b5061122c565b15925f5b83518110156103ea576102518185611195565b516040519063ecbbc03360e01b825260048201525f8160248183875af180156103df5786915f91610329575b5060019291610323916102a2866001600160a01b0361029b84611178565b51166112d7565b6102b586868060a01b0361029b84611185565b6102ed826102c3868b611195565b51878060a01b036102d385611178565b5116888060a01b036102e486611185565b5116918b6115bb565b6102f78489611195565b5190858060a01b0361030882611185565b51169061031a878060a01b0391611178565b511691886115bb565b0161023e565b9150503d805f833e61033b8183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d95781516103718161104b565b9161037f6040519384610dd1565b81835260208084019260051b8501019081116100d9576020899401915b8183106103ad57505050600161027d565b825195989593945091929091906001600160a01b03811681036100d9578152939693889392602090810192910161039c565b6040513d5f823e3d90fd5b005b61040891503d805f833e6104008183610dd1565b8101906111a9565b85610234565b81358152602091820191016101e7565b346100d9575f3660031901126100d95760206104386110dd565b6040519015158152f35b346100d9575f3660031901126100d95760195461045e8161104b565b9061046c6040519283610dd1565b80825260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106104b057604051806101478782610f07565b6001602081926040516104ce816104c78189610fca565b0382610dd1565b81520192019201919061049b565b346100d95760203660031901126100d957600435601f548110156100d95761050390610f66565b610531576104c761051d6101479260405192838092610fca565b604051918291602083526020830190610e34565b634e487b7160e01b5f525f60045260245ffd5b346100d9575f3660031901126100d957601c546105608161104b565b61056d6040519182610dd1565b8181526020810191601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211925f905b8282106105b357604051806101478682610e58565b6040516105bf81610d87565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b816007840110610733578460019794600297946020979461064b945491818110610717575b8181106106fb575b8181106106df575b8181106106c3575b8181106106a7575b81811061068b575b818110610671575b1061065d575b500382610dd1565b8382015281520195019101909361059e565b6001600160e01b031916815286018d610643565b828a1b6001600160e01b0319168452928901928b0161063d565b604083901b6001600160e01b0319168452928901928b01610635565b606083901b6001600160e01b0319168452928901928b0161062d565b608083901b6001600160e01b0319168452928901928b01610625565b60a083901b6001600160e01b0319168452928901928b0161061d565b60c083901b6001600160e01b0319168452928901928b01610615565b60e083901b6001600160e01b0319168452928901928b0161060d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916105e8565b346100d9575f3660031901126100d957601a546107ee8161104b565b906107fc6040519283610dd1565b808252601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061084057604051806101478782610f07565b600160208192604051610857816104c78189610fca565b81520192019201919061082b565b346100d9575f3660031901126100d957601b546108818161104b565b61088e6040519182610dd1565b8181526020810191601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1925f905b8282106108d457604051806101478682610e58565b6040516108e081610d87565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106109765784600197946002979460209794610964945491818110610717578181106106fb578181106106df578181106106c3578181106106a75781811061068b57818110610671571061065d57500382610dd1565b838201528152019501910190936108bf565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191610909565b346100d9575f3660031901126100d95760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b818110610a73576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610a5c565b346100d9575f3660031901126100d95760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b818110610af0576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610ad9565b346100d9575f3660031901126100d957601d54610b2b8161104b565b90610b396040519283610dd1565b808252602082019081601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f915b838310610c3e57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b828210610ba857505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b8501019401925f5b828110610c135750505050506020806001929601920192018594939192610b99565b9091929394602080610c31600193605f198782030189528951610e34565b9701950193929101610bf1565b604051610c4a81610d87565b82546001600160a01b03168152600183018054610c668161104b565b91610c746040519384610dd1565b81835260208301905f5260205f20905f905b838210610cac575050505060019282602092836002950152815201920192019190610b6a565b600160208192604051610cc3816104c7818a610fca565b815201930191019091610c86565b346100d9575f3660031901126100d95760405180602060165491828152019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110610d2f576101478561013b81870382610dd1565b82546001600160a01b0316845260209093019260019283019201610d18565b346100d95760403660031901126100d957610d7f602091610d6e81610d87565b600435815260243583820152611080565b604051908152f35b604081019081106001600160401b03821117610da257604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610da257604052565b90601f801991011681019081106001600160401b03821117610da257604052565b60206040818301928281528451809452019201905f5b818110610e155750505090565b82516001600160a01b0316845260209384019390920191600101610e08565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610e8a57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210610ee45750505060208060019297019301930191939290610e7b565b82516001600160e01b031916845260209384019390920191600190910190610ec5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f3957505050505090565b9091929394602080610f57600193603f198682030187528951610e34565b97019301930191939290610f2a565b601f54811015610f7e57601f5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c92168015610fc0575b6020831014610fac57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610fa1565b5f9291815491610fd983610f92565b808352926001811690811561102e5750600114610ff557505050565b5f9081526020812093945091925b838310611014575060209250010190565b600181602092949394548385870101520191019190611003565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b038111610da25760051b60200190565b811561106c570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156110ba5760206110b792015190611062565b90565b634e487b7160e01b5f52601160045260245ffd5b908160209103126100d9575190565b60085460ff1680156110ec5790565b50604051630667f9d760e41b81525f5160206140d05f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206140d05f395f51905f525afa9081156103df575f91611146575b50151590565b90506020813d602011611170575b8161116160209383610dd1565b810103126100d957515f611140565b3d9150611154565b805115610f7e5760200190565b805160011015610f7e5760400190565b8051821015610f7e5760209160051b010190565b6020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d9578151906111dd8261104b565b926111eb6040519485610dd1565b82845260208085019360051b8201019182116100d957602001915b8183106112135750505090565b8251600a8110156100d957815260209283019201611206565b5f5b8151811015611275576112418183611195565b51600a8110156112615760051461125a5760010161122e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b8151811015611275576112908183611195565b51600a8110156112615760091461125a5760010161127d565b5f5b8151811015611275576112be8183611195565b51600a8110156112615760081461125a576001016112ab565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f1960448401526044835261130f606484610dd1565b82516001600160a01b038316915f91829182855af19061132d612f81565b8261138f575b5081611384575b501561134557505050565b61137d611382936040519063095ea7b360e01b602083015260248201525f604482015260448152611377606482610dd1565b82612fb0565b612fb0565b565b90503b15155f61133a565b805191925081159182156113a7575b5050905f611333565b6113ba92506020809183010191016115a3565b5f8061139e565b6001600160401b038111610da257601f01601f191660200190565b91908260409103126100d9576040516113f481610d87565b6020808294805184520151910152565b6020818303126100d9578051906001600160401b0382116100d9570181601f820112156100d95780516114368161104b565b926114446040519485610dd1565b81845260208085019260061b840101928184116100d957602001915b83831061146e575050505090565b602060409161147d84866113dc565b815201920191611460565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106114cc5750505090565b82518452602093840193909201916001016114bf565b906080828203126100d9576115139060408051936114ff85610db6565b8051855260208101516020860152016113dc565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b60405190611558606083610dd1565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b908160209103126100d9575180151581036100d95790565b6101009490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f81806064810160c08490520381836001600160a01b0389165af180156103df575f90612eef575b6116249150611178565b5160a052606060e081905260405161167e916116409082610dd1565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015260a051613073565b60e051505f8061170661173360405161169960e05182610dd1565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190610e34565b6001600160a01b038a811660448401528716606483015260a051608483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156103df576117a0915f91612ed5575b5061127b565b90604051916117b060a084610dd1565b60048352608036602085013715612ec9575f5b6117cc83611178565b526103e860a051046117dd83611185565b52815160021015610f7e5760e051820160a05160011c9052815160031015610f7e5760a051608083015260405163155adc9160e31b8152935f858061182886868b8a60048601611488565b0381836001600160a01b0386165af19485156103df575f95612ead575b5061185861185286611178565b51611080565b85515f198101919082116110ba576118766118526118d09389611195565b60e05160405192906118889084610dd1565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526130e4565b6118dc61185286611178565b85515f1981019081116110ba576119776119905f936118ff61185286958c611195565b60e0516040519291906119129084610dd1565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260e05160248601526084850190610e34565b916044840152606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa5060e0516040516119f6916119b99082610dd1565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152613119565b611a49611a0286611178565b5151604061012081905280519190611a1a9083610dd1565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152613073565b611a9b6020611a5787611178565b5101516101205180519190611a6c9083610dd1565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152613073565b611aa761185286611178565b946101205150611ae9866101205151611ac36101205182610dd1565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b602082015261315d565b6101205151611af781610db6565b5f81525f6020820152610120515190611b0f82610d87565b5f808352602083015261012051015283515f1981019081116110ba57611b359085611195565b5160058181020481036110ba575f80610120515160208101906370a0823160e01b825230602482015260248152611b6d604482610dd1565b51908b5afa50611b8d611b7e612f81565b602080825183010191016110ce565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e5468010000000000000000811015610da25760018101600e55600e54811015610f7e57600e5f5260205f200130905560018060a01b0360115416600f5460e01b60105490611c0a613328565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f52602052610120515f2061012051516020810190611c6081611c52888886613311565b03601f198101835282610dd1565b5190205f5260205260ff6003610120515f2001541615612e9f575b6001600160a01b0384165f908152600d60205260409020905f52602052611c52611cb8610120515f20936101205151928391602083019586613311565b5190205f52602052610120515f206001810154926002820154611cdb8186613262565b612ced575b82546101205151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f5160206140d05f395f51905f525afa968715612cac575f97612cb9575b506001908201610100031b5f1901811b1986165f5160206140d05f395f51905f523b156100d95761012051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f5160206140d05f395f51905f525af18015612cac57612c98575b50600f5460e01b6020611dfb6024611dc2600d613402565b61012051519384918183019663ffffffff60e01b1687528051918291018484015e810160c051838201520301601f198101835282610dd1565b60115460c051915191928392916001600160a01b03165afa611e1b612f81565b6010549091906001600160fb1b03811681036124715760c05183519093906020811115612c9257506020905b60c051925b828410612c2c575050505015918215612c1e575b5050612b31575050506bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e5460c051600e5580612b06575b5060c0516010556013805460ff19169055601454611eb990610f92565b80612aa4575b506101205151634b88b8ad60e11b815260208160048160c0515f5160206140d05f395f51905f525af180156123da5760c051608052612a71575b5060015b84518110156124b7575f80611fb8611fde611f1785610f66565b50611f22868b611195565b51611fca6104c7611f91610120515194611f3e60e05187610dd1565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b61012051870152610120515192838092610fca565b6101205151635821efa160e01b602082015260e05160248201529586946084860190610e34565b84810360231901604486015290610e34565b90606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa506120006118528284611195565b5f8061207861209c8c612013878c611195565b516101205151916120276101205184610dd1565b601783527f544553543a205377617070696e67202564206f662025730000000000000000006020840152610120515194859363038fd88960e31b602086015260e05160248601526084850190610e34565b60448401929092526001600160a01b0316606483015203601f198101835282610dd1565b6020815191016a636f6e736f6c652e6c6f675afa508460808a896120e16120c3878c611195565b516101205151638307c65560e01b815295869485946004860161151b565b038160c05160018060a01b038a165af19081156123da5760c05191612489575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156124715761214e61215a916a084595161401484a000000612146878c611195565b519102611062565b91610120510151611080565b916121a08261012051516121716101205182610dd1565b601d81527f544553543a20202d2045786563757465642070726963653a2020202564000000602082015261315d565b6121e58161012051516121b66101205182610dd1565b601d81527f544553543a20202d20507269636520617420616d6f756e743a20202564000000602082015261315d565b61222a8361012051516121fb6101205182610dd1565b601d81527f544553543a20202d20507269636520616674657220737761703a202564000000602082015261315d565b61010051156123e95760e05161012051516123659461230893909261229c9291906122559083610dd1565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b61012051830152856131a0565b60e051610120515191906122b09083610dd1565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000061012051830152836130e4565b60e0516101205151919061231c9083610dd1565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b61012051830152896130e4565b610120515190631135fc2960e21b8252608051600483015260208260248160c0515f5160206140d05f395f51905f525af19182156123da576001926123ac575b5001611efd565b6123cc9060203d81116123d3575b6123c48183610dd1565b8101906115a3565b505f6123a5565b503d6123ba565b61012051513d60c051823e3d90fd5b6124129061240361246c946123fc611549565b908d6131a0565b61240b611549565b908b6131a0565b61012051519061242460e05183610dd1565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b61012051830152896131a0565b612365565b634e487b7160e01b60c051526011600452602460c051fd5b6124aa915060803d81116124b0575b6124a28183610dd1565b8101906114e2565b5f612101565b503d612498565b5050915091939250606960a0510260a051810460691460a0511517156124715761012051516348bd7dfd60e01b815260c08051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af180156123da576125379160c05191612a55575b506112a9565b156128f5576125a184610120515161255160e05182610dd1565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101205182015261315d565b61012051805194906125b39086610dd1565b6001855261012051601f19013660208701376125ce85611178565b52610120515163155adc9160e31b815260c05181806125f38888878c60048601611488565b038160c05160018060a01b0388165af190816128d3575b506128665760016126196131d5565b6308c379a0146127d7575b6123da57612633608094611178565b5194612657610120515196879586948594638307c65560e01b86526004860161151b565b60c051919003926001600160a01b03165af190816127ba575b5061275757600161267f6131d5565b6308c379a0146126d3575b6123da575b61138261012051516126a46101205182610dd1565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152613119565b6126db6131f0565b806126e7575b5061268a565b60c05160e05161012051519193506127519291906127059082610dd1565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101205182015261326f565b5f6126e1565b610120515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6127d29060803d6080116124b0576124a28183610dd1565b612670565b6127df6131f0565b806127eb575b50612624565b60c05160e05161012051519193506128609291906128099082610dd1565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101205182015261326f565b5f6127e5565b610120515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6128f0903d8060c051833e6128e88183610dd1565b810190611404565b61260a565b60e05161012051516129599186919061290e9082610dd1565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101205182015261315d565b610120518051949061296b9086610dd1565b6001855261012051601f190136602087013761298685611178565b5261012051519363155adc9160e31b855260c05185806129ac8488878c60048601611488565b038160c05160018060a01b0388165af19081156123da576080956129d592612a3b575b50611178565b51946129f9610120515196879586948594638307c65560e01b86526004860161151b565b60c051919003926001600160a01b03165af180156123da57612a1c575b5061268f565b612a349060803d6080116124b0576124a28183610dd1565b505f612a16565b612a50903d8060c051833e6128e88183610dd1565b6129cf565b612a6b91503d8060c051833e6104008183610dd1565b5f612531565b6020813d602011612a9c575b81612a8a60209383610dd1565b810103126100d957516080525f611ef9565b3d9150612a7d565b601f8111600114612abd575060c0516014555b5f611ebf565b601460c051526001601f602060c05120920160051c820191015b818110612afb57505060c08051601490819052905160208120918190559055612ab7565b5f8155600101612ad7565b600e60c05152602060c05120908101905b818110612b245750611e9c565b60c0518155600101612b17565b54915f5160206140d05f395f51905f523b15612c185761012051516370ca10bb60e01b815260c0516001600160a01b03909316600482015260248101939093526044830152818060648101038160c0515f5160206140d05f395f51905f525af180156123da57612bff575b610120515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b60c051612c0b91610dd1565b60c051612c185780612b9c565b60c05180fd5b600502141590505f80611e60565b90919294612c3d868360051b613262565b8351811015612c7a57830160200151600387901b91906001600160f81b03191687156008898504141715612471576001921c179501929190611e4c565b634e487b7160e01b60c051526032600452602460c051fd5b90611e47565b5f612ca291610dd1565b5f60c0525f611daa565b61012051513d5f823e3d90fd5b9096506020813d602011612ce5575b81612cd560209383610dd1565b810103126100d957519581611d2f565b3d9150612cc8565b612cf78186613262565b6101000361010081116110ba5760ff81116110ba57610120515163348051d760e11b81526001821b60048201525f816024815f5160206140d05f395f51905f525afa908115612cac575f91612e17575b50602091612ddc606a60019361012051519586917f73746453746f726167652066696e642853746453746f72616765293a20506163828401527f6b656420736c6f742e2057652063616e2774206669742076616c7565206772656101205184015269030ba32b9103a3430b7160b51b60e0518401528051918291018484015e81015f838201520301601f198101855284610dd1565b1b836005021015612ded5750611ce0565b610120515162461bcd60e51b815260206004820152908190612e13906024830190610e34565b0390fd5b90503d805f833e612e288183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019181601f840112156100d9578251612e5e816113c1565b92612e6e61012051519485610dd1565b818452602082860101116100d957606a6001935f602084612ddc9582809a018386015e830101529350505091612d47565b612ea7613639565b50611c7b565b612ec29195503d805f833e6128e88183610dd1565b935f611845565b61271060a051046117c3565b612ee991503d805f833e6104008183610dd1565b5f61179a565b503d805f833e612eff8183610dd1565b8101906020818303126100d9578051906001600160401b0382116100d957019080601f830112156100d9578151612f358161104b565b92612f436040519485610dd1565b81845260208085019260051b8201019283116100d957602001905b828210612f71575050506116249061161a565b8151815260209182019101612f5e565b3d15612fab573d90612f92826113c1565b91612fa06040519384610dd1565b82523d5f602084013e565b606090565b8151612fdb926001600160a01b03909216915f91829160200182855af1612fd5612f81565b916132b3565b80519081612fe7575050565b602080612ff89383010191016115a3565b15612fff57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6110b79392606092825260208201528160408201520190610e34565b5f5160206140d05f395f51905f523b156100d9576130bb915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190610e34565b03815f5160206140d05f395f51905f525afa80156103df576130da5750565b5f61138291610dd1565b905f5160206140d05f395f51905f523b156100d9575f916130bb6040519485938493636cd1e26960e11b855260048501613057565b5f611c52613146829360405192839163104c13eb60e21b6020840152602060248401526044830190610e34565b6020815191016a636f6e736f6c652e6c6f675afa50565b61318c6131465f93928493604051938492632d839cb360e21b6020850152604060248501526064840190610e34565b90604483015203601f198101835282610dd1565b905f5160206140d05f395f51905f523b156100d9575f916130bb6040519485938493630389490b60e61b855260048501613057565b5f9060033d116131e157565b905060045f803e5f5160e01c90565b5f60443d106110b7576040513d600319016004823e8051913d60248401116001600160401b0384111761325c57828201928351916001600160401b038311613254573d8401600319018584016020011161325457506110b792910160200190610dd1565b949350505050565b92915050565b919082018092116110ba57565b6132a16131465f9392611c528594604051948593634b5c427760e01b6020860152604060248601526064850190610e34565b83810360231901604485015290610e34565b906132d757508051156132c857805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580613308575b6132e8575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156132e0565b60209291908391805192839101825e019081520190565b613333601454610f92565b6133f0576040519081826020600e549283815201600e5f5260205f20925f5b8181106133d757505061336792500383610dd1565b81518060051b90808204602014901517156110ba57613385816113c1565b906133936040519283610dd1565b8082526133a2601f19916113c1565b013660208301375f5b83518110156133d257806133c160019286611195565b5160208260051b85010152016133ab565b509150565b8454835260019485019487945060209093019201613352565b6040516110b7816104c7816014610fca565b60078101906134118254610f92565b6134cd57600191500190604051808360208295549384815201905f5260205f20925f5b8181106134b457505061344992500383610dd1565b81518060051b90808204602014901517156110ba57613467816113c1565b906134756040519283610dd1565b808252613484601f19916113c1565b013660208301375f5b83518110156133d257806134a360019286611195565b5160208260051b850101520161348d565b8454835260019485019487945060209093019201613434565b506110b76104c79160405192838092610fca565b905f806020600285015460e01b61353160246134fc88613402565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283610dd1565b60048601549151916001600160a01b03165afa600361354e612f81565b930154600581901b906001600160fb1b038116036110ba575f938051602081115f146135d657506020905b5f925b82841061358b57505050509190565b909192956135998783613262565b8351811015610f7e57830160200151600388901b91906001600160f81b031916881560088a85041417156110ba576001921c17960192919061357c565b90613579565b9080601f830112156100d95781516135f38161104b565b926136016040519485610dd1565b81845260208085019260051b8201019283116100d957602001905b8282106136295750505090565b815181526020918201910161361c565b601154600f546010546001600160a01b03909216915f9160e01b61365d600d613402565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061369681611c52888886613311565b5190205f5260205260ff600360405f20015416613ef2575f5160206140d05f395f51905f523b156100d95760405163266cf10960e01b81525f81600481835f5160206140d05f395f51905f525af180156103df57613edd575b506136fa600d6134e1565b90506040516365bc948160e01b81528660048201528581602481835f5160206140d05f395f51905f525af1908115613ed2578691613e66575b5080516137a457608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015613e5e578160206137bf836137f095611195565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206140d05f395f51905f525afa928315613e53578893613e20575b508215613dc8575b6138228282611195565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206140d05f395f51905f525afa908115613dbd578b91613d8c575b5061387d600d6134e1565b91909382155f14613d85575f19905b5f5160206140d05f395f51905f523b15613d6c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206140d05f395f51905f525af18015613ce657908d91613d70575b50506138fd600d6134e1565b601154909491506001600160a01b03165f5160206140d05f395f51905f523b15613d6c576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206140d05f395f51905f525af18015613d6157908c91613d48575b505082613d3d575b505015613d33578793889360ff60135416613bad575b6001868601610100031b5f1901851b16841c8103613b9f575090613a17917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89611c526139ec8d604051928391602083019586613311565b5190206139f98686611195565b51906040519283528a602084015260408301526060820152a1611195565b519060405191608083018381106001600160401b03821117613b8b5790600393929160405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190613a8281611c528d8d86613311565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190613add81611c52888886613311565b519020855260205260ff60036040862001541615613b2e576040948452600d602052848420908452602052611c52613b22858520938651928391602083019586613311565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b634e487b7160e01b89526041600452602489fd5b935091506001905b016137a6565b9450613bf89350613bbe8383611195565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206140d05f395f51905f525afa948515613d28578a95613cf5575b50613c2486600d613f33565b959096613c3281600d61400c565b60115490939192906001600160a01b03165f5160206140d05f395f51905f523b15613cf1576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206140d05f395f51905f525af18015613ce657908d91613ccd575b505087613cc5575b509495613991575093509150600190613ba7565b96505f613cb1565b81613cd791610dd1565b613ce2578b5f613ca9565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211613d20575b81613d1060209383610dd1565b810103126100d95751935f613c18565b3d9150613d03565b6040513d8c823e3d90fd5b9150600190613ba7565b141590505f8061397b565b81613d5291610dd1565b613d5d578a5f613973565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81613d7a91610dd1565b613ce2578b5f6138f1565b8c9061388c565b90506020813d8211613db5575b81613da660209383610dd1565b810103126100d957515f613872565b3d9150613d99565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5613e18613df68484611195565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1613818565b9092506020813d8211613e4b575b81613e3b60209383610dd1565b810103126100d95751915f613810565b3d9150613e2e565b6040513d8a823e3d90fd5b505050613ab0565b90503d8087833e613e778183610dd1565b8101604082820312613ece5781516001600160401b038111613eca5781613e9f9184016135dc565b916020810151906001600160401b038211613ec657613ebf9291016135dc565b505f613733565b8880fd5b8780fd5b8680fd5b6040513d88823e3d90fd5b613eea9194505f90610dd1565b5f925f6136ef565b91939092505f52600d60205260405f20905f52602052611c52613f2460405f2093604051928391602083019586613311565b5190205f5260205260405f2090565b91905f5b6101008110613f4a57505090505f905f90565b8060ff0360ff81116110ba576004850154600190911b906001600160a01b03165f5160206140d05f395f51905f523b156100d9576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206140d05f395f51905f525af180156103df57613ffc575b50613fd6846134e1565b81613ff2575b50613fe957600101613f37565b92505060019190565b905015155f613fdc565b5f61400691610dd1565b5f613fcc565b91905f5b610100811061402357505090505f905f90565b60048401546001821b906001600160a01b03165f5160206140d05f395f51905f523b156100d9576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206140d05f395f51905f525af180156103df576140bf575b506140a2846134e1565b816140b5575b50613fe957600101614010565b905015155f6140a8565b5f6140c991610dd1565b5f61409856fe0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220aaa303a2e73c457c5330a4baeaaa08061815030f38cefa5c159eaf6399f2bfd364736f6c634300081b0033","sourceMap":"360:8685:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;1016:26:12;360:8685:65;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;2421:18:5;360:8685:65;;;;;;;2421:18:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1126:10;;;;;;:::i;:::-;360:8685;;;;;;;1102:59;;360:8685;1102:59;;360:8685;;;;;;;;;;;;1102:59;;;;;;;;;;;1075:134;1102:59;360:8685;1102:59;;;360:8685;1075:134;;:::i;:::-;1074:135;1224:13;360:8685;1259:3;360:8685;;1239:18;;;;;1322:10;;;;:::i;:::-;360:8685;;;;;;;1304:29;;360:8685;1304:29;;360:8685;;1304:29;360:8685;1304:29;;;;;;;;;;;360:8685;1304:29;;;1259:3;-1:-1:-1;1442:1:65;;360:8685;1708:14;;1396:17;360:8685;-1:-1:-1;;;;;1354:9:65;360:8685;1354:9;:::i;:::-;360:8685;;1396:17;:::i;:::-;1477;360:8685;;;;;;1435:9;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;360:8685;;;;;;1566:9;;;:::i;:::-;360:8685;;;;;;;1577:9;;;:::i;:::-;360:8685;;1588:14;;;:::i;:::-;1674:10;;;;:::i;:::-;360:8685;;;;;;;1686:9;;;:::i;:::-;360:8685;;;1697:9;360:8685;;;;;1697:9;;:::i;:::-;360:8685;;1708:14;;;:::i;:::-;360:8685;1224:13;;1304:29;;;;;;360:8685;1304:29;;;;;;:::i;:::-;;;360:8685;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1304:29;;;1442:1;1304:29;;360:8685;;;;;;;;-1:-1:-1;360:8685:65;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;1304:29;360:8685;;192:59:1;360:8685:65;192:59:1;;;;;1239:18:65;360:8685;1102:59;;;;;;360:8685;1102:59;;;;;;:::i;:::-;;;;;:::i;:::-;;;;360:8685;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;2273:18:5;360:8685:65;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;360:8685:65;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;534:59;360:8685;534:59;;;;;;;;:::i;:::-;360:8685;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;3190:18:5;360:8685:65;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3190:18:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;2707:18:5;360:8685:65;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;360:8685:65;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;2883:26:5;360:8685:65;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2883:26:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;3038:18:5;360:8685:65;;;;;;;3038:18:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;3331:16:5;360:8685:65;;;;;;;3331:16:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;3485:19:5;360:8685:65;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;3485:19:5;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;2563:16:5;360:8685:65;;;;;;;2563:16:5;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;:::o;:::-;;;;-1:-1:-1;360:8685:65;;;;;-1:-1:-1;360:8685:65;;1590:14:0;360:8685:65;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;360:8685:65;;;;;;;;-1:-1:-1;;360:8685:65;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;534:59;360:8685;;;;;;534:59;-1:-1:-1;360:8685:65;;-1:-1:-1;360:8685:65;;;-1:-1:-1;360:8685:65;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;360:8685:65;;;;;;;;-1:-1:-1;360:8685:65;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;360:8685:65;;;;;;;;;:::o;523:5::-;;;;;;;:::o;:::-;360:8685;;;523:5;;;;;;;;8534:180;360:8685;;523:5;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;360:8685;8655:52;;:::i;:::-;8534:180;:::o;523:5::-;360:8685;;;-1:-1:-1;523:5:65;;;;;-1:-1:-1;523:5:65;192:59:1;;;;;;;;;;;:::o;1243:204::-;1302:7;360:8685:65;;;;;;;1325:14:1;:::o;1298:143::-;360:8685:65;;;;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;360:8685:65;192:59:1;;;;;;360:8685:65;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;360:8685:65;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;192:59;1377:39;;;:::i;:::-;;;192:59;;;;;1377:39;;;;;;-1:-1:-1;1377:39:1;;360:8685:65;;;;;;;;;:::o;:::-;;;1442:1;360:8685;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;8720:323;360:8685;8906:3;360:8685;;8881:23;;;;;8929:15;;;;:::i;:::-;360:8685;;;;;;;;8929:29;8925:79;;360:8685;;8866:13;;8925:79;8978:11;;360:8685;8978:11;:::o;360:8685::-;;;;;;;;;;;;8881:23;;;360:8685;8720:323;:::o;:::-;360:8685;8906:3;360:8685;;8881:23;;;;;8929:15;;;;:::i;:::-;360:8685;;;;;;;2531:24;8929:29;8925:79;;360:8685;;8866:13;;8720:323;360:8685;8906:3;360:8685;;8881:23;;;;;8929:15;;;;:::i;:::-;360:8685;;;;;;;6005:21;8929:29;8925:79;;360:8685;;8866:13;;5926:434:58;360:8685:65;;6065:47:58;;;;360:8685:65;;;;6065:47:58;;360:8685:65;;;;;;6065:47:58;;;;;360:8685:65;1396:17;;192:59:1;;;360:8685:65;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;360:8685:65;;;-1:-1:-1;;;;;360:8685:65;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;360:8685:65;;;;;;;6065:47:58;6232:43;;;6065:47;6232:43;;360:8685:65;-1:-1:-1;6065:47:58;360:8685:65;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;:::-;5926:434::o;8553:127::-;8650:26;;;:30;;8553:127;;;:81;360:8685:65;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;360:8685:65;-1:-1:-1;;;;;360:8685:65;;;;;;-1:-1:-1;;360:8685:65;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1590:14:0;;;;;;;;;;;360:8685:65;;;;;;;:::i;:::-;;;1590:14:0;;;;;360:8685:65;1590:14:0;;;;;;:::i;:::-;360:8685:65;1590:14:0;;;;:::o;:::-;360:8685:65;;;-1:-1:-1;;;;;360:8685:65;;;1590:14:0;;;360:8685:65;;;1590:14:0;;;360:8685:65;-1:-1:-1;1590:14:0;;;;;;;360:8685:65;;;;1590:14:0;;;:::o;:::-;360:8685:65;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;-1:-1:-1;;;360:8685:65;1590:14:0;;;;;;;;:::o;:::-;;;;;;;;;;360:8685:65;;;1590:14:0;;;;;:::o;1911:4479:65:-;;;;;;360:8685;;-1:-1:-1;;;2117:44:65;;;;;360:8685;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;1911:4479;;;;;2117:44;360:8685;;;;;2117:44;;;;;360:8685;2117:44;-1:-1:-1;;;;;360:8685:65;;2117:44;;;;;;;;;;1911:4479;2117:47;;;;:::i;:::-;360:8685;;;;;;;;;;2174:61;;360:8685;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;2174:61;;;:::i;:::-;360:8685;;;2117:44;360:8685;;44640:78:15;360:8685:65;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;;44640:78:15;;;;;;360:8685:65;44640:78:15;;;360:8685:65;44640:78:15;;;360:8685:65;;;;;;:::i;:::-;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;360:8685:65;;1222:159:15;;591:42;1222:159;;-1:-1:-1;360:8685:65;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;360:8685;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;2117:44;360:8685;;;;;2467:50;360:8685;;-1:-1:-1;;;;;360:8685:65;;2467:50;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;360:8685;;;;;;;;:::i;:::-;2117:44;360:8685;;;;;;;;8365:37;;;2117:44;8365:37;8352:50;;;:::i;:::-;360:8685;8433:4;523:5;;;8412:25;;;:::i;:::-;360:8685;;;8468:1;360:8685;;;;;;;;523:5;;8420:1;523:5;360:8685;;;;8487:1;360:8685;;;;;;;;;;;;-1:-1:-1;;;2822:49:65;;360:8685;2117:44;360:8685;;2822:49;360:8685;2822:49;;;2117:44;2822:49;;;:::i;:::-;;360:8685;;-1:-1:-1;;;;;360:8685:65;;2822:49;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;360:8685;;-1:-1:-1;;360:8685:65;;;1396:17;360:8685;;;;2941:40;2955:25;2881:174;2955:25;;;:::i;2941:40::-;360:8685;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;2881:174;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;360:8685;;-1:-1:-1;;360:8685:65;;;;;;;;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;360:8685;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;;12247:66:15;;;;;;360:8685:65;12247:66:15;;;360:8685:65;;44640:78:15;12247:66;;360:8685:65;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;360:8685:65;;12247:66:15;;;;;;:::i;:::-;1222:159;360:8685:65;;1222:159:15;;591:42;1222:159;;-1:-1:-1;360:8685:65;;;;3251:53;;360:8685;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;3251:53;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;360:8685;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;3314:60;:::i;:::-;3384:64;360:8685;3393:9;;;:::i;:::-;;:21;360:8685;;;;;;;;;;;:::i;:::-;;;;;;;;;3384:64;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;360:8685;;;;3514:49;360:8685;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;360:8685:65;;;;3514:49;:::i;:::-;360:8685;;;;;;:::i;:::-;2117:44;360:8685;;2117:44;360:8685;;;;;;;;;;;:::i;:::-;2117:44;360:8685;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;3635:27;;;;:::i;:::-;360:8685;;523:5;;;;;;;;2117:44;360:8685;;;;;27501:38:3;;360:8685:65;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;360:8685:65;44640:78:15;27501:38:3;;;360:8685:65;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;:::-;360:8685:65;;;;27568:30:3;;;;;;:::i;:::-;-1:-1:-1;6854:12:8;360:8685:65;;-1:-1:-1;;;;;;360:8685:65;-1:-1:-1;;;;;360:8685:65;;;;;7009:9:8;360:8685:65;;-1:-1:-1;;360:8685:65;27524:10:3;360:8685:65;;;7505:10:8;360:8685:65;;;;;;;8420:1;360:8685;;7505:10:8;360:8685:65;7505:10:8;360:8685:65;;;;;;7505:10:8;2117:44:65;360:8685;;2117:44;360:8685;;3624:4;360:8685;;;;;;;6854:12:8;360:8685:65;;7009:9:8;360:8685:65;;;15610:11:8;360:8685:65;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;360:8685:65;;;;;;27635:8:3;360:8685:65;;;;;15703:15:8;;360:8685:65;;;;;;2117:44;360:8685;;;;;2117:44;360:8685;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;360:8685:65;;15735:37:8;;;;;;:::i;:::-;360:8685:65;15725:48:8;;2117:44:65;360:8685;;;;8487:1;360:8685;;2117:44;360:8685;15703:77:8;360:8685:65;;15702:78:8;15698:126;;8365:37:65;-1:-1:-1;;;;;360:8685:65;;;;;;27635:8:3;360:8685:65;;;;;;2117:44;360:8685;;;15889:37:8;;360:8685:65;;2117:44;360:8685;;;;;15889:37:8;;;360:8685:65;15889:37:8;;;;;:::i;:::-;360:8685:65;15879:48:8;;2117:44:65;360:8685;;;;;2117:44;360:8685;8420:1;15943:15:8;;360:8685:65;15961:16:8;8468:1:65;15961:16:8;;360:8685:65;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;360:8685;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;360:8685:65;;2117:44;16424:32:8;;360:8685:65;192:59:1;;;360:8685:65;;;;;;;;;192:59:1;360:8685:65;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;360:8685:65;;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;360:8685:65;;2117:44;16587:43:8;;360:8685:65;12810:59:8;;;360:8685:65;;;;;523:5;;360:8685;;;12656:92:8;12810:59;;;360:8685:65;-1:-1:-1;360:8685:65;12810:59:8;360:8685:65;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;-1:-1:-1;7009:9:8;360:8685:65;;;;1364:48:8;44640:78:15;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;360:8685:65;;;1364:48:8;;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;1364:48:8;;360:8685:65;;1364:48:8;;;;;;:::i;:::-;6854:12;360:8685:65;-1:-1:-1;;1458:29:8;;-1:-1:-1;;;;1458:29:8;-1:-1:-1;;;;;360:8685:65;1458:29:8;;;;:::i;:::-;15610:11;360:8685:65;;;;-1:-1:-1;;;;;523:5:65;;;;;;-1:-1:-1;;360:8685:65;;-1:-1:-1;;360:8685:65;;11010:13:8;;360:8685:65;;;11010:29:8;360:8685:65;11010:29:8;;-1:-1:-1;;11049:106:8;11069:7;;;;;;1563:24;;;;16724:8;360:8685:65;;;16724:29:8;;11049:106;16720:176;;;;360:8685:65;;;;;;6854:12:8;360:8685:65;;6854:12:8;360:8685:65;;;7009:9:8;360:8685:65;;7009:9:8;360:8685:65;7505:10:8;360:8685:65;11645:19:8;;7505:10;360:8685:65;;;;11049:106:8;-1:-1:-1;;;15610:11:8;360:8685:65;11762:25:8;360:8685:65;;-1:-1:-1;;360:8685:65;;;;;;;;:::i;:::-;;;;11049:106:8;360:8685:65;;;;;;;3697:13;;360:8685;2117:44;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;11049:106:8;-1:-1:-1;8420:1:65;3761:3;360:8685;;3741:18;;;;;1222:159:15;3878:14:65;360:8685;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;360:8685;;;;;;;;;;;;;:::i;:::-;;;;;;1590:14:0;;;-1:-1:-1;;;360:8685:65;;1590:14:0;;;360:8685:65;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;360:8685:65;12952:65:15;;;;360:8685:65;44640:78:15;12952:65;;360:8685:65;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;360:8685:65;;;;;;;:::i;:::-;;;;;;12952:65:15;360:8685:65;;12952:65:15;;;;;;:::i;:::-;1222:159;360:8685:65;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;360:8685;12771:66:15;4051:10:65;;;;;:::i;:::-;360:8685;;;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;360:8685:65;;;12771:66:15;;;;;;360:8685:65;12771:66:15;;;360:8685:65;;44640:78:15;12771:66;;360:8685:65;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;360:8685:65;;1222:159:15;;591:42;1222:159;;;4166:10:65;360:8685;4166:10;;4093:97;4166:10;;;;:::i;:::-;360:8685;;;;-1:-1:-1;;;4093:97:65;;360:8685;;;;;2117:44;4093:97;;;:::i;:::-;;2117:44;;;360:8685;;;;;;;4093:97;;;;;;;2117:44;;4093:97;;;3761:3;360:8685;;;523:5;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;360:8685;523:5;;4244:52;:::i;:::-;360:8685;;;4349:11;;4335:26;:::i;:::-;360:8685;4375:60;360:8685;;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;4375:60:65;:::i;:::-;4449;360:8685;;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;4449:60:65;:::i;:::-;4523:61;360:8685;;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;4523:61:65;:::i;:::-;4599:1176;;;;;360:8685;;;;;5013:164;;4819:176;;-1:-1:-1;;4637:164:65;;360:8685;-1:-1:-1;360:8685:65;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;-1:-1:-1;;;360:8685:65;;1590:14:0;;;4637:164:65;;:::i;:::-;360:8685;;;;;;;;;;;:::i;:::-;;;;1590:14:0;360:8685:65;1590:14:0;;;;360:8685:65;;1590:14:0;;;4819:176:65;;:::i;:::-;360:8685;;;;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;-1:-1:-1;;;360:8685:65;;1590:14:0;;;5013:164:65;;:::i;:::-;360:8685;;;;;;;5789:25;;360:8685;;2117:44;5789:25;;360:8685;;2117:44;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;360:8685;3726:13;;5789:25;;;360:8685;5789:25;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;360:8685;;;192:59:1;2117:44:65;;192:59:1;;;;;4599:1176:65;5407:172;1590:14:0;5216:173:65;5597:163;1590:14:0;;;:::i;:::-;5216:173:65;;;:::i;:::-;1590:14:0;;:::i;:::-;5407:172:65;;;:::i;:::-;360:8685;;;;;;;;;:::i;:::-;;;;1590:14:0;360:8685:65;1590:14:0;;;-1:-1:-1;;;360:8685:65;;1590:14:0;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;360:8685;;;2117:44;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;360:8685;4093:97;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;360:8685;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;360:8685;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;2117:44;;360:8685;523:5;;;;;360:8685;2117:44;;360:8685;;;;;;;5941:50;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;360:8685;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;6590:122;:::i;:::-;360:8685;;;;;;;;;;:::i;:::-;8420:1;360:8685;;;;-1:-1:-1;;360:8685:65;;;;;;6783:37;;;:::i;:::-;360:8685;;;;-1:-1:-1;;;6835:57:65;;2117:44;;360:8685;;6835:57;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;360:8685;;;;;;;6835:57;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;360:8685;6831:346;7259:18;:::i;:::-;360:8685;;7190:97;360:8685;;;;;;;;;;;;;7190:97;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;360:8685:65;7190:97;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;360:8685;;;;;;;;:::i;:::-;1590:14:0;360:8685:65;;1590:14:0;360:8685:65;1590:14:0;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;360:8685;;;;;2117:44;;-1:-1:-1;7418:99:65;;2117:44;360:8685;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;7418:99;:::i;:::-;7375:153;;;7186:342;360:8685;;;-1:-1:-1;;;7302:61:65;;360:8685;2117:44;7302:61;;360:8685;;44640:78:15;360:8685:65;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;;7302:61;7190:97;;;360:8685;7190:97;360:8685;7190:97;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;360:8685;;;;;2117:44;;-1:-1:-1;7061:105:65;;2117:44;360:8685;;;;;:::i;:::-;;;;;;;;;;;;;;;7061:105;:::i;:::-;7018:159;;;6831:346;360:8685;;;-1:-1:-1;;;6907:99:65;;360:8685;2117:44;6907:99;;360:8685;;44640:78:15;360:8685:65;;;;;;;;;;;;;;;6907:99;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;;;:::i;:::-;;;6047:287;360:8685;;;;;7738:117;;360:8685;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;7738:117;:::i;:::-;360:8685;;;;;;;;;;:::i;:::-;8420:1;360:8685;;;;-1:-1:-1;;360:8685:65;;;;;;7926:37;;;:::i;:::-;360:8685;;;;;;;;7974:57;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;360:8685;;;;;;;7974:57;;;;;;;360:8685;;8110:18;;7974:57;;6047:287;8110:18;;:::i;:::-;360:8685;;8041:97;360:8685;;;;;;;;;;;;;8041:97;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;360:8685:65;8041:97;;;;;;;;6047:287;;;;8041:97;;;360:8685;8041:97;360:8685;8041:97;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;360:8685;3697:13;;360:8685;3697:13;;;;;;192:59:1;3697:13:65;;;:::i;:::-;;;192:59:1;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;360:8685;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;;;;11645:19:8;;360:8685:65;8420:1;360:8685;;11645:19:8;;360:8685:65;;;;;;;;;;;;;;;-1:-1:-1;;11645:19:8;;;360:8685:65;;;;;11645:19:8;;360:8685:65;;;;;;;;;;;;;;;;;;;;7505:10:8;11645:19;;360:8685:65;;11645:19:8;;360:8685:65;;;;;;;;;;;;;;;-1:-1:-1;;360:8685:65;;8420:1;360:8685;;;16720:176:8;360:8685:65;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;360:8685:65;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;-1:-1:-1;;;;;360:8685:65;;;2117:44;16769:41:8;;360:8685:65;12810:59:8;;;360:8685:65;;;;12810:59:8;;;360:8685:65;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;360:8685:65;;;-1:-1:-1;;;16824:61:8;;360:8685:65;2117:44;16824:61:8;;12810:59;360:8685:65;44640:78:15;12810:59:8;;360:8685:65;12810:59:8;360:8685:65;;;12810:59:8;-1:-1:-1;;;360:8685:65;12810:59:8;;;360:8685:65;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;360:8685:65;;;;16769:41:8;;;360:8685:65;2117:44;;;360:8685;16724:29:8;360:8685:65;523:5;16736:17:8;;;-1:-1:-1;16724:29:8;;;;11078:3;523:5:65;;;;11114:10:8;523:5:65;;360:8685;523:5;11114:10:8;:::i;:::-;360:8685:65;;;;;;;;;;;;8487:1;523:5;;;;;-1:-1:-1;;;;;;360:8685:65;523:5;;11142:1:8;523:5:65;;;;;;;;8420:1;360:8685;;11097:47:8;11078:3;360:8685:65;11054:13:8;;;;;360:8685:65;;;;-1:-1:-1;;360:8685:65;;2117:44;360:8685;44640:78:15;-1:-1:-1;;360:8685:65;11010:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;360:8685;;16587:43:8;;;;360:8685:65;;;192:59:1;2117:44:65;192:59:1;;;;;16424:32:8;;;;360:8685:65;16424:32:8;;360:8685:65;16424:32:8;;;;;;192:59:1;16424:32:8;;;:::i;:::-;;;192:59:1;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;360:8685:65;16021:3:8;360:8685:65;;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;360:8685;;2117:44;16314:19:8;;360:8685:65;-1:-1:-1;360:8685:65;44640:78:15;360:8685:65;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;2117:44:65;16314:19:8;;;15938:460;360:8685:65;;;16170:185:8;12810:59;8420:1:65;360:8685;;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;360:8685:65;;12810:59:8;;;-1:-1:-1;;;360:8685:65;;12810:59:8;;;360:8685:65;;;;;;12810:59:8;;;360:8685:65;;;2117:44;360:8685;;;;16170:185:8;;360:8685:65;;16170:185:8;;;;;;:::i;:::-;360:8685:65;523:5;360:8685;523:5;16103:21:8;12810:59;;;15938:460;;;12810:59;360:8685:65;;;-1:-1:-1;;;12810:59:8;;360:8685:65;2117:44;12810:59:8;;360:8685:65;;;;;;44640:78:15;360:8685:65;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;12810:59;360:8685:65;12810:59:8;;;;;;;;;-1:-1:-1;;;;;12810:59:8;;;;;;;360:8685:65;12810:59:8;;;;;;;;;;;:::i;:::-;360:8685:65;;;;;;;;:::i;:::-;12810:59:8;;;360:8685:65;12810:59:8;;;;;;;;8420:1:65;12810:59:8;2117:44:65;360:8685;12810:59:8;16170:185;12810:59;;;;;;;;360:8685:65;;;;;16314:19:8;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;:::i;:::-;;;360:8685;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2117:44;;;:47;:44;;;360:8685;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;360:8685:65;;;;:::o;:::-;;;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;360:8685:65;;;;2626:1:33;;;;3256:31;;2626:1;360:8685:65;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;360:8685:65;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;360:8685:65;;;6764:749:58:o;360:8685:65:-;;;-1:-1:-1;;;360:8685:65;;3256:31:33;360:8685:65;;;;;;;;;;;;;;-1:-1:-1;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;360:8685:65;;2117:44;360:8685;;;;;;;;;;;13326:29:1;;;;;360:8685:65;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;13326:29::-;2117:44:65;13326:29:1;;;:::i;13228:134::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;360:8685:65;13326:29:1;360:8685:65;;;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;360:8685:65;6669:42:15;6598:121;;360:8685:65;;6669:42:15;;;;;;;;;;;;;;360:8685:65;;;;;;:::i;6669:42:15:-;1222:159;360:8685:65;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;360:8685:65;7629:54:15;1222:159;7546:145;;;;360:8685:65;;7629:54:15;;;;;;;;;;360:8685:65;7629:54:15;;;360:8685:65;;;;;;:::i;:::-;;;;;;7629:54:15;360:8685:65;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;360:8685:65;15694:29:1;360:8685:65;;;;;;;;;;15694:29:1;;;;;;:::i;360:8685:65:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;;-1:-1:-1;;360:8685:65;;;;;;;;;-1:-1:-1;360:8685:65;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;:::-;;;;;;;;;;:::o;7846:150:15:-;360:8685:65;7935:53:15;1222:159;7846:150;;360:8685:65;7846:150:15;;360:8685:65;;7935:53:15;;;;;;;;;;360:8685:65;7935:53:15;;;360:8685:65;;;;;;:::i;:::-;;;;-1:-1:-1;;360:8685:65;;;;;;;:::i;4421:582:33:-;;4593:8;;-1:-1:-1;360:8685:65;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;360:8685:65;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;360:8685:65;;;;4917:24:33;360:8685:65;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;360:8685:65;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;360:8685:65;1052:14:8;360:8685:65;;:::i;:::-;1052:14:8;;360:8685:65;;;;;;1109:10:8;360:8685:65;;;;;;1109:10:8;1077:1;360:8685:65;;1077:1:8;360:8685:65;;1077:1:8;360:8685:65;;;;;;;;;;;;;;:::i;:::-;;;523:5;;;;;;;360:8685;523:5;;;;;;;360:8685;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;360:8685:65;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;360:8685:65;;11456:84:8;523:5:65;11456:84:8;;;;;360:8685:65;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;360:8685:65:-;;;;;1109:10:8;360:8685:65;;;;;;-1:-1:-1;360:8685:65;;;;;;;;1048:135:8;360:8685:65;;;;;;1052:14:8;360:8685:65;:::i;953:236:8:-;1052:14;;;360:8685:65;;;;;:::i;:::-;1052:21:8;;1109:10;;;;360:8685:65;;;;;;;;;;;;;;;1077:1:8;360:8685:65;;1077:1:8;360:8685:65;;1077:1:8;360:8685:65;;;;;;;;;;;;;;:::i;:::-;;;523:5;;;;;;;360:8685;523:5;;;;;;;360:8685;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;360:8685:65;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;360:8685:65;;11456:84:8;523:5:65;11456:84:8;;;;;360:8685:65;11331:13:8;;360:8685:65;;;;;1109:10:8;360:8685:65;;;;;;-1:-1:-1;360:8685:65;;;;;;;;1048:135:8;360:8685:65;;;;;;;;;;;:::i;1251:343:8:-;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;360:8685:65;;;1364:48:8;360:8685:65;1392:19:8;;;:::i;:::-;360:8685:65;;1364:48:8;;;;;;360:8685:65;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;360:8685:65;;1364:48:8;;;;;;:::i;:::-;360:8685:65;1458:12:8;;360:8685:65;1458:29:8;;;-1:-1:-1;;;;;360:8685:65;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;360:8685:65;523:5;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;360:8685:65;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;360:8685:65;;;;;;;;;1364:48:8;360:8685:65;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;360:8685:65;523:5;;11142:1:8;523:5:65;;;;;;;;360:8685;;;11097:47:8;11078:3;360:8685:65;11054:13:8;;;;;11010:29;;;;643:59;;;;;;;;;;;;;;;:::i;:::-;360:8685:65;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;360:8685:65;4397:9:8;360:8685:65;4438:11:8;360:8685:65;-1:-1:-1;;;;;360:8685:65;;;;2117:44;;360:8685;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;360:8685:65;2117:44;360:8685;27635:8:3;360:8685:65;;;2117:44;360:8685;;;;;;;;2117:44;360:8685;;;;2117:44;360:8685;;;;4583:37:8;;;;;;;;;;:::i;:::-;360:8685:65;4573:48:8;;2117:44:65;360:8685;;;;4438:11:8;360:8685:65;2117:44;360:8685;4551:77:8;360:8685:65;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;360:8685:65;;-1:-1:-1;;;4811:11:8;;2117:44:65;360:8685;4361:12:8;360:8685:65;2117:44;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;360:8685:65;;;;;;;4911:25:8;;;4361:12;4911:25;;360:8685:65;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;360:8685:65;;4951:12:8;;4984:74;360:8685:65;;12810:59:8;;;4984:74;;360:8685:65;4361:12:8;4984:74;;643:59;360:8685:65;4911:25:8;643:59;;360:8685:65;643:59:8;360:8685:65;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;360:8685:65;;5109:16:8;;;;;5178:8;360:8685:65;5178:8:8;;5165:22;5178:8;;:::i;:::-;360:8685:65;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;360:8685:65;;4361:12:8;5165:22;;360:8685:65;192:59:1;;;360:8685:65;;;;;;;;;192:59:1;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;360:8685:65;4361:12:8;360:8685:65;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;360:8685:65;;;4361:12:8;1978:27;;360:8685:65;;;192:59:1;;;360:8685:65;;;;;;;192:59:1;360:8685:65;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;1396:17:65;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;360:8685:65;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;360:8685:65;;;;4361:12:8;2177:37;;360:8685:65;12810:59:8;;;360:8685:65;;;12810:59:8;;;360:8685:65;;;;;;12810:59:8;360:8685:65;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;360:8685:65;;;;-1:-1:-1;;;;;;360:8685:65;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;360:8685:65;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;360:8685:65;;;;4361:12:8;2281:43;;360:8685:65;12810:59:8;;;360:8685:65;;;;12810:59:8;;;360:8685:65;;;;;;12810:59:8;360:8685:65;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;360:8685:65;;5520:25:8;360:8685:65;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;360:8685:65;;5998:29:8;;5994:84;;360:8685:65;;6319:8:8;360:8685:65;6101:89:8;643:59;360:8685:65;;6132:37:8;;360:8685:65;;;6132:37:8;;;360:8685:65;6132:37:8;;;;;:::i;:::-;360:8685:65;6122:48:8;;6180:8;;;;:::i;:::-;360:8685:65;;;;;;;643:59:8;360:8685:65;643:59:8;;360:8685:65;;643:59:8;;360:8685:65;643:59:8;;;360:8685:65;6101:89:8;6319:8;:::i;:::-;360:8685:65;;;;;643:59:8;360:8685:65;;;;;-1:-1:-1;;;;;360:8685:65;;;;;;4438:11:8;360:8685:65;;;;;;;;6302:58:8;;360:8685:65;;;;6302:58:8;;360:8685:65;;;643:59:8;6302:58;;643:59;360:8685:65;643:59:8;;360:8685:65;;;27635:8:3;360:8685:65;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;360:8685:65;6230:48:8;;360:8685:65;;;;;;;;;643:59:8;;360:8685:65;;643:59:8;;;360:8685:65;4397:9:8;643:59;;;;;;360:8685:65;;;;;643:59:8;;;;;;;;5089:1309;360:8685:65;;;27635:8:3;360:8685:65;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;360:8685:65;6461:48:8;;360:8685:65;;;;;4438:11:8;360:8685:65;;;6439:77:8;360:8685:65;;643:59:8;;;360:8685:65;6664:15:8;360:8685:65;;27635:8:3;360:8685:65;;;;;;;;;;6696:37:8;;360:8685:65;;;;;;6696:37:8;;;360:8685:65;6696:37:8;;;;;:::i;:::-;360:8685:65;6686:48:8;;360:8685:65;;;;;4249:2493:8;:::o;643:59::-;360:8685:65;;-1:-1:-1;;;643:59:8;;360:8685:65;4361:12:8;643:59;;;;4911:25;643:59;;360:8685:65;643:59:8;360:8685:65;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;360:8685:65;-1:-1:-1;;;360:8685:65;;;4361:12:8;360:8685:65;4911:25:8;360:8685:65;;5994:84:8;6051:8;;;;360:8685:65;6051:8:8;5094:13;360:8685:65;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;360:8685:65;4361:12:8;360:8685:65;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;360:8685:65;;;4361:12:8;3216:27;;360:8685:65;192:59:1;;;360:8685:65;;;;;;;;;;;;;192:59:1;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;360:8685:65;;;;;;-1:-1:-1;;;;;360:8685:65;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;360:8685:65;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;360:8685:65;;;;4361:12:8;3497:43;;360:8685:65;12810:59:8;;;360:8685:65;;;;12810:59:8;;;360:8685:65;;;;;;12810:59:8;360:8685:65;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;360:8685:65;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;360:8685:65;;3497:43:8;;;;360:8685:65;;;;3497:43:8;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;3497:43:8;360:8685:65;;;3216:27:8;;;;360:8685:65;3216:27:8;;;;;;;;;192:59:1;3216:27:8;;;:::i;:::-;;;192:59:1;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;5337:92:8;5402:8;;360:8685:65;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;360:8685:65;;2281:43:8;;;;360:8685:65;;;;2281:43:8;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;2281:43:8;360:8685:65;;;2177:37:8;;;;;:::i;:::-;360:8685:65;;2177:37:8;;;;2102:65;;;;;1978:27;;;360:8685:65;1978:27:8;;;;;;;;;192:59:1;1978:27:8;;;:::i;:::-;;;192:59:1;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;360:8685:65;;;;-1:-1:-1;;;;;360:8685:65;;;;192:59:1;;;360:8685:65;;;;;;;;192:59:1;;;;5256:44:8;;;;5205:114;;5165:22;;;;360:8685:65;5165:22:8;;;;;;;;;192:59:1;5165:22:8;;;:::i;:::-;;;192:59:1;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;360:8685:65;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;360:8685:65;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;360:8685:65;;;643:59:8;360:8685:65;;;643:59:8;360:8685:65;;;4911:25:8;360:8685:65;;192:59:1;360:8685:65;;192:59:1;;;;4811:11:8;;;;;2117:44:65;4811:11:8;;:::i;:::-;2117:44:65;4811:11:8;;;;4547:255;4720:15;;;;;2117:44:65;360:8685;27635:8:3;360:8685:65;;;2117:44;360:8685;;2117:44;360:8685;;;4752:37:8;;360:8685:65;2117:44;360:8685;;;;4752:37:8;;;360:8685:65;4752:37:8;;;;;:::i;:::-;360:8685:65;4742:48:8;;2117:44:65;360:8685;;;;2117:44;360:8685;4713:78:8;:::o;2560:514::-;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;360:8685:65;2771:3:8;360:8685:65;2771:3:8;360:8685:65;;;;2824:12:8;;;360:8685:65;;;;;;-1:-1:-1;;;;;360:8685:65;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;360:8685:65;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;360:8685:65;;;;2824:12:8;2815:49;;360:8685:65;12810:59:8;;;360:8685:65;;;12810:59:8;;;360:8685:65;;;;-1:-1:-1;360:8685:65;12810:59:8;360:8685:65;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;360:8685:65;;2678:18:8;;2941:90;2995:21;;;360:8685:65;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;360:8685:65;;;;;-1:-1:-1;;;;;360:8685:65;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;360:8685:65;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;360:8685:65;;;;2824:12:8;2815:49;;360:8685:65;12810:59:8;;;360:8685:65;;;12810:59:8;;;360:8685:65;;;;-1:-1:-1;360:8685:65;12810:59:8;360:8685:65;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;360:8685:65;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/AdapterTest.sol\":\"AdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/AdapterTest.sol":"AdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"}},"version":1},"id":65} \ No newline at end of file diff --git a/evm/out/Address.sol/Address.json b/evm/out/Address.sol/Address.json deleted file mode 100644 index b8ebfa6..0000000 --- a/evm/out/Address.sol/Address.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220675523db4eb672ca51c97374f5b6ae09702c147ee759ed9ea46f2195176db17064736f6c634300081b0033","sourceMap":"233:5830:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220675523db4eb672ca51c97374f5b6ae09702c147ee759ed9ea46f2195176db17064736f6c634300081b0033","sourceMap":"233:5830:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":"Address"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/evm/out/AngleAdapter.sol/AngleAdapter.json b/evm/out/AngleAdapter.sol/AngleAdapter.json deleted file mode 100644 index d10e6b3..0000000 --- a/evm/out/AngleAdapter.sol/AngleAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_transmuter","type":"address","internalType":"contract ITransmuter"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"getTokens","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a03461008c57601f6116e038819003918201601f19168301916001600160401b038311848410176100905780849260209460405283398101031261008c57516001600160a01b038116810361008c5760805260405161163b90816100a58239608051818181607e015281816103ba01528181610afc01528181610c3a01528181610d0e0152610eb30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b0033","sourceMap":"920:7543:40:-:0;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;1083:24;;920:7543;;;;;;;;1083:24;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;-1:-1:-1;920:7543:40;;;;;-1:-1:-1;920:7543:40","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b0033","sourceMap":"920:7543:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;6053:41;;920:7543;6053:41;;;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;;;-1:-1:-1;;;5600:30:40;;:10;-1:-1:-1;;;;;920:7543:40;;;;;;;5600:30;;;;;;;920:7543;5600:30;;;920:7543;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;920:7543:40;;;;;5758:3;920:7543;;5725:31;;;;;920:7543;;-1:-1:-1;;;;;5797:23:40;920:7543;5797:23;;:::i;:::-;920:7543;;5777:44;;;;:::i;:::-;920:7543;;5710:13;;5725:31;;920:7543;;5725:31;;920:7543;;;;;;;;;5879:20;;;;;;;;;920:7543;5879:20;;;5705:127;920:7543;5841:58;920:7543;;;;;5841:58;;:::i;:::-;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;5879:20;;;;920:7543;5879:20;;920:7543;5879:20;;;;;;920:7543;5879:20;;;:::i;:::-;;;920:7543;;;;;5841:58;920:7543;;:::i;:::-;5879:20;;;;920:7543;;;;5879:20;;;-1:-1:-1;5879:20:40;;;920:7543;;;;;;;;;;;;;;;;;;;;;5600:30;;;;;920:7543;5600:30;;;;;;:::i;:::-;;;920:7543;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5600:30;;;;;;920:7543;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1680:36:40;;920:7543;;1680:36;;920:7543;;;;;;-1:-1:-1;;;920:7543:40;;;;;;1680:36;920:7543;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;920:7543:40;;;;;:::i;:::-;3570:1;920:7543;;;;;;;;;;;;-1:-1:-1;;;3656:20:40;;3618:10;-1:-1:-1;;;;;920:7543:40;;;;;;;3656:20;;;;;;;920:7543;3656:20;;;920:7543;-1:-1:-1;;;;;;920:7543:40;;;;;3644:32;;920:7543;;-1:-1:-1;920:7543:40;;-1:-1:-1;;;3772:39:40;;-1:-1:-1;;;;;920:7543:40;;;3772:39;;920:7543;;;-1:-1:-1;920:7543:40;3772:39;920:7543;3772:39;;;;;;;;920:7543;3772:39;;;3640:1233;-1:-1:-1;920:7543:40;;;;3829:24;920:7543;;3929:22;;4096:50;3929:22;3905:54;920:7543;3929:22;;;;;;:29;;3905:54;:::i;:::-;3873:86;;;:::i;:::-;920:7543;3825:246;4115:9;;;:::i;:::-;920:7543;;;-1:-1:-1;;;4096:50:40;;920:7543;4096:50;;920:7543;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;4096:50;;;;;;;;;;920:7543;4096:50;;;3825:246;4084:62;;;;:::i;:::-;920:7543;575:2;4172:9;;;:::i;:::-;920:7543;575:2;4160:44;;;:::i;:::-;920:7543;575:2;4230:9;;;:::i;:::-;920:7543;575:2;4218:44;;;:::i;:::-;920:7543;3640:1233;;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;4096:50;;;920:7543;4096:50;;920:7543;4096:50;;;;;;920:7543;4096:50;;;:::i;:::-;;;920:7543;;;;;4096:50;;;;;;-1:-1:-1;4096:50:40;;3825:246;3772:39;920:7543;;;;;;;;;;;;;4010:46;;;920:7543;4010:46;;920:7543;4010:46;;;;;;;920:7543;4010:46;;;3825:246;3998:58;;4096:50;3998:58;920:7543;3998:58;;;;;:::i;:::-;920:7543;3825:246;;4010:46;;;;;920:7543;4010:46;;920:7543;4010:46;;;;;;920:7543;4010:46;;;:::i;:::-;;;920:7543;;;;;;4010:46;;;4096:50;4010:46;;;;;-1:-1:-1;4010:46:40;;3772:39;;;;;;;920:7543;3772:39;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3640:1233;920:7543;;-1:-1:-1;;;4374:38:40;;920:7543;4374:38;;920:7543;;;;;;;-1:-1:-1;920:7543:40;4374:38;920:7543;4374:38;;;;;;;;920:7543;4374:38;;;3640:1233;-1:-1:-1;920:7543:40;;;;4430:24;920:7543;;4530:22;;4696:50;4530:22;4506:54;920:7543;4530:22;;;;;;:29;;4506:54;:::i;:::-;4474:86;;;:::i;:::-;920:7543;4426:245;4715:9;;;:::i;4696:50::-;;;;;;;;;;920:7543;4696:50;;;4426:245;4684:62;;;;:::i;:::-;920:7543;575:2;4772:9;;;:::i;:::-;920:7543;575:2;4760:44;;;:::i;:::-;920:7543;575:2;4830:9;;;:::i;:::-;920:7543;575:2;4818:44;;;:::i;:::-;920:7543;3640:1233;;;4696:50;;;920:7543;4696:50;;920:7543;4696:50;;;;;;920:7543;4696:50;;;:::i;:::-;;;920:7543;;;;;4696:50;;;;;;-1:-1:-1;4696:50:40;;4426:245;4374:38;920:7543;;;;;;;;;;;;;4611:45;;;920:7543;4611:45;;920:7543;4611:45;;;;;;;920:7543;4611:45;;;4426:245;4599:57;;4696:50;4599:57;920:7543;4599:57;;;;;:::i;:::-;920:7543;4426:245;;4611:45;;;;;920:7543;4611:45;;920:7543;4611:45;;;;;;920:7543;4611:45;;;:::i;:::-;;;920:7543;;;;;;4611:45;;;4696:50;4611:45;;;;;-1:-1:-1;4611:45:40;;4374:38;;;;;;;920:7543;4374:38;;;;;;:::i;:::-;;;;;3656:20;;;920:7543;3656:20;;920:7543;3656:20;;;;;;920:7543;3656:20;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;3656:20;;;;;;-1:-1:-1;3656:20:40;;920:7543;;;;;;-1:-1:-1;;920:7543:40;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5114:1;920:7543;;;;;;;;;5144:20;5126:38;;;:::i;:::-;920:7543;5114:1;5174:37;;;:::i;:::-;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5144:20;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;-1:-1:-1;;;6053:41:40;;920:7543;;6053:41;;920:7543;;;;;;;;;;;6053:41;;;920:7543;;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;;;;-1:-1:-1;920:7543:40;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;-1:-1:-1;;;;;920:7543:40;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5144:20;920:7543;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;920:7543:40;;;;;;;:::o;:::-;;;;;;;;;;:::o;2061:798::-;;;;920:7543;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;-1:-1:-1;920:7543:40;;-1:-1:-1;920:7543:40;;;;;;;;;:::i;:::-;-1:-1:-1;920:7543:40;;-1:-1:-1;920:7543:40;;;;;;;;2226:18;2260:20;;2256:63;;2349:9;;920:7543;;;;;;;2372:22;;;;;;-1:-1:-1;;;;;920:7543:40;;;7451:6;7444:4;;7424:10;920:7543;7451:6;:::i;:::-;920:7543;;-1:-1:-1;;;7468:54:40;;-1:-1:-1;;;;;7502:10:40;920:7543;7468:54;;;920:7543;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;7468:54;;;;;;;920:7543;7468:54;7551:94;7468:54;;;2368:217;920:7543;-1:-1:-1;920:7543:40;;;;;;;;;;7551:94;;7468:54;7551:94;;920:7543;;;;;;;;;;;;;;;;;;;;;7424:10;920:7543;;;;;;;;;7551:94;;;;;;;-1:-1:-1;7551:94:40;;;2368:217;920:7543;;;2368:217;2622:9;920:7543;;;;;;;;2594:13;;920:7543;2658:123;;;;920:7543;;-1:-1:-1;;;2695:36:40;;920:7543;;2695:36;920:7543;-1:-1:-1;;;;;920:7543:40;;2695:36;;;;;;;-1:-1:-1;2695:36:40;;;2658:123;;;;920:7543;;:::i;:::-;-1:-1:-1;6651:22:40;;;6740:47;6700:14;;920:7543;6700:14;;:::i;:::-;920:7543;;-1:-1:-1;;;6740:47:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;6740:47;;920:7543;6740:10;-1:-1:-1;;;;;920:7543:40;6740:47;;;;;;;-1:-1:-1;6740:47:40;;;6647:282;6728:59;6647:282;;920:7543;;;;;;:::i;:::-;;;;6945:29;;920:7543;;2791:11;;:61;2061:798::o;6740:47::-;;;920:7543;6740:47;;920:7543;6740:47;;;;;;920:7543;6740:47;;;:::i;:::-;;;920:7543;;;;;6740:47;;;;;;-1:-1:-1;6740:47:40;;6647:282;6869:49;6830:14;;920:7543;6830:14;;:::i;:::-;920:7543;;-1:-1:-1;;;6869:49:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;6869:49;;920:7543;6869:10;-1:-1:-1;;;;;920:7543:40;6869:49;;;;;;;-1:-1:-1;6869:49:40;;;6647:282;6858:60;6647:282;;6869:49;;;920:7543;6869:49;;920:7543;6869:49;;;;;;920:7543;6869:49;;;:::i;:::-;;;920:7543;;;;;6869:49;;;;;;-1:-1:-1;6869:49:40;;2695:36;;;920:7543;2695:36;;920:7543;2695:36;;;;;;920:7543;2695:36;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;2695:36;;;;;;-1:-1:-1;2695:36:40;;2658:123;920:7543;;-1:-1:-1;;;2746:35:40;;920:7543;;2746:35;920:7543;-1:-1:-1;;;;;920:7543:40;;2746:35;;;;;;;-1:-1:-1;2746:35:40;;;2658:123;;;;;2746:35;;;920:7543;2746:35;;920:7543;2746:35;;;;;;920:7543;2746:35;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;2746:35;;;;;;-1:-1:-1;2746:35:40;;7551:94;;;920:7543;7551:94;;920:7543;7551:94;;;;;;920:7543;7551:94;;;:::i;:::-;;;920:7543;;;;;7551:94;;;;;;-1:-1:-1;7551:94:40;;7468:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;2368:217;920:7543;;-1:-1:-1;;;8093:51:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;8093:10;920:7543;;;;;;;;;8093:51;;;;;;;-1:-1:-1;8093:51:40;;;2368:217;-1:-1:-1;;;;;;920:7543:40;;8230:16;8223:4;;8203:10;920:7543;8230:16;:::i;:::-;920:7543;;-1:-1:-1;;;8266:64:40;;-1:-1:-1;;;;;920:7543:40;;8093:51;8266:64;;920:7543;;;;;;;;;;;;-1:-1:-1;8266:64:40;;;;;;;;920:7543;8266:64;8340:114;8266:64;;;2368:217;920:7543;-1:-1:-1;920:7543:40;;;;;;;;;;8340:114;;8093:51;8340:114;;920:7543;8391:17;;920:7543;;;;;;;;;;;;;;;;;;;8203:10;920:7543;;;;;;;;;8340:114;;;;;;;;2368:217;920:7543;;;2368:217;;8340:114;;;920:7543;8340:114;920:7543;8340:114;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8266:64;;;;;;;;;;;;;:::i;:::-;;;8093:51;;;;920:7543;8093:51;;920:7543;8093:51;;;;;;920:7543;8093:51;;;:::i;:::-;;;920:7543;;;;;8093:51;;;;;;;-1:-1:-1;8093:51:40;;2256:63;2296:12;-1:-1:-1;;;;;2296:12:40:o;920:7543::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;-1:-1:-1;;920:7543:40;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;18042:340::-;;920:7543;;;;18633:40;;920:7543;;;;;;;18633:40;;;920:7543;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;18633:40;;;;;920:7543;;;;:::i;:::-;;18264:35;18260:116;;18042:340;:::o;18260:116::-;920:7543;;;18633:40;920:7543;;;18322:28;;920:7543;;;;18633:40;18322:28;920:7543;-1:-1:-1;;;;;920:7543:40;;;;;;;;18633:40;18322:43;920:7543;;;;;;;;;;18322:43;;;;;;;;;920:7543;18322:43;;;18315:50;;:::o;18322:43::-;;;18633:40;18322:43;;18633:40;18322:43;;;;;;920:7543;18322:43;;;:::i;:::-;;;920:7543;;;;;18315:50;:::o;18322:43::-;;;-1:-1:-1;18322:43:40;;1702:188:32;920:7543:40;;-1:-1:-1;;;1829:53:32;;;;;;-1:-1:-1;;;;;920:7543:40;;;1829:53:32;;;920:7543:40;;;;;;;;;;;;;;;;;1829:53:32;;;920:7543:40;3304:55:33;;-1:-1:-1;;;;1829:53:32;;;920:7543:40;1829:53:32;:::i;:::-;920:7543:40;;;;;;3256:31:33;;;;;;;920:7543:40;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1829:53:32;920:7543:40;;;;3304:55:33;;:::i;:::-;920:7543:40;;6960:22:32;;;;:57;;;;920:7543:40;6956:135:32;;;;1702:188;:::o;6956:135::-;7040:40;;;-1:-1:-1;7040:40:32;;920:7543:40;1829:53:32;-1:-1:-1;7040:40:32;6960:57;6987:30;;;1829:53;6987:30;;;;;;;;:::i;:::-;6986:31;6960:57;;;;920:7543:40;;;;;4421:582:33;;4593:8;;-1:-1:-1;920:7543:40;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;920:7543:40;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;920:7543:40;;;;4917:24:33;920:7543:40;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"52444":[{"start":126,"length":32},{"start":954,"length":32},{"start":2812,"length":32},{"start":3130,"length":32},{"start":3342,"length":32},{"start":3763,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ITransmuter\",\"name\":\"_transmuter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Information about prices: When swapping collateral to agEUR, the trade price will not decrease(amountOut). Instead, when swapping agEUR to collateral, it will, because agEUR is minted, and this mechanism is used to stabilize the agEUR price.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Mint may have no limits, but we underestimate them to make sure, with the same amount of sellToken. We use the quoteIn (incl. fee), because calculating fee requires a part of the implementation of the Angle Diamond Storage, and therefore redundant functions and excessive contract size, with an high complexity. In addition, we underestimate to RESERVE_LIMIT_FACTOR to ensure swaps with OrderSide.Buy won't fail anyway.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getTokens(bytes32)\":{\"details\":\"Since Angle has no pool IDs but supports 3 tokens(agToken and the collaterals), we return all the available collaterals and the agToken(agEUR)\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"It is not possible to reproduce the swap in a view mode (like Bancor, Uniswap v2, etc..) as the swap produce a change of storage in the Angle protocol, that impacts the price post trade. Due to the architecture of Angle, it's not possible to calculate the storage modifications of Angle inside the adapter.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"The price post trade is indipendent by the amount, since is the price with minimal fees with 0 slippage. In Angle there is no price with 0 slippage, so we use the PRECISE_UNIT (10^18, that is a small value) as input amount to have a slippage ---> 0.\"}},\"title\":\"AngleAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"AngleAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ITransmuter","name":"_transmuter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Mint may have no limits, but we underestimate them to make sure, with the same amount of sellToken. We use the quoteIn (incl. fee), because calculating fee requires a part of the implementation of the Angle Diamond Storage, and therefore redundant functions and excessive contract size, with an high complexity. In addition, we underestimate to RESERVE_LIMIT_FACTOR to ensure swaps with OrderSide.Buy won't fail anyway.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getTokens(bytes32)":{"details":"Since Angle has no pool IDs but supports 3 tokens(agToken and the collaterals), we return all the available collaterals and the agToken(agEUR)","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"It is not possible to reproduce the swap in a view mode (like Bancor, Uniswap v2, etc..) as the swap produce a change of storage in the Angle protocol, that impacts the price post trade. Due to the architecture of Angle, it's not possible to calculate the storage modifications of Angle inside the adapter."},"swap(bytes32,address,address,uint8,uint256)":{"details":"The price post trade is indipendent by the amount, since is the price with minimal fees with 0 slippage. In Angle there is no price with 0 slippage, so we use the PRECISE_UNIT (10^18, that is a small value) as input amount to have a slippage ---> 0."}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/angle/AngleAdapter.sol":"AngleAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40} \ No newline at end of file diff --git a/evm/out/AngleAdapter.sol/IAgToken.json b/evm/out/AngleAdapter.sol/IAgToken.json deleted file mode 100644 index fee1b4e..0000000 --- a/evm/out/AngleAdapter.sol/IAgToken.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burnFrom","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"burner","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnSelf","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"burner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addMinter(address)":"983b2d56","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burnFrom(uint256,address,address)":"350ebe04","burnSelf(uint256,address)":"2b471d8e","decimals()":"313ce567","isMinter(address)":"aa271e1a","mint(address,uint256)":"40c10f19","removeMinter(address)":"3092afd5","setTreasury(address)":"f0f44260","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"burnSelf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"addMinter(address)\":{\"details\":\"Zero address checks are performed directly in the `Treasury` contract\",\"params\":{\"minter\":\"Minter address to add\"}},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burnFrom(uint256,address,address)\":{\"details\":\"This method is to be called by a contract with the minter right after being requested to do so by a `sender` address willing to burn tokens from another `burner` addressThe method checks the allowance between the `sender` and the `burner`\",\"params\":{\"amount\":\"Amount of tokens to burn\",\"burner\":\"Address to burn from\",\"sender\":\"Address which requested the burn from `burner`\"}},\"burnSelf(uint256,address)\":{\"details\":\"This method is to be called by a contract with a minter right on the AgToken after being requested to do so by an address willing to burn tokens from its address\",\"params\":{\"amount\":\"Amount of tokens to burn\",\"burner\":\"Address to burn from\"}},\"isMinter(address)\":{\"params\":{\"minter\":\"Address for which the minting right should be checked\"},\"returns\":{\"_0\":\"Whether the address has the right to mint agTokens or not\"}},\"mint(address,uint256)\":{\"params\":{\"account\":\"Address to mint to\",\"amount\":\"Amount to mint\"}},\"removeMinter(address)\":{\"details\":\"This function can also be called by a minter wishing to revoke itself\",\"params\":{\"minter\":\"Minter address to remove\"}},\"setTreasury(address)\":{\"params\":{\"_treasury\":\"New treasury address\"}},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addMinter(address)\":{\"notice\":\"Adds a minter in the contract\"},\"burnFrom(uint256,address,address)\":{\"notice\":\"Burns `amount` tokens from a `burner` address after being asked to by `sender`\"},\"burnSelf(uint256,address)\":{\"notice\":\"Burns `amount` tokens from a `burner` address\"},\"decimals()\":{\"notice\":\"Amount of decimals of the stablecoin\"},\"isMinter(address)\":{\"notice\":\"Checks whether an address has the right to mint agTokens\"},\"mint(address,uint256)\":{\"notice\":\"Lets a whitelisted contract mint agTokens\"},\"removeMinter(address)\":{\"notice\":\"Removes a minter from the contract\"},\"setTreasury(address)\":{\"notice\":\"Sets a new treasury contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"IAgToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addMinter"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"burner","type":"address"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"burner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"burnSelf"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"view","type":"function","name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeMinter"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addMinter(address)":{"details":"Zero address checks are performed directly in the `Treasury` contract","params":{"minter":"Minter address to add"}},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burnFrom(uint256,address,address)":{"details":"This method is to be called by a contract with the minter right after being requested to do so by a `sender` address willing to burn tokens from another `burner` addressThe method checks the allowance between the `sender` and the `burner`","params":{"amount":"Amount of tokens to burn","burner":"Address to burn from","sender":"Address which requested the burn from `burner`"}},"burnSelf(uint256,address)":{"details":"This method is to be called by a contract with a minter right on the AgToken after being requested to do so by an address willing to burn tokens from its address","params":{"amount":"Amount of tokens to burn","burner":"Address to burn from"}},"isMinter(address)":{"params":{"minter":"Address for which the minting right should be checked"},"returns":{"_0":"Whether the address has the right to mint agTokens or not"}},"mint(address,uint256)":{"params":{"account":"Address to mint to","amount":"Amount to mint"}},"removeMinter(address)":{"details":"This function can also be called by a minter wishing to revoke itself","params":{"minter":"Minter address to remove"}},"setTreasury(address)":{"params":{"_treasury":"New treasury address"}},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"addMinter(address)":{"notice":"Adds a minter in the contract"},"burnFrom(uint256,address,address)":{"notice":"Burns `amount` tokens from a `burner` address after being asked to by `sender`"},"burnSelf(uint256,address)":{"notice":"Burns `amount` tokens from a `burner` address"},"decimals()":{"notice":"Amount of decimals of the stablecoin"},"isMinter(address)":{"notice":"Checks whether an address has the right to mint agTokens"},"mint(address,uint256)":{"notice":"Lets a whitelisted contract mint agTokens"},"removeMinter(address)":{"notice":"Removes a minter from the contract"},"setTreasury(address)":{"notice":"Sets a new treasury contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/angle/AngleAdapter.sol":"IAgToken"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40} \ No newline at end of file diff --git a/evm/out/AngleAdapter.sol/IManager.json b/evm/out/AngleAdapter.sol/IManager.json deleted file mode 100644 index dd594c6..0000000 --- a/evm/out/AngleAdapter.sol/IManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"invest","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxAvailable","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"asset","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"balances","type":"uint256[]","internalType":"uint256[]"},{"name":"totalValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"invest(uint256)":"2afcf480","maxAvailable()":"e8c9bee5","release(address,address,uint256)":"8bfb07c9","totalAssets()":"01e1d114"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"invest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"invest(uint256)\":{\"details\":\"MUST revert if the manager cannot accept these fundsMUST have received the funds beforehand\"},\"maxAvailable()\":{\"details\":\"Useful for integrators using `quoteIn` and `quoteOut`\"},\"release(address,address,uint256)\":{\"details\":\"MUST be callable only by the transmuter\"},\"totalAssets()\":{\"details\":\"MUST NOT revert\",\"returns\":{\"balances\":\"Balances of all the subCollaterals handled by the manager\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"invest(uint256)\":{\"notice\":\"Hook to invest `amount` of `collateral`\"},\"maxAvailable()\":{\"notice\":\"Gives the maximum amount of collateral immediately available for a transfer\"},\"totalAssets()\":{\"notice\":\"Returns the amount of collateral managed by the Manager\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"IManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"invest"},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"invest(uint256)":{"details":"MUST revert if the manager cannot accept these fundsMUST have received the funds beforehand"},"maxAvailable()":{"details":"Useful for integrators using `quoteIn` and `quoteOut`"},"release(address,address,uint256)":{"details":"MUST be callable only by the transmuter"},"totalAssets()":{"details":"MUST NOT revert","returns":{"balances":"Balances of all the subCollaterals handled by the manager"}}},"version":1},"userdoc":{"kind":"user","methods":{"invest(uint256)":{"notice":"Hook to invest `amount` of `collateral`"},"maxAvailable()":{"notice":"Gives the maximum amount of collateral immediately available for a transfer"},"totalAssets()":{"notice":"Returns the amount of collateral managed by the Manager"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/angle/AngleAdapter.sol":"IManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40} \ No newline at end of file diff --git a/evm/out/AngleAdapter.sol/ITransmuter.json b/evm/out/AngleAdapter.sol/ITransmuter.json deleted file mode 100644 index 777435b..0000000 --- a/evm/out/AngleAdapter.sol/ITransmuter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accessControlManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addCollateral","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adjustStablecoins","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"increase","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"agToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"changeAllowance","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getCollateralBurnFees","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"xFeeBurn","type":"uint64[]","internalType":"uint64[]"},{"name":"yFeeBurn","type":"int64[]","internalType":"int64[]"}],"stateMutability":"view"},{"type":"function","name":"getCollateralDecimals","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getCollateralInfo","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Collateral","components":[{"name":"isManaged","type":"uint8","internalType":"uint8"},{"name":"isMintLive","type":"uint8","internalType":"uint8"},{"name":"isBurnLive","type":"uint8","internalType":"uint8"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"onlyWhitelisted","type":"uint8","internalType":"uint8"},{"name":"normalizedStables","type":"uint216","internalType":"uint216"},{"name":"xFeeMint","type":"uint64[]","internalType":"uint64[]"},{"name":"yFeeMint","type":"int64[]","internalType":"int64[]"},{"name":"xFeeBurn","type":"uint64[]","internalType":"uint64[]"},{"name":"yFeeBurn","type":"int64[]","internalType":"int64[]"},{"name":"oracleConfig","type":"bytes","internalType":"bytes"},{"name":"whitelistData","type":"bytes","internalType":"bytes"},{"name":"managerData","type":"tuple","internalType":"struct ManagerStorage","components":[{"name":"subCollaterals","type":"address[]","internalType":"contract IERC20[]"},{"name":"config","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"function","name":"getCollateralList","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getCollateralMintFees","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"xFeeMint","type":"uint64[]","internalType":"uint64[]"},{"name":"yFeeMint","type":"int64[]","internalType":"int64[]"}],"stateMutability":"view"},{"type":"function","name":"getCollateralRatio","inputs":[],"outputs":[{"name":"collatRatio","type":"uint64","internalType":"uint64"},{"name":"stablecoinsIssued","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCollateralWhitelistData","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getIssuedByCollateral","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"stablecoinsFromCollateral","type":"uint256","internalType":"uint256"},{"name":"stablecoinsIssued","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getManagerData","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOracle","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"oracleType","type":"uint8","internalType":"uint8"},{"name":"targetType","type":"uint8","internalType":"uint8"},{"name":"oracleData","type":"bytes","internalType":"bytes"},{"name":"targetData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getOracleValues","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"mint","type":"uint256","internalType":"uint256"},{"name":"burn","type":"uint256","internalType":"uint256"},{"name":"ratio","type":"uint256","internalType":"uint256"},{"name":"minRatio","type":"uint256","internalType":"uint256"},{"name":"redemption","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRedemptionFees","inputs":[],"outputs":[{"name":"xRedemptionCurve","type":"uint64[]","internalType":"uint64[]"},{"name":"yRedemptionCurve","type":"int64[]","internalType":"int64[]"}],"stateMutability":"view"},{"type":"function","name":"getTotalIssued","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isPaused","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrusted","inputs":[{"name":"sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTrustedSeller","inputs":[{"name":"sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidSelector","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhitelistedCollateral","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWhitelistedForCollateral","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isWhitelistedForType","inputs":[{"name":"whitelistType","type":"uint8","internalType":"uint8"},{"name":"sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"quoteIn","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quoteOut","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quoteRedemptionCurve","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"recoverERC20","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"redeem","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"minAmountOuts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"redeemWithForfeit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"minAmountOuts","type":"uint256[]","internalType":"uint256[]"},{"name":"forfeitTokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeCollateral","inputs":[{"name":"collateral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sellRewards","inputs":[{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAccessControlManager","inputs":[{"name":"_newAccessControlManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDummyImplementation","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFees","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"xFee","type":"uint64[]","internalType":"uint64[]"},{"name":"yFee","type":"int64[]","internalType":"int64[]"},{"name":"mint","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOracle","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"oracleConfig","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRedemptionCurveParams","inputs":[{"name":"xFee","type":"uint64[]","internalType":"uint64[]"},{"name":"yFee","type":"int64[]","internalType":"int64[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistStatus","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"whitelistStatus","type":"uint8","internalType":"uint8"},{"name":"whitelistData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactInput","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactInputWithPermit","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactOutput","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactOutputWithPermit","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"togglePause","inputs":[{"name":"collateral","type":"address","internalType":"address"},{"name":"pausedType","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleTrusted","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"t","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleWhitelist","inputs":[{"name":"whitelistType","type":"uint8","internalType":"uint8"},{"name":"who","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateNormalizer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"increase","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accessControlManager()":"b4a0bdf3","addCollateral(address)":"f0d2d5a8","adjustStablecoins(address,uint128,bool)":"c1cdee7e","agToken()":"ee565a63","changeAllowance(address,address,uint256)":"87c8ab7a","facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","getCollateralBurnFees(address)":"847da7be","getCollateralDecimals(address)":"eb7aac5f","getCollateralInfo(address)":"33352210","getCollateralList()":"b7181361","getCollateralMintFees(address)":"b85780bc","getCollateralRatio()":"cd377c53","getCollateralWhitelistData(address)":"782513bd","getIssuedByCollateral(address)":"94e35d9e","getManagerData(address)":"4ea3e343","getOracle(address)":"10d3d22e","getOracleValues(address)":"38c269eb","getRedemptionFees()":"adc9d1f7","getTotalIssued()":"8db9653f","implementation()":"5c60da1b","isPaused(address,uint8)":"0d126627","isTrusted(address)":"96d64879","isTrustedSeller(address)":"fe7d0c54","isValidSelector(bytes4)":"77dc3429","isWhitelistedCollateral(address)":"f9839d89","isWhitelistedForCollateral(address,address)":"a52aefd4","isWhitelistedForType(uint8,address)":"99eeca49","quoteIn(uint256,address,address)":"4583aea6","quoteOut(uint256,address,address)":"9525f3ab","quoteRedemptionCurve(uint256)":"d703a0cd","recoverERC20(address,address,address,uint256)":"5c3eebda","redeem(uint256,address,uint256,uint256[])":"815822c1","redeemWithForfeit(uint256,address,uint256,uint256[],address[])":"2e7639bc","revokeCollateral(address)":"1f0ec8ee","sellRewards(uint256,bytes)":"05b41934","setAccessControlManager(address)":"0e32cb86","setDummyImplementation(address)":"c39aa07d","setFees(address,uint64[],int64[],bool)":"629feb62","setOracle(address,bytes)":"b13b0847","setRedemptionCurveParams(uint64[],int64[])":"4eec47b9","setWhitelistStatus(address,uint8,bytes)":"1b0c7182","swapExactInput(uint256,uint256,address,address,address,uint256)":"3b6a1fe0","swapExactInputWithPermit(uint256,uint256,address,address,uint256,bytes)":"d92c6cb2","swapExactOutput(uint256,uint256,address,address,address,uint256)":"b92567fa","swapExactOutputWithPermit(uint256,uint256,address,address,uint256,bytes)":"c10a6287","togglePause(address,uint8)":"a9e6a1a4","toggleTrusted(address,uint8)":"7c0343a1","toggleWhitelist(uint8,address)":"b607d099","updateNormalizer(uint256,bool)":"fd7daaf8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"addCollateral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"increase\",\"type\":\"bool\"}],\"name\":\"adjustStablecoins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"agToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"changeAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getCollateralBurnFees\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"xFeeBurn\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFeeBurn\",\"type\":\"int64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getCollateralDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getCollateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"isManaged\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"isMintLive\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"isBurnLive\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"onlyWhitelisted\",\"type\":\"uint8\"},{\"internalType\":\"uint216\",\"name\":\"normalizedStables\",\"type\":\"uint216\"},{\"internalType\":\"uint64[]\",\"name\":\"xFeeMint\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFeeMint\",\"type\":\"int64[]\"},{\"internalType\":\"uint64[]\",\"name\":\"xFeeBurn\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFeeBurn\",\"type\":\"int64[]\"},{\"internalType\":\"bytes\",\"name\":\"oracleConfig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"whitelistData\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"subCollaterals\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct ManagerStorage\",\"name\":\"managerData\",\"type\":\"tuple\"}],\"internalType\":\"struct Collateral\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralList\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getCollateralMintFees\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"xFeeMint\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFeeMint\",\"type\":\"int64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralRatio\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"collatRatio\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stablecoinsIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getCollateralWhitelistData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getIssuedByCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stablecoinsFromCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stablecoinsIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getManagerData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getOracle\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"oracleType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"targetType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"oracleData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"targetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"getOracleValues\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"mint\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"burn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"redemption\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRedemptionFees\",\"outputs\":[{\"internalType\":\"uint64[]\",\"name\":\"xRedemptionCurve\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yRedemptionCurve\",\"type\":\"int64[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalIssued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"isTrusted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"isTrustedSeller\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"isValidSelector\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"isWhitelistedCollateral\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"isWhitelistedForCollateral\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"whitelistType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"isWhitelistedForType\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"quoteIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"quoteOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"quoteRedemptionCurve\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recoverERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"minAmountOuts\",\"type\":\"uint256[]\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"minAmountOuts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"forfeitTokens\",\"type\":\"address[]\"}],\"name\":\"redeemWithForfeit\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"}],\"name\":\"revokeCollateral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"sellRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAccessControlManager\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"setDummyImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint64[]\",\"name\":\"xFee\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFee\",\"type\":\"int64[]\"},{\"internalType\":\"bool\",\"name\":\"mint\",\"type\":\"bool\"}],\"name\":\"setFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"oracleConfig\",\"type\":\"bytes\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"xFee\",\"type\":\"uint64[]\"},{\"internalType\":\"int64[]\",\"name\":\"yFee\",\"type\":\"int64[]\"}],\"name\":\"setRedemptionCurveParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"whitelistStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"whitelistData\",\"type\":\"bytes\"}],\"name\":\"setWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"permitData\",\"type\":\"bytes\"}],\"name\":\"swapExactInputWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"permitData\",\"type\":\"bytes\"}],\"name\":\"swapExactOutputWithPermit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"pausedType\",\"type\":\"uint8\"}],\"name\":\"togglePause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"t\",\"type\":\"uint8\"}],\"name\":\"toggleTrusted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"whitelistType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"toggleWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"increase\",\"type\":\"bool\"}],\"name\":\"updateNormalizer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"ITransmuter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addCollateral"},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bool","name":"increase","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"adjustStablecoins"},{"inputs":[],"stateMutability":"view","type":"function","name":"agToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"changeAllowance"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getCollateralBurnFees","outputs":[{"internalType":"uint64[]","name":"xFeeBurn","type":"uint64[]"},{"internalType":"int64[]","name":"yFeeBurn","type":"int64[]"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getCollateralDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getCollateralInfo","outputs":[{"internalType":"struct Collateral","name":"","type":"tuple","components":[{"internalType":"uint8","name":"isManaged","type":"uint8"},{"internalType":"uint8","name":"isMintLive","type":"uint8"},{"internalType":"uint8","name":"isBurnLive","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint8","name":"onlyWhitelisted","type":"uint8"},{"internalType":"uint216","name":"normalizedStables","type":"uint216"},{"internalType":"uint64[]","name":"xFeeMint","type":"uint64[]"},{"internalType":"int64[]","name":"yFeeMint","type":"int64[]"},{"internalType":"uint64[]","name":"xFeeBurn","type":"uint64[]"},{"internalType":"int64[]","name":"yFeeBurn","type":"int64[]"},{"internalType":"bytes","name":"oracleConfig","type":"bytes"},{"internalType":"bytes","name":"whitelistData","type":"bytes"},{"internalType":"struct ManagerStorage","name":"managerData","type":"tuple","components":[{"internalType":"contract IERC20[]","name":"subCollaterals","type":"address[]"},{"internalType":"bytes","name":"config","type":"bytes"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCollateralList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getCollateralMintFees","outputs":[{"internalType":"uint64[]","name":"xFeeMint","type":"uint64[]"},{"internalType":"int64[]","name":"yFeeMint","type":"int64[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCollateralRatio","outputs":[{"internalType":"uint64","name":"collatRatio","type":"uint64"},{"internalType":"uint256","name":"stablecoinsIssued","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getCollateralWhitelistData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getIssuedByCollateral","outputs":[{"internalType":"uint256","name":"stablecoinsFromCollateral","type":"uint256"},{"internalType":"uint256","name":"stablecoinsIssued","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getManagerData","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getOracle","outputs":[{"internalType":"uint8","name":"oracleType","type":"uint8"},{"internalType":"uint8","name":"targetType","type":"uint8"},{"internalType":"bytes","name":"oracleData","type":"bytes"},{"internalType":"bytes","name":"targetData","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"getOracleValues","outputs":[{"internalType":"uint256","name":"mint","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"minRatio","type":"uint256"},{"internalType":"uint256","name":"redemption","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRedemptionFees","outputs":[{"internalType":"uint64[]","name":"xRedemptionCurve","type":"uint64[]"},{"internalType":"int64[]","name":"yRedemptionCurve","type":"int64[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalIssued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint8","name":"action","type":"uint8"}],"stateMutability":"view","type":"function","name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function","name":"isTrusted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function","name":"isTrustedSeller","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"isValidSelector","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"view","type":"function","name":"isWhitelistedCollateral","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"isWhitelistedForCollateral","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint8","name":"whitelistType","type":"uint8"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function","name":"isWhitelistedForType","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"stateMutability":"view","type":"function","name":"quoteIn","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"stateMutability":"view","type":"function","name":"quoteOut","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteRedemptionCurve","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverERC20"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256[]","name":"minAmountOuts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256[]","name":"minAmountOuts","type":"uint256[]"},{"internalType":"address[]","name":"forfeitTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"redeemWithForfeit","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeCollateral"},{"inputs":[{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sellRewards","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_newAccessControlManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAccessControlManager"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDummyImplementation"},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint64[]","name":"xFee","type":"uint64[]"},{"internalType":"int64[]","name":"yFee","type":"int64[]"},{"internalType":"bool","name":"mint","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setFees"},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"bytes","name":"oracleConfig","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setOracle"},{"inputs":[{"internalType":"uint64[]","name":"xFee","type":"uint64[]"},{"internalType":"int64[]","name":"yFee","type":"int64[]"}],"stateMutability":"nonpayable","type":"function","name":"setRedemptionCurveParams"},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint8","name":"whitelistStatus","type":"uint8"},{"internalType":"bytes","name":"whitelistData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistStatus"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactInput","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"permitData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swapExactInputWithPermit","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"permitData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swapExactOutputWithPermit","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint8","name":"pausedType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"togglePause"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint8","name":"t","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"toggleTrusted"},{"inputs":[{"internalType":"uint8","name":"whitelistType","type":"uint8"},{"internalType":"address","name":"who","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"toggleWhitelist"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"increase","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateNormalizer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/angle/AngleAdapter.sol":"ITransmuter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40} \ No newline at end of file diff --git a/evm/out/AngleAdapter.sol/LibManager.json b/evm/out/AngleAdapter.sol/LibManager.json deleted file mode 100644 index 4fcf552..0000000 --- a/evm/out/AngleAdapter.sol/LibManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ddd172f48471e18f5f97a924d7a3393bd65db70642125d6cfda27d67c8bbfd3864736f6c634300081b0033","sourceMap":"15543:3139:40:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220ddd172f48471e18f5f97a924d7a3393bd65db70642125d6cfda27d67c8bbfd3864736f6c634300081b0033","sourceMap":"15543:3139:40:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Angle Labs, Inc.\",\"details\":\"Managed collateral assets may be handled through external smart contracts or directly through this libraryThere is no implementation at this point for a managed collateral handled through this library, and a new specific `ManagerType` would need to be added in this case\",\"kind\":\"dev\",\"methods\":{},\"title\":\"LibManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"LibManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/angle/AngleAdapter.sol":"LibManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40} \ No newline at end of file diff --git a/evm/out/AngleAdapter.t.sol/AngleAdapterTest.json b/evm/out/AngleAdapter.t.sol/AngleAdapterTest.json deleted file mode 100644 index ea7a99a..0000000 --- a/evm/out/AngleAdapter.t.sol/AngleAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesAngle","inputs":[{"name":"pair","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsAngle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensAngle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasingAngle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzAngleMint","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzAngleRedeem","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasingAngle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601e541617601e55616d5690816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e414613c1e575080631ed7831c14613ba057806321079a9214613b105780632ade38801461395157806333ed1a1c14612cf65780633e5e3c2314612c785780633f7286f414612bfa5780634f9eed5514611ff45780635ffccd931461190157806366d9a9a01461175357806385226c81146116c15780638bdd39a214610791578063916a17c614610505578063a391347a146103aa578063b5508aa914610311578063ba414fa6146102ec578063ccfab64a146101a2578063e20c9f71146101145763fa7626d4146100ef575f80fd5b34610111578060031936011261011157602060ff601e54166040519015158152f35b80fd5b503461011157806003193601126101115760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101835761017f8561017381870382614163565b60405191829182613f9a565b0390f35b82546001600160a01b031684526020909301926001928301920161015c565b5034610111576060366003190112610111576024356001600160a01b038116908190036102e857816044356001600160a01b038116908190036102e857606460018060a01b03601e5460081c169360405194859384926348bd7dfd60e01b84526004356004850152602484015260448301525afa80156102dd578290610231575b61022e91505161451f565b80f35b503d8083833e6102418183614163565b8101906020818303126102d5578051906001600160401b0382116102d957019080601f830112156102d55781519061027882614224565b926102866040519485614163565b82845260208085019360051b8201019182116102d157602001915b8183106102b45750505061022e90610223565b8251600a8110156102cd578152602092830192016102a1565b8580fd5b8480fd5b8280fd5b8380fd5b6040513d84823e3d90fd5b5080fd5b50346101115780600319360112610111576020610307614484565b6040519015158152f35b503461011157806003193601126101115760195461032e81614224565b9161033c6040519384614163565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061037e576040518061017f87826140ce565b60016020819260405161039c8161039581896142ec565b0382614163565b815201920192019190610369565b5034610111578060031936011261011157601e5460405163ecbbc03360e01b815260048101839052919081908390602490829060081c6001600160a01b03165afa80156104f8578190610460575b819250515f516020616cc15f395f51905f523b1561045d576040519063a8d4d1d960e01b825260048201526002602482015281816044815f516020616cc15f395f51905f525afa80156102dd5761044c5750f35b8161045691614163565b6101115780f35b50fd5b503d8082843e6104708184614163565b8201916020818403126102e8578051906001600160401b0382116102d5570182601f820112156102e8578051926104a684614224565b916104b46040519384614163565b84835260208084019560051b8201019182116102d957602001935b8185106104e05750508192506103f8565b602080916104ed87614210565b8152019401936104cf565b50604051903d90823e3d90fd5b5034610111578060031936011261011157601c5461052281614224565b906105306040519283614163565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310610573576040518061017f878261401f565b60405161057f8161412d565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106106f2578460019794600297946020979461060a9454918181106106d6575b8181106106ba575b81811061069e575b818110610682575b818110610666575b81811061064a575b818110610630575b1061061c575b500382614163565b8382015281520192019201919061055e565b6001600160e01b031916815286015f610602565b828a1b6001600160e01b0319168452928901928b016105fc565b604083901b6001600160e01b0319168452928901928b016105f4565b606083901b6001600160e01b0319168452928901928b016105ec565b608083901b6001600160e01b0319168452928901928b016105e4565b60a083901b6001600160e01b0319168452928901928b016105dc565b60c083901b6001600160e01b0319168452928901928b016105d4565b60e083901b6001600160e01b0319168452928901928b016105cc565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916105a7565b5034610111576107a036614000565b156116b85760646001915b60018060a01b03601e5460081c168460018060a01b03601f5416916040519485809263549387df60e11b82528460048301528560248301525f516020616ce15f395f51905f5260448301525afa928315610edc578593611694575b50600284101561168057846001851493845f146111c35761082891925061438e565b518210806111ba575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd576111a5575b50506108f160018060a01b03601f5416858060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b5190845afa506108d36108c4614628565b60208082518301019101614201565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061094b61466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061099d8161098f888886614657565b03601f198101835282614163565b519020895260205260ff600360408a200154161561116f575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6109ef6040892093604051928391602083019586614657565b51902086526020528460408120916001830154926002810154610a1281866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697611014575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491610fff575b5050610ae761482a565b9015908115610ff3575b50610f165750505050610b02615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918a91165af18015610edc57610ee7575b505b6040516370a0823160e01b8152306004820152906020826024815f516020616ce15f395f51905f525afa918215610edc578592610ea8575b50601f546040516370a0823160e01b815230600482015293906001600160a01b0316602085602481845afa948515610e9d578795610e69575b50601e54604051638307c65560e01b81529596608092879260081c6001600160a01b03169183918b918391610bf9918a9160048501614420565b03925af1938415610d2f578694610e38575b508351610c16578580f35b15610d3a576040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610d2f578691610cfb575b50610c6692610c6091614477565b9061457b565b51601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610cf0578491610cb8575b50610c6090610caf93614477565b5f808080808580f35b90506020813d602011610ce8575b81610cd360209383614163565b81010312610ce45751610caf610ca1565b5f80fd5b3d9150610cc6565b6040513d86823e3d90fd5b90506020813d602011610d27575b81610d1660209383614163565b81010312610ce45751610c66610c52565b3d9150610d09565b6040513d88823e3d90fd5b601f546040516370a0823160e01b815230600482015292949290602090829060249082906001600160a01b03165afa908115610d2f578691610e04575b50610c6090610d8593614477565b516040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610cf0578491610dd0575b50610dcb92610c6091614477565b610caf565b90506020813d602011610dfc575b81610deb60209383614163565b81010312610ce45751610dcb610dbd565b3d9150610dde565b90506020813d602011610e30575b81610e1f60209383614163565b81010312610ce45751610d85610d77565b3d9150610e12565b610e5b91945060803d608011610e62575b610e538183614163565b8101906143ca565b925f610c0b565b503d610e49565b94506020853d602011610e95575b81610e8460209383614163565b81010312610ce45793519382610bbf565b3d9150610e77565b6040513d89823e3d90fd5b9091506020813d602011610ed4575b81610ec460209383614163565b81010312610ce45751905f610b86565b3d9150610eb7565b6040513d87823e3d90fd5b610f089060203d602011610f0f575b610f008183614163565b8101906143b2565b505f610b4c565b503d610ef6565b82945054905f516020616cc15f395f51905f523b156102d5576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020616cc15f395f51905f525af180156102dd57610fde575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610fe9828092614163565b6101115780610f7d565b5f19141590505f610af1565b8161100991614163565b6102d557825f610add565b955095506020853d602011611045575b8161103160209383614163565b81010312610ce45793519489949081610a63565b3d9150611024565b6110588491866145dd565b61010003610100811161115b5760ff811161115b5760405163348051d760e11b8152600190911b600482015281816024815f516020616cc15f395f51905f525afa9081156102dd57606a60209284611113936111339692611137575b506040519485925f516020616d015f395f51905f52828501525f516020616ca15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282614163565b60405162461bcd60e51b8152602060048201529182916024830190613fdc565b0390fd5b6111549192503d8084833e61114c8183614163565b81019061419f565b90866110b4565b634e487b7160e01b82526011600452602482fd5b611177614a46565b506109b6565b634e487b7160e01b85526032600452602485fd5b634e487b7160e01b85526041600452602485fd5b816111af91614163565b6102d957835f61087a565b50811515610831565b6111cc9061436d565b51831080611677575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd57611662575b50908161124c9260405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b601054906112a661466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906112ea8161098f888886614657565b519020895260205260ff600360408a2001541615611654575b6001600160a01b0384165f908152600d6020526040902090885260205261098f61133c6040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461135f81866145dd565b611520575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f5786976114e7575b506001908201610100031b5f1901811b198616915f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f516020616cc15f395f51905f525af1908115610cf05784916114d2575b50508461143961482a565b9190159182156114c7575b5050610f165750505050611456615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c8216600482015260248101849052916020918391168188816044810103925af18015610edc576114a8575b50610b4e565b6114c09060203d602011610f0f57610f008183614163565b505f6114a2565b14159050855f611444565b816114dc91614163565b6102d557825f61142e565b955095506020853d602011611518575b8161150460209383614163565b81010312610ce457935194899490816113b1565b3d91506114f7565b9091925061152e81856145dd565b6101000361010081116116405760ff81116116405760405163348051d760e11b8152600190911b6004820181905289826024815f516020616cc15f395f51905f525afa801561163557606a6115e6916020948d9161161b575b506040519485915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283614163565b8610156115f7575090879291611364565b60405162461bcd60e51b815260206004820152908190611133906024830190613fdc565b61162f91503d808f833e61114c8183614163565b5f611587565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61165c614a46565b50611303565b8161166c91614163565b6102d157845f61121e565b508215156111d5565b634e487b7160e01b85526021600452602485fd5b6116b19193503d8087833e6116a98183614163565b81019061423b565b915f610806565b606482916107ab565b5034610111578060031936011261011157601a546116de81614224565b916116ec6040519384614163565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061172e576040518061017f87826140ce565b6001602081926040516117458161039581896142ec565b815201920192019190611719565b5034610111578060031936011261011157601b5461177081614224565b9061177e6040519283614163565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106117c1576040518061017f878261401f565b6040516117cd8161412d565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061186257846001979460029794602097946118509454918181106106d6578181106106ba5781811061069e57818110610682578181106106665781811061064a57818110610630571061061c57500382614163565b838201528152019201920191906117ac565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117f5565b503461011157806003193601126101115780610ca0906040516119248382614163565b60648152601f19830180366020840137845b60648110611f9c575061194c6040519485614163565b60648452825b818110611f605750506001905b60648210611aba57505060015b60638110611978578380f35b611982818461439e565b51516001820190818311611aa65761199a828661439e565b51515f516020616cc15f395f51905f523b156102d15760405191638466f41560e01b83526004830152602482015283816044815f516020616cc15f395f51905f525afa8015610cf0578490611a8f575b5050611a1560406119fb848761439e565b5101516040611a0c5f19948861439e565b510151906145ea565b830b145f516020616cc15f395f51905f523b156102d5576040519063a598288560e01b8252600482015282816024815f516020616cc15f395f51905f525afa8015611a8457908391611a6c575b505060010161196c565b90611a7691614163565b8184126102e857815f611a62565b6040513d85823e3d90fd5b611a9891614163565b8285126102d5575f836119ea565b634e487b7160e01b84526011600452602484fd5b909160405190634b88b8ad60e11b8252602082600481845f516020616cc15f395f51905f525af19182156104f8578192611f2d575b5080611f1957508492611b2f60018060a01b03601f5416878060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611f05576001810180600e55811015611ef157600e8752602087200130905560018060a01b0360115416600f5460e01b60105490611b8961466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a206040516020810190611bcd8161098f888886614657565b5190208b5260205260ff600360408c2001541615611ee3575b6001600160a01b0384165f908152600d60205260409020908a5260205261098f611c1f60408b2093604051928391602083019586614657565b51902088526020528660408120916001830154926002810154611c4281866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697611eab575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491611e96575b5050611d1761482a565b9015908115611e8a575b50610f165750505050611d32615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918c91165af18015610e9d57611e6c575b50601e54601f54611dc6916080916001600160a01b039081169160081c1660018a611da7878a61439e565b51604051638307c65560e01b8152968795869485939160048501614420565b03925af1908115610e9d578791611e4e575b50611de3828761439e565b52611dee818661439e565b5060405191631135fc2960e21b83526004830152602082602481895f516020616cc15f395f51905f525af1918215610d2f57600192611e30575b50019061195f565b611e479060203d8111610f0f57610f008183614163565b505f611e28565b611e66915060803d8111610e6257610e538183614163565b5f611dd8565b611e839060203d8111610f0f57610f008183614163565b505f611d7c565b5f19141590505f611d21565b81611ea091614163565b6102d557825f611d0d565b955095506020853d8211611edb575b81611ec760209383614163565b81010312610ce4579351948b949081611c93565b3d9150611eba565b611eeb614a46565b50611be6565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b81526021600452602490fd5b9091506020813d8211611f58575b81611f4860209383614163565b81010312610ce457519080611aef565b3d9150611f3b565b602090604051611f6f81614148565b8581528583820152604051611f838161412d565b8681528684820152604082015282828801015201611952565b9280611f195750849280606402606481048203611fe0576305f5e100820290808204620f42401490151715611fe05760019190611fd9828661439e565b5201611936565b634e487b7160e01b87526011600452602487fd5b50346101115761200336614000565b15612bf45760015b601e54601f5460405163549387df60e11b8152600481018690525f516020616ce15f395f51905f5260248201526001600160a01b039182166044820152929185918491606491839160081c165afa918215610cf0578492612bd8575b506002811015612bc457836001821492835f1461272b576120879061438e565b51841080612722575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd5761270d575b508060405160208101906370a0823160e01b825230602482015260248152612102604482614163565b51905f516020616ce15f395f51905f525afa506121206108c4614628565b50601180546001600160a01b0319165f516020616ce15f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061219a61466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906121de8161098f888886614657565b519020895260205260ff600360408a20015416156126ff575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6122306040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461225381866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f5786976126c6575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf05784916126b1575b505061232861482a565b90159081156126a5575b50610f165750505050612343615310565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f196024820152602081604481885f516020616ce15f395f51905f525af18015610edc57612686575b505b6040516370a0823160e01b8152306004820152926020846024815f516020616ce15f395f51905f525afa938415610edc578594612652575b50601f546040516370a0823160e01b81523060048201526001600160a01b03909116939092602084602481885afa938415610e9d57879461261d575b5060809060a460018060a01b03601e5460081c1696896040519889948593638307c65560e01b85528360048601525f516020616ce15f395f51905f526024860152604485015260648401528760848401525af1938415610d2f5786946125fc575b508351612472578580f35b1561253857601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610d2f578691612504575b506124bf92610c6091614477565b516040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610cf0578491610cb85750610c6090610caf93614477565b90506020813d602011612530575b8161251f60209383614163565b81010312610ce457516124bf6124b1565b3d9150612512565b6040516370a0823160e01b81523060048201529193916020816024815f516020616ce15f395f51905f525afa908115610d2f5786916125c8575b50610c609061258093614477565b51601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610cf0578491610dd05750610dcb92610c6091614477565b90506020813d6020116125f4575b816125e360209383614163565b81010312610ce45751612580612572565b3d91506125d6565b61261691945060803d608011610e6257610e538183614163565b925f612467565b9093506020813d60201161264a575b8161263960209383614163565b81010312610ce45751926080612406565b3d915061262c565b9093506020813d60201161267e575b8161266e60209383614163565b81010312610ce45751925f6123ca565b3d9150612661565b61269e9060203d602011610f0f57610f008183614163565b505f612390565b5f19141590505f612332565b816126bb91614163565b6102d557825f61231e565b955095506020853d6020116126f7575b816126e360209383614163565b81010312610ce457935194899490816122a4565b3d91506126d6565b612707614a46565b506121f7565b8161271791614163565b6102d957835f6120d9565b50831515612090565b6127349061436d565b51841080612bbb575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd57612ba6575b508060405160208101906370a0823160e01b8252306024820152602481526127af604482614163565b51905f516020616ce15f395f51905f525afa506127cd6108c4614628565b50601180546001600160a01b0319165f516020616ce15f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061284761466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061288b8161098f888886614657565b519020895260205260ff600360408a2001541615612b98575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6128dd6040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461290081866145dd565b612ac2575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697612a89575b506001908201610100031b5f1901811b198616915f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491612a74575b5050866129da61482a565b919015918215612a69575b5050610f1657505050506129f7615310565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b0316600482015260248101849052602081604481885f516020616ce15f395f51905f525af18015610edc57612a4a575b50612392565b612a629060203d602011610f0f57610f008183614163565b505f612a44565b14159050875f6129e5565b81612a7e91614163565b6102d557825f6129cf565b955095506020853d602011612aba575b81612aa660209383614163565b81010312610ce45793519489949081612952565b3d9150612a99565b90919250612ad081856145dd565b6101000361010081116116405760ff81116116405760405163348051d760e11b8152600190911b6004820181905289826024815f516020616cc15f395f51905f525afa801561163557606a612b87916020948d9161161b57506040519485915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283614163565b8810156115f7575090879291612905565b612ba0614a46565b506128a4565b81612bb091614163565b6102d957835f612786565b5083151561273d565b634e487b7160e01b84526021600452602484fd5b612bed9192503d8086833e6116a98183614163565b905f612067565b8161200b565b503461011157806003193601126101115760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612c595761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201612c42565b503461011157806003193601126101115760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612cd75761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201612cc0565b5034610111578060031936011261011157610ca0604051612d178282614163565b60648152601f1982019182366020840137839160019384935b86606482106138fe575050612d486040519384614163565b60648352855b8181106138b95750508290815b612ea9575b5050815b612d6c578380f35b6063821015612ea557612d7f828261439e565b515183830190818411612e91578590612d98838561439e565b51515f516020616cc15f395f51905f523b156102d55760405191638466f41560e01b83526004830152602482015281816044815f516020616cc15f395f51905f525afa80156102dd57612e7c575b5050612e086040612df7858561439e565b5101516040611a0c5f19948661439e565b850b14915f516020616cc15f395f51905f523b156102d1576040519263a598288560e01b845260048401528480846024815f516020616cc15f395f51905f525afa9384156104f8578594612e61575b5050820191612d64565b8192945090612e6f91614163565b6102d9578291845f612e57565b81612e8691614163565b6102d157845f612de6565b634e487b7160e01b86526011600452602486fd5b8380f35b90919260648310156138b25750604051634b88b8ad60e11b81529185602084600481845f516020616cc15f395f51905f525af19384156104f857819461387d575b5061386957841561345b57601f546001600160a01b0316612f39612f0e838561439e565b5191888060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156134475786810180600e5581101561343357600e8852307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105489926001600160a01b03169160e01b612fb461466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612ff88161098f888886614657565b519020865260205260ff60036040872001541615613425575b6001600160a01b0384165f908152600d6020526040902090855260205261098f61304a6040862093604051928391602083019586614657565b5190208352602052604082208881015493600282015461306a81876145dd565b61331a575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020616cc15f395f51905f525afa978815610e9d5787986132e2575b506001908201610100031b5f1901811b198716915f516020616cc15f395f51905f523b156132de576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020616cc15f395f51905f525af1908115610edc5785916132c9575b505061314361482a565b9190159182156132be575b5050610f165750505050613160615310565b601f54601e546131bc9160209160081c6001600160a01b039081169116613187858761439e565b5160405163095ea7b360e01b81526001600160a01b0390931660048401526024830152909283919082908b9082906044820190565b03925af18015610e9d576132a0575b505b601e54601f546131f6916080916001600160a01b039081169160081c168980611da7878961439e565b03925af1908115610e9d578791613282575b50613213828661439e565b5261321e818561439e565b5060405192631135fc2960e21b84526004840152602083602481895f516020616cc15f395f51905f525af1908115610d2f5785938492613264575b500190829392612d5b565b61327b9060203d8111610f0f57610f008183614163565b505f613259565b61329a915060803d8111610e6257610e538183614163565b5f613208565b6132b79060203d8111610f0f57610f008183614163565b505f6131cb565b141590505f8061314e565b816132d391614163565b6102d957835f613139565b8680fd5b965096506020863d8211613312575b816132fe60209383614163565b81010312610ce4579451958c9590816130bc565b3d91506132f1565b909192935061332981866145dd565b6101000361010081116134115760ff81116134115760405163348051d760e11b8152908b901b600482018190528c80836024815f516020616cc15f395f51905f525afa9283156104f85760209382606a926133e394926133f5575b506040519586925f516020616d015f395f51905f52828501525f516020616ca15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283614163565b8310156115f75750908a93929161306f565b61340a9192503d8084833e61114c8183614163565b905f613384565b634e487b7160e01b8c52601160045260248cfd5b61342d614a46565b50613011565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b935061349460018060a01b03601f54165f8060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e5493600160401b8510156138555784600e555f94600e5f5260205f200130905560018060a01b0360115416600f5460e01b601054906134e661466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f20604051602081019061352a8161098f888886614657565b5190205f5260205260ff600360405f2001541615613847575b6001600160a01b0384165f908152600d60205260409020905f5260205261098f61357c60405f2093604051928391602083019586614657565b5190205f5260205260405f2090815491600281015461359b81856145dd565b613759578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f516020616cc15f395f51905f525afa95861561371b575f96613726575b506001908201610100031b5f1901811b1985165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201525f81606481835f516020616cc15f395f51905f525af1801561371b57613704575b5090889161366f61482a565b90159081156136f8575b50610f16575050505061368a615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918c91165af18015610e9d576136da575b506131cd565b6136f19060203d8111610f0f57610f008183614163565b505f6136d4565b5f19141590505f613679565b613712919299505f90614163565b5f97905f613663565b6040513d5f823e3d90fd5b9095506020813d8211613751575b8161374160209383614163565b81010312610ce4575194816135ec565b3d9150613734565b61376390846145dd565b6101000361010081116138335760ff106138335760405163348051d760e11b81525f60048201819052816024815f516020616cc15f395f51905f525afa90811561371b57611113606a611133936020935f91613819575b506040519384915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101835282614163565b61382d91503d805f833e61114c8183614163565b856137ba565b634e487b7160e01b5f52601160045260245ffd5b61384f614a46565b50613543565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b86526021600452602486fd5b9350506020833d82116138aa575b8161389860209383614163565b81010312610ce457859251925f612eea565b3d915061388b565b9291612d60565b602091929394506040516138cc81614148565b87815287838201526040516138e08161412d565b88815288848201526040820152828287010152019084939291612d4e565b9091929394506138695780606402906064820481036138335768056bc75e2d63100000810291808304670de0b6b3a76400001490151715613833578591613945828661439e565b52019084939291612d30565b5034610111578060031936011261011157601d5461396e81614224565b61397b6040519182614163565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310613a7f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106139e75786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613a54575050505050602080600192970193019301909286959492936139da565b9091929394602080613a72600193605f198782030189528951613fdc565b9701950193929101613a30565b604051613a8b8161412d565b82546001600160a01b03168152600183018054613aa781614224565b91613ab56040519384614163565b8183528a526020808b20908b9084015b838210613aeb5750505050600192826020928360029501528152019201920191906139ab565b600160208192604051613b0281610395818a6142ec565b815201930191019091613ac5565b5034610111578060031936011261011157601e54601f5460405163549387df60e11b8152600481018490526001600160a01b0391821660248201525f516020616ce15f395f51905f5260448201529183918391606491839160081c165afa80156102dd5761022e918391613b86575b505161451f565b613b9a91503d8085833e6116a98183614163565b5f613b7f565b503461011157806003193601126101115760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110613bff5761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201613be8565b905034610ce4575f366003190112610ce45763975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020616cc15f395f51905f525afa90811561371b57613ca5916020915f91613f80575b50604051809381926371ee464d60e01b8352604060048401526044830190613fdc565b630120b92a602483015203815f5f516020616cc15f395f51905f525af1801561371b57613f51575b506040516116e0808201908282106001600160401b038311176138555760209183916155c1833972253582b2a3fe112feec532221d9708c64cefab81520301905ff0801561371b57601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179081905560405163ee565a6360e01b815260208160048172253582b2a3fe112feec532221d9708c64cefab5afa90811561371b575f91613f17575b5060018060a01b03166001600160601b0360a01b601f541617601f555f516020616cc15f395f51905f523b15610ce457604080516318caf8e360e31b815260089290921c6001600160a01b031660048301526024820152600c60448201526b20b733b632a0b230b83a32b960a11b60648201525f81608481835f516020616cc15f395f51905f525af1801561371b57613f04575b50601f5481906001600160a01b03165f516020616cc15f395f51905f523b1561045d57604051906318caf8e360e31b8252600482015260406024820152600560448201526430b3a2aaa960d91b60648201528181608481835f516020616cc15f395f51905f525af180156102dd57613eef575b50505f516020616cc15f395f51905f523b1561011157806040516318caf8e360e31b81525f516020616ce15f395f51905f5260048201526040602482015260046044820152634555524360e01b60648201528181608481835f516020616cc15f395f51905f525af180156102dd5761044c5750f35b81613ef991614163565b61011157805f613e7a565b613f1091505f90614163565b5f5f613e07565b90506020813d602011613f49575b81613f3260209383614163565b81010312610ce457613f4390614210565b5f613d73565b3d9150613f25565b6020813d602011613f78575b81613f6a60209383614163565b81010312610ce45751613ccd565b3d9150613f5d565b613f9491503d805f833e61114c8183614163565b5f613c82565b60206040818301928281528451809452019201905f5b818110613fbd5750505090565b82516001600160a01b0316845260209384019390920191600101613fb0565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040906003190112610ce457600435906024358015158103610ce45790565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061405157505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106140ab5750505060208060019297019301930191939290614042565b82516001600160e01b03191684526020938401939092019160019091019061408c565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061410057505050505090565b909192939460208061411e600193603f198682030187528951613fdc565b970193019301919392906140f1565b604081019081106001600160401b0382111761385557604052565b606081019081106001600160401b0382111761385557604052565b90601f801991011681019081106001600160401b0382111761385557604052565b6001600160401b03811161385557601f01601f191660200190565b602081830312610ce4578051906001600160401b038211610ce4570181601f82011215610ce4578051906141d282614184565b926141e06040519485614163565b82845260208383010111610ce457815f9260208093018386015e8301015290565b90816020910312610ce4575190565b51906001600160a01b0382168203610ce457565b6001600160401b0381116138555760051b60200190565b602081830312610ce4578051906001600160401b038211610ce457019080601f83011215610ce457815161426e81614224565b9261427c6040519485614163565b81845260208085019260051b820101928311610ce457602001905b8282106142a45750505090565b8151815260209182019101614297565b90600182811c921680156142e2575b60208310146142ce57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916142c3565b5f92918154916142fb836142b4565b8083529260018116908115614350575060011461431757505050565b5f9081526020812093945091925b838310614336575060209250010190565b600181602092949394548385870101520191019190614325565b915050602093945060ff929192191683830152151560051b010190565b80511561437a5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561437a5760400190565b805182101561437a5760209160051b010190565b90816020910312610ce457518015158103610ce45790565b8091039060808212610ce45760408051926143e484614148565b8251845260208301516020850152603f190112610ce45760606040519161440a8361412d565b6040810151835201516020820152604082015290565b5f81526001600160a01b0390911660208201525f516020616ce15f395f51905f52604082015260a081019392919060028210156144635760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b9190820391821161383357565b60085460ff1680156144935790565b50604051630667f9d760e41b81525f516020616cc15f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020616cc15f395f51905f525afa90811561371b575f916144ed575b50151590565b90506020813d602011614517575b8161450860209383614163565b81010312610ce457515f6144e7565b3d91506144fb565b5f516020616cc15f395f51905f523b15610ce4576040519063260a5b1560e21b82526004820152600260248201525f816044815f516020616cc15f395f51905f525afa801561371b5761456f5750565b5f61457991614163565b565b905f516020616cc15f395f51905f523b15610ce4576040519163260a5b1560e21b8352600483015260248201525f816044815f516020616cc15f395f51905f525afa801561371b5761456f5750565b8181029291811591840414171561383357565b9190820180921161383357565b61460a9060206145ff825182860151906145ca565b9351910151906145ca565b908082036146185750505f90565b111561462357600190565b5f1990565b3d15614652573d9061463982614184565b916146476040519384614163565b82523d5f602084013e565b606090565b60209291908391805192839101825e019081520190565b6146796014546142b4565b614736576040519081826020600e549283815201600e5f5260205f20925f5b81811061471d5750506146ad92500383614163565b81518060051b9080820460201490151715613833576146cb81614184565b906146d96040519283614163565b8082526146e8601f1991614184565b013660208301375f5b835181101561471857806147076001928661439e565b5160208260051b85010152016146f1565b509150565b8454835260019485019487945060209093019201614698565b604051614748816103958160146142ec565b90565b600781019061475a82546142b4565b61481657600191500190604051808360208295549384815201905f5260205f20925f5b8181106147fd57505061479292500383614163565b81518060051b9080820460201490151715613833576147b081614184565b906147be6040519283614163565b8082526147cd601f1991614184565b013660208301375f5b835181101561471857806147ec6001928661439e565b5160208260051b85010152016147d6565b845483526001948501948794506020909301920161477d565b5061474861039591604051928380926142ec565b5f806020600f5460e01b6148786024614843600d61474b565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283614163565b6011549151916001600160a01b03165afa90614892614628565b601054909290600581901b906001600160fb1b03811603613833575f938051602081115f1461491d57506020905b5f925b8284106148d257505050509190565b909192956148e087836145dd565b835181101561437a57830160200151600388901b91906001600160f81b031916881560088a8504141715613833576001921c1796019291906148c3565b906148c0565b905f806020600285015460e01b61493e60246148438861474b565b60048601549151916001600160a01b03165afa600361495b614628565b930154600581901b906001600160fb1b03811603613833575f938051602081115f146149e357506020905b5f925b82841061499857505050509190565b909192956149a687836145dd565b835181101561437a57830160200151600388901b91906001600160f81b031916881560088a8504141715613833576001921c179601929190614989565b90614986565b9080601f83011215610ce4578151614a0081614224565b92614a0e6040519485614163565b81845260208085019260051b820101928311610ce457602001905b828210614a365750505090565b8151815260209182019101614a29565b601154600f546010546001600160a01b03909216915f9160e01b614a6a600d61474b565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f206040516020810190614aa38161098f888886614657565b5190205f5260205260ff600360405f200154166152cf575f516020616cc15f395f51905f523b15610ce45760405163266cf10960e01b81525f81600481835f516020616cc15f395f51905f525af1801561371b576152ba575b50614b07600d614923565b90506040516365bc948160e01b81528660048201528581602481835f516020616cc15f395f51905f525af1908115610d2f578691615252575b508051614bb157608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b815181101561524a57816020614bcc83614bfd9561439e565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020616cc15f395f51905f525afa92831561523f57889361520c575b5082156151b4575b614c2f828261439e565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020616cc15f395f51905f525afa9081156151a9578b91615178575b50614c8a600d614923565b91909382155f14615171575f19905b5f516020616cc15f395f51905f523b15615158576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020616cc15f395f51905f525af180156150dd57908d9161515c575b5050614d0a600d614923565b601154909491506001600160a01b03165f516020616cc15f395f51905f523b15615158576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020616cc15f395f51905f525af1801561514d57908c91615134575b505082615129575b50501561511f578793889360ff60135416614fa4575b6001868601610100031b5f1901851b16841c8103614f96575090614e24917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8961098f614df98d604051928391602083019586614657565b519020614e06868661439e565b51906040519283528a602084015260408301526060820152a161439e565b51906040519060808201928284106001600160401b038511176138555760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190614e8d8161098f8d8d86614657565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614ee88161098f888886614657565b519020855260205260ff60036040862001541615614f39576040948452600d60205284842090845260205261098f614f2d858520938651928391602083019586614657565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01614bb3565b9450614fef9350614fb5838361439e565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020616cc15f395f51905f525afa948515611635578a956150ec575b5061501b86600d615424565b95909661502981600d6154fd565b60115490939192906001600160a01b03165f516020616cc15f395f51905f523b156150e8576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020616cc15f395f51905f525af180156150dd57908d916150c4575b5050876150bc575b509495614d9e575093509150600190614f9e565b96505f6150a8565b816150ce91614163565b6150d9578b5f6150a0565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211615117575b8161510760209383614163565b81010312610ce45751935f61500f565b3d91506150fa565b9150600190614f9e565b141590505f80614d88565b8161513e91614163565b615149578a5f614d80565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b8161516691614163565b6150d9578b5f614cfe565b8c90614c99565b90506020813d82116151a1575b8161519260209383614163565b81010312610ce457515f614c7f565b3d9150615185565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56152046151e2848461439e565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614c25565b9092506020813d8211615237575b8161522760209383614163565b81010312610ce45751915f614c1d565b3d915061521a565b6040513d8a823e3d90fd5b505050614ebb565b90503d8087833e6152638183614163565b81016040828203126132de5781516001600160401b0381116152b6578161528b9184016149e9565b916020810151906001600160401b0382116152b2576152ab9291016149e9565b505f614b40565b8880fd5b8780fd5b6152c79194505f90614163565b5f925f614afc565b91939092505f52600d60205260405f20905f5260205261098f61530160405f2093604051928391602083019586614657565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806153e2575b505f60105560ff19601354166013556153566014546142b4565b8061535e5750565b601f811160011461537057505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106153d757505060145f525f602081208160145555565b5f81556001016153be565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110615419575061533c565b5f815560010161540c565b91905f5b610100811061543b57505090505f905f90565b8060ff0360ff8111613833576004850154600190911b906001600160a01b03165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020616cc15f395f51905f525af1801561371b576154ed575b506154c784614923565b816154e3575b506154da57600101615428565b92505060019190565b905015155f6154cd565b5f6154f791614163565b5f6154bd565b91905f5b610100811061551457505090505f905f90565b60048401546001821b906001600160a01b03165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020616cc15f395f51905f525af1801561371b576155b0575b5061559384614923565b816155a6575b506154da57600101615501565b905015155f615599565b5f6155ba91614163565b5f61558956fe60a03461008c57601f6116e038819003918201601f19168301916001600160401b038311848410176100905780849260209460405283398101031261008c57516001600160a01b038116810361008c5760805260405161163b90816100a58239608051818181607e015281816103ba01528181610afc01528181610c3a01528181610d0e0152610eb30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d0000000000000000000000001abaea1f7c830bd89acc67ec4af516284b1bc33c73746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220fe342330c9be0b50a54a73ef75c197af50af4868f95261de6c909f79571f3a4864736f6c634300081b0033","sourceMap":"324:6416:66:-:0;;;;;;;3166:4:2;324:6416:66;;3166:4:2;324:6416:66;;;3166:4:2;324:6416:66;3166:4:2;324:6416:66;;1038:4:12;324:6416:66;;;1038:4:12;324:6416:66;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e414613c1e575080631ed7831c14613ba057806321079a9214613b105780632ade38801461395157806333ed1a1c14612cf65780633e5e3c2314612c785780633f7286f414612bfa5780634f9eed5514611ff45780635ffccd931461190157806366d9a9a01461175357806385226c81146116c15780638bdd39a214610791578063916a17c614610505578063a391347a146103aa578063b5508aa914610311578063ba414fa6146102ec578063ccfab64a146101a2578063e20c9f71146101145763fa7626d4146100ef575f80fd5b34610111578060031936011261011157602060ff601e54166040519015158152f35b80fd5b503461011157806003193601126101115760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101835761017f8561017381870382614163565b60405191829182613f9a565b0390f35b82546001600160a01b031684526020909301926001928301920161015c565b5034610111576060366003190112610111576024356001600160a01b038116908190036102e857816044356001600160a01b038116908190036102e857606460018060a01b03601e5460081c169360405194859384926348bd7dfd60e01b84526004356004850152602484015260448301525afa80156102dd578290610231575b61022e91505161451f565b80f35b503d8083833e6102418183614163565b8101906020818303126102d5578051906001600160401b0382116102d957019080601f830112156102d55781519061027882614224565b926102866040519485614163565b82845260208085019360051b8201019182116102d157602001915b8183106102b45750505061022e90610223565b8251600a8110156102cd578152602092830192016102a1565b8580fd5b8480fd5b8280fd5b8380fd5b6040513d84823e3d90fd5b5080fd5b50346101115780600319360112610111576020610307614484565b6040519015158152f35b503461011157806003193601126101115760195461032e81614224565b9161033c6040519384614163565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061037e576040518061017f87826140ce565b60016020819260405161039c8161039581896142ec565b0382614163565b815201920192019190610369565b5034610111578060031936011261011157601e5460405163ecbbc03360e01b815260048101839052919081908390602490829060081c6001600160a01b03165afa80156104f8578190610460575b819250515f516020616cc15f395f51905f523b1561045d576040519063a8d4d1d960e01b825260048201526002602482015281816044815f516020616cc15f395f51905f525afa80156102dd5761044c5750f35b8161045691614163565b6101115780f35b50fd5b503d8082843e6104708184614163565b8201916020818403126102e8578051906001600160401b0382116102d5570182601f820112156102e8578051926104a684614224565b916104b46040519384614163565b84835260208084019560051b8201019182116102d957602001935b8185106104e05750508192506103f8565b602080916104ed87614210565b8152019401936104cf565b50604051903d90823e3d90fd5b5034610111578060031936011261011157601c5461052281614224565b906105306040519283614163565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310610573576040518061017f878261401f565b60405161057f8161412d565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106106f2578460019794600297946020979461060a9454918181106106d6575b8181106106ba575b81811061069e575b818110610682575b818110610666575b81811061064a575b818110610630575b1061061c575b500382614163565b8382015281520192019201919061055e565b6001600160e01b031916815286015f610602565b828a1b6001600160e01b0319168452928901928b016105fc565b604083901b6001600160e01b0319168452928901928b016105f4565b606083901b6001600160e01b0319168452928901928b016105ec565b608083901b6001600160e01b0319168452928901928b016105e4565b60a083901b6001600160e01b0319168452928901928b016105dc565b60c083901b6001600160e01b0319168452928901928b016105d4565b60e083901b6001600160e01b0319168452928901928b016105cc565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916105a7565b5034610111576107a036614000565b156116b85760646001915b60018060a01b03601e5460081c168460018060a01b03601f5416916040519485809263549387df60e11b82528460048301528560248301525f516020616ce15f395f51905f5260448301525afa928315610edc578593611694575b50600284101561168057846001851493845f146111c35761082891925061438e565b518210806111ba575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd576111a5575b50506108f160018060a01b03601f5416858060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b5190845afa506108d36108c4614628565b60208082518301019101614201565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061094b61466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061099d8161098f888886614657565b03601f198101835282614163565b519020895260205260ff600360408a200154161561116f575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6109ef6040892093604051928391602083019586614657565b51902086526020528460408120916001830154926002810154610a1281866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697611014575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491610fff575b5050610ae761482a565b9015908115610ff3575b50610f165750505050610b02615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918a91165af18015610edc57610ee7575b505b6040516370a0823160e01b8152306004820152906020826024815f516020616ce15f395f51905f525afa918215610edc578592610ea8575b50601f546040516370a0823160e01b815230600482015293906001600160a01b0316602085602481845afa948515610e9d578795610e69575b50601e54604051638307c65560e01b81529596608092879260081c6001600160a01b03169183918b918391610bf9918a9160048501614420565b03925af1938415610d2f578694610e38575b508351610c16578580f35b15610d3a576040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610d2f578691610cfb575b50610c6692610c6091614477565b9061457b565b51601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610cf0578491610cb8575b50610c6090610caf93614477565b5f808080808580f35b90506020813d602011610ce8575b81610cd360209383614163565b81010312610ce45751610caf610ca1565b5f80fd5b3d9150610cc6565b6040513d86823e3d90fd5b90506020813d602011610d27575b81610d1660209383614163565b81010312610ce45751610c66610c52565b3d9150610d09565b6040513d88823e3d90fd5b601f546040516370a0823160e01b815230600482015292949290602090829060249082906001600160a01b03165afa908115610d2f578691610e04575b50610c6090610d8593614477565b516040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610cf0578491610dd0575b50610dcb92610c6091614477565b610caf565b90506020813d602011610dfc575b81610deb60209383614163565b81010312610ce45751610dcb610dbd565b3d9150610dde565b90506020813d602011610e30575b81610e1f60209383614163565b81010312610ce45751610d85610d77565b3d9150610e12565b610e5b91945060803d608011610e62575b610e538183614163565b8101906143ca565b925f610c0b565b503d610e49565b94506020853d602011610e95575b81610e8460209383614163565b81010312610ce45793519382610bbf565b3d9150610e77565b6040513d89823e3d90fd5b9091506020813d602011610ed4575b81610ec460209383614163565b81010312610ce45751905f610b86565b3d9150610eb7565b6040513d87823e3d90fd5b610f089060203d602011610f0f575b610f008183614163565b8101906143b2565b505f610b4c565b503d610ef6565b82945054905f516020616cc15f395f51905f523b156102d5576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020616cc15f395f51905f525af180156102dd57610fde575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610fe9828092614163565b6101115780610f7d565b5f19141590505f610af1565b8161100991614163565b6102d557825f610add565b955095506020853d602011611045575b8161103160209383614163565b81010312610ce45793519489949081610a63565b3d9150611024565b6110588491866145dd565b61010003610100811161115b5760ff811161115b5760405163348051d760e11b8152600190911b600482015281816024815f516020616cc15f395f51905f525afa9081156102dd57606a60209284611113936111339692611137575b506040519485925f516020616d015f395f51905f52828501525f516020616ca15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282614163565b60405162461bcd60e51b8152602060048201529182916024830190613fdc565b0390fd5b6111549192503d8084833e61114c8183614163565b81019061419f565b90866110b4565b634e487b7160e01b82526011600452602482fd5b611177614a46565b506109b6565b634e487b7160e01b85526032600452602485fd5b634e487b7160e01b85526041600452602485fd5b816111af91614163565b6102d957835f61087a565b50811515610831565b6111cc9061436d565b51831080611677575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd57611662575b50908161124c9260405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b601054906112a661466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906112ea8161098f888886614657565b519020895260205260ff600360408a2001541615611654575b6001600160a01b0384165f908152600d6020526040902090885260205261098f61133c6040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461135f81866145dd565b611520575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f5786976114e7575b506001908201610100031b5f1901811b198616915f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f516020616cc15f395f51905f525af1908115610cf05784916114d2575b50508461143961482a565b9190159182156114c7575b5050610f165750505050611456615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c8216600482015260248101849052916020918391168188816044810103925af18015610edc576114a8575b50610b4e565b6114c09060203d602011610f0f57610f008183614163565b505f6114a2565b14159050855f611444565b816114dc91614163565b6102d557825f61142e565b955095506020853d602011611518575b8161150460209383614163565b81010312610ce457935194899490816113b1565b3d91506114f7565b9091925061152e81856145dd565b6101000361010081116116405760ff81116116405760405163348051d760e11b8152600190911b6004820181905289826024815f516020616cc15f395f51905f525afa801561163557606a6115e6916020948d9161161b575b506040519485915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283614163565b8610156115f7575090879291611364565b60405162461bcd60e51b815260206004820152908190611133906024830190613fdc565b61162f91503d808f833e61114c8183614163565b5f611587565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61165c614a46565b50611303565b8161166c91614163565b6102d157845f61121e565b508215156111d5565b634e487b7160e01b85526021600452602485fd5b6116b19193503d8087833e6116a98183614163565b81019061423b565b915f610806565b606482916107ab565b5034610111578060031936011261011157601a546116de81614224565b916116ec6040519384614163565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061172e576040518061017f87826140ce565b6001602081926040516117458161039581896142ec565b815201920192019190611719565b5034610111578060031936011261011157601b5461177081614224565b9061177e6040519283614163565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106117c1576040518061017f878261401f565b6040516117cd8161412d565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061186257846001979460029794602097946118509454918181106106d6578181106106ba5781811061069e57818110610682578181106106665781811061064a57818110610630571061061c57500382614163565b838201528152019201920191906117ac565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117f5565b503461011157806003193601126101115780610ca0906040516119248382614163565b60648152601f19830180366020840137845b60648110611f9c575061194c6040519485614163565b60648452825b818110611f605750506001905b60648210611aba57505060015b60638110611978578380f35b611982818461439e565b51516001820190818311611aa65761199a828661439e565b51515f516020616cc15f395f51905f523b156102d15760405191638466f41560e01b83526004830152602482015283816044815f516020616cc15f395f51905f525afa8015610cf0578490611a8f575b5050611a1560406119fb848761439e565b5101516040611a0c5f19948861439e565b510151906145ea565b830b145f516020616cc15f395f51905f523b156102d5576040519063a598288560e01b8252600482015282816024815f516020616cc15f395f51905f525afa8015611a8457908391611a6c575b505060010161196c565b90611a7691614163565b8184126102e857815f611a62565b6040513d85823e3d90fd5b611a9891614163565b8285126102d5575f836119ea565b634e487b7160e01b84526011600452602484fd5b909160405190634b88b8ad60e11b8252602082600481845f516020616cc15f395f51905f525af19182156104f8578192611f2d575b5080611f1957508492611b2f60018060a01b03601f5416878060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611f05576001810180600e55811015611ef157600e8752602087200130905560018060a01b0360115416600f5460e01b60105490611b8961466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a206040516020810190611bcd8161098f888886614657565b5190208b5260205260ff600360408c2001541615611ee3575b6001600160a01b0384165f908152600d60205260409020908a5260205261098f611c1f60408b2093604051928391602083019586614657565b51902088526020528660408120916001830154926002810154611c4281866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697611eab575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491611e96575b5050611d1761482a565b9015908115611e8a575b50610f165750505050611d32615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918c91165af18015610e9d57611e6c575b50601e54601f54611dc6916080916001600160a01b039081169160081c1660018a611da7878a61439e565b51604051638307c65560e01b8152968795869485939160048501614420565b03925af1908115610e9d578791611e4e575b50611de3828761439e565b52611dee818661439e565b5060405191631135fc2960e21b83526004830152602082602481895f516020616cc15f395f51905f525af1918215610d2f57600192611e30575b50019061195f565b611e479060203d8111610f0f57610f008183614163565b505f611e28565b611e66915060803d8111610e6257610e538183614163565b5f611dd8565b611e839060203d8111610f0f57610f008183614163565b505f611d7c565b5f19141590505f611d21565b81611ea091614163565b6102d557825f611d0d565b955095506020853d8211611edb575b81611ec760209383614163565b81010312610ce4579351948b949081611c93565b3d9150611eba565b611eeb614a46565b50611be6565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b81526021600452602490fd5b9091506020813d8211611f58575b81611f4860209383614163565b81010312610ce457519080611aef565b3d9150611f3b565b602090604051611f6f81614148565b8581528583820152604051611f838161412d565b8681528684820152604082015282828801015201611952565b9280611f195750849280606402606481048203611fe0576305f5e100820290808204620f42401490151715611fe05760019190611fd9828661439e565b5201611936565b634e487b7160e01b87526011600452602487fd5b50346101115761200336614000565b15612bf45760015b601e54601f5460405163549387df60e11b8152600481018690525f516020616ce15f395f51905f5260248201526001600160a01b039182166044820152929185918491606491839160081c165afa918215610cf0578492612bd8575b506002811015612bc457836001821492835f1461272b576120879061438e565b51841080612722575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd5761270d575b508060405160208101906370a0823160e01b825230602482015260248152612102604482614163565b51905f516020616ce15f395f51905f525afa506121206108c4614628565b50601180546001600160a01b0319165f516020616ce15f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061219a61466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906121de8161098f888886614657565b519020895260205260ff600360408a20015416156126ff575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6122306040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461225381866145dd565b61104d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f5786976126c6575b506001908201610100031b5f1901811b1986165f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020616cc15f395f51905f525af1908115610cf05784916126b1575b505061232861482a565b90159081156126a5575b50610f165750505050612343615310565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f196024820152602081604481885f516020616ce15f395f51905f525af18015610edc57612686575b505b6040516370a0823160e01b8152306004820152926020846024815f516020616ce15f395f51905f525afa938415610edc578594612652575b50601f546040516370a0823160e01b81523060048201526001600160a01b03909116939092602084602481885afa938415610e9d57879461261d575b5060809060a460018060a01b03601e5460081c1696896040519889948593638307c65560e01b85528360048601525f516020616ce15f395f51905f526024860152604485015260648401528760848401525af1938415610d2f5786946125fc575b508351612472578580f35b1561253857601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610d2f578691612504575b506124bf92610c6091614477565b516040516370a0823160e01b81523060048201526020816024815f516020616ce15f395f51905f525afa908115610cf0578491610cb85750610c6090610caf93614477565b90506020813d602011612530575b8161251f60209383614163565b81010312610ce457516124bf6124b1565b3d9150612512565b6040516370a0823160e01b81523060048201529193916020816024815f516020616ce15f395f51905f525afa908115610d2f5786916125c8575b50610c609061258093614477565b51601f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610cf0578491610dd05750610dcb92610c6091614477565b90506020813d6020116125f4575b816125e360209383614163565b81010312610ce45751612580612572565b3d91506125d6565b61261691945060803d608011610e6257610e538183614163565b925f612467565b9093506020813d60201161264a575b8161263960209383614163565b81010312610ce45751926080612406565b3d915061262c565b9093506020813d60201161267e575b8161266e60209383614163565b81010312610ce45751925f6123ca565b3d9150612661565b61269e9060203d602011610f0f57610f008183614163565b505f612390565b5f19141590505f612332565b816126bb91614163565b6102d557825f61231e565b955095506020853d6020116126f7575b816126e360209383614163565b81010312610ce457935194899490816122a4565b3d91506126d6565b612707614a46565b506121f7565b8161271791614163565b6102d957835f6120d9565b50831515612090565b6127349061436d565b51841080612bbb575b5f516020616cc15f395f51905f523b156102e857604051632631f2b160e11b8152901515600482015281816024815f516020616cc15f395f51905f525afa80156102dd57612ba6575b508060405160208101906370a0823160e01b8252306024820152602481526127af604482614163565b51905f516020616ce15f395f51905f525afa506127cd6108c4614628565b50601180546001600160a01b0319165f516020616ce15f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611191576001810180600e5581101561117d57600e8552602085200130905560018060a01b0360115416600f5460e01b6010549061284761466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061288b8161098f888886614657565b519020895260205260ff600360408a2001541615612b98575b6001600160a01b0384165f908152600d6020526040902090885260205261098f6128dd6040892093604051928391602083019586614657565b5190208652602052846040812091600183015492600281015461290081866145dd565b612ac2575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020616cc15f395f51905f525afa968715610d2f578697612a89575b506001908201610100031b5f1901811b198616915f516020616cc15f395f51905f523b156102cd576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020616cc15f395f51905f525af1908115610cf0578491612a74575b5050866129da61482a565b919015918215612a69575b5050610f1657505050506129f7615310565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b0316600482015260248101849052602081604481885f516020616ce15f395f51905f525af18015610edc57612a4a575b50612392565b612a629060203d602011610f0f57610f008183614163565b505f612a44565b14159050875f6129e5565b81612a7e91614163565b6102d557825f6129cf565b955095506020853d602011612aba575b81612aa660209383614163565b81010312610ce45793519489949081612952565b3d9150612a99565b90919250612ad081856145dd565b6101000361010081116116405760ff81116116405760405163348051d760e11b8152600190911b6004820181905289826024815f516020616cc15f395f51905f525afa801561163557606a612b87916020948d9161161b57506040519485915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283614163565b8810156115f7575090879291612905565b612ba0614a46565b506128a4565b81612bb091614163565b6102d957835f612786565b5083151561273d565b634e487b7160e01b84526021600452602484fd5b612bed9192503d8086833e6116a98183614163565b905f612067565b8161200b565b503461011157806003193601126101115760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612c595761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201612c42565b503461011157806003193601126101115760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612cd75761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201612cc0565b5034610111578060031936011261011157610ca0604051612d178282614163565b60648152601f1982019182366020840137839160019384935b86606482106138fe575050612d486040519384614163565b60648352855b8181106138b95750508290815b612ea9575b5050815b612d6c578380f35b6063821015612ea557612d7f828261439e565b515183830190818411612e91578590612d98838561439e565b51515f516020616cc15f395f51905f523b156102d55760405191638466f41560e01b83526004830152602482015281816044815f516020616cc15f395f51905f525afa80156102dd57612e7c575b5050612e086040612df7858561439e565b5101516040611a0c5f19948661439e565b850b14915f516020616cc15f395f51905f523b156102d1576040519263a598288560e01b845260048401528480846024815f516020616cc15f395f51905f525afa9384156104f8578594612e61575b5050820191612d64565b8192945090612e6f91614163565b6102d9578291845f612e57565b81612e8691614163565b6102d157845f612de6565b634e487b7160e01b86526011600452602486fd5b8380f35b90919260648310156138b25750604051634b88b8ad60e11b81529185602084600481845f516020616cc15f395f51905f525af19384156104f857819461387d575b5061386957841561345b57601f546001600160a01b0316612f39612f0e838561439e565b5191888060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156134475786810180600e5581101561343357600e8852307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105489926001600160a01b03169160e01b612fb461466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612ff88161098f888886614657565b519020865260205260ff60036040872001541615613425575b6001600160a01b0384165f908152600d6020526040902090855260205261098f61304a6040862093604051928391602083019586614657565b5190208352602052604082208881015493600282015461306a81876145dd565b61331a575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020616cc15f395f51905f525afa978815610e9d5787986132e2575b506001908201610100031b5f1901811b198716915f516020616cc15f395f51905f523b156132de576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020616cc15f395f51905f525af1908115610edc5785916132c9575b505061314361482a565b9190159182156132be575b5050610f165750505050613160615310565b601f54601e546131bc9160209160081c6001600160a01b039081169116613187858761439e565b5160405163095ea7b360e01b81526001600160a01b0390931660048401526024830152909283919082908b9082906044820190565b03925af18015610e9d576132a0575b505b601e54601f546131f6916080916001600160a01b039081169160081c168980611da7878961439e565b03925af1908115610e9d578791613282575b50613213828661439e565b5261321e818561439e565b5060405192631135fc2960e21b84526004840152602083602481895f516020616cc15f395f51905f525af1908115610d2f5785938492613264575b500190829392612d5b565b61327b9060203d8111610f0f57610f008183614163565b505f613259565b61329a915060803d8111610e6257610e538183614163565b5f613208565b6132b79060203d8111610f0f57610f008183614163565b505f6131cb565b141590505f8061314e565b816132d391614163565b6102d957835f613139565b8680fd5b965096506020863d8211613312575b816132fe60209383614163565b81010312610ce4579451958c9590816130bc565b3d91506132f1565b909192935061332981866145dd565b6101000361010081116134115760ff81116134115760405163348051d760e11b8152908b901b600482018190528c80836024815f516020616cc15f395f51905f525afa9283156104f85760209382606a926133e394926133f5575b506040519586925f516020616d015f395f51905f52828501525f516020616ca15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283614163565b8310156115f75750908a93929161306f565b61340a9192503d8084833e61114c8183614163565b905f613384565b634e487b7160e01b8c52601160045260248cfd5b61342d614a46565b50613011565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b935061349460018060a01b03601f54165f8060405160208101906370a0823160e01b8252306024820152602481526108b3604482614163565b6370a0823163ffffffff19600f541617600f55600e5493600160401b8510156138555784600e555f94600e5f5260205f200130905560018060a01b0360115416600f5460e01b601054906134e661466e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f20604051602081019061352a8161098f888886614657565b5190205f5260205260ff600360405f2001541615613847575b6001600160a01b0384165f908152600d60205260409020905f5260205261098f61357c60405f2093604051928391602083019586614657565b5190205f5260205260405f2090815491600281015461359b81856145dd565b613759578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f516020616cc15f395f51905f525afa95861561371b575f96613726575b506001908201610100031b5f1901811b1985165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201525f81606481835f516020616cc15f395f51905f525af1801561371b57613704575b5090889161366f61482a565b90159081156136f8575b50610f16575050505061368a615310565b601f54601e5460405163095ea7b360e01b81526001600160a01b0360089290921c821660048201525f19602482015291602091839160449183918c91165af18015610e9d576136da575b506131cd565b6136f19060203d8111610f0f57610f008183614163565b505f6136d4565b5f19141590505f613679565b613712919299505f90614163565b5f97905f613663565b6040513d5f823e3d90fd5b9095506020813d8211613751575b8161374160209383614163565b81010312610ce4575194816135ec565b3d9150613734565b61376390846145dd565b6101000361010081116138335760ff106138335760405163348051d760e11b81525f60048201819052816024815f516020616cc15f395f51905f525afa90811561371b57611113606a611133936020935f91613819575b506040519384915f516020616d015f395f51905f52828401525f516020616ca15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101835282614163565b61382d91503d805f833e61114c8183614163565b856137ba565b634e487b7160e01b5f52601160045260245ffd5b61384f614a46565b50613543565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b86526021600452602486fd5b9350506020833d82116138aa575b8161389860209383614163565b81010312610ce457859251925f612eea565b3d915061388b565b9291612d60565b602091929394506040516138cc81614148565b87815287838201526040516138e08161412d565b88815288848201526040820152828287010152019084939291612d4e565b9091929394506138695780606402906064820481036138335768056bc75e2d63100000810291808304670de0b6b3a76400001490151715613833578591613945828661439e565b52019084939291612d30565b5034610111578060031936011261011157601d5461396e81614224565b61397b6040519182614163565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310613a7f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106139e75786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613a54575050505050602080600192970193019301909286959492936139da565b9091929394602080613a72600193605f198782030189528951613fdc565b9701950193929101613a30565b604051613a8b8161412d565b82546001600160a01b03168152600183018054613aa781614224565b91613ab56040519384614163565b8183528a526020808b20908b9084015b838210613aeb5750505050600192826020928360029501528152019201920191906139ab565b600160208192604051613b0281610395818a6142ec565b815201930191019091613ac5565b5034610111578060031936011261011157601e54601f5460405163549387df60e11b8152600481018490526001600160a01b0391821660248201525f516020616ce15f395f51905f5260448201529183918391606491839160081c165afa80156102dd5761022e918391613b86575b505161451f565b613b9a91503d8085833e6116a98183614163565b5f613b7f565b503461011157806003193601126101115760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110613bff5761017f8561017381870382614163565b82546001600160a01b0316845260209093019260019283019201613be8565b905034610ce4575f366003190112610ce45763975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020616cc15f395f51905f525afa90811561371b57613ca5916020915f91613f80575b50604051809381926371ee464d60e01b8352604060048401526044830190613fdc565b630120b92a602483015203815f5f516020616cc15f395f51905f525af1801561371b57613f51575b506040516116e0808201908282106001600160401b038311176138555760209183916155c1833972253582b2a3fe112feec532221d9708c64cefab81520301905ff0801561371b57601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179081905560405163ee565a6360e01b815260208160048172253582b2a3fe112feec532221d9708c64cefab5afa90811561371b575f91613f17575b5060018060a01b03166001600160601b0360a01b601f541617601f555f516020616cc15f395f51905f523b15610ce457604080516318caf8e360e31b815260089290921c6001600160a01b031660048301526024820152600c60448201526b20b733b632a0b230b83a32b960a11b60648201525f81608481835f516020616cc15f395f51905f525af1801561371b57613f04575b50601f5481906001600160a01b03165f516020616cc15f395f51905f523b1561045d57604051906318caf8e360e31b8252600482015260406024820152600560448201526430b3a2aaa960d91b60648201528181608481835f516020616cc15f395f51905f525af180156102dd57613eef575b50505f516020616cc15f395f51905f523b1561011157806040516318caf8e360e31b81525f516020616ce15f395f51905f5260048201526040602482015260046044820152634555524360e01b60648201528181608481835f516020616cc15f395f51905f525af180156102dd5761044c5750f35b81613ef991614163565b61011157805f613e7a565b613f1091505f90614163565b5f5f613e07565b90506020813d602011613f49575b81613f3260209383614163565b81010312610ce457613f4390614210565b5f613d73565b3d9150613f25565b6020813d602011613f78575b81613f6a60209383614163565b81010312610ce45751613ccd565b3d9150613f5d565b613f9491503d805f833e61114c8183614163565b5f613c82565b60206040818301928281528451809452019201905f5b818110613fbd5750505090565b82516001600160a01b0316845260209384019390920191600101613fb0565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040906003190112610ce457600435906024358015158103610ce45790565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061405157505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106140ab5750505060208060019297019301930191939290614042565b82516001600160e01b03191684526020938401939092019160019091019061408c565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061410057505050505090565b909192939460208061411e600193603f198682030187528951613fdc565b970193019301919392906140f1565b604081019081106001600160401b0382111761385557604052565b606081019081106001600160401b0382111761385557604052565b90601f801991011681019081106001600160401b0382111761385557604052565b6001600160401b03811161385557601f01601f191660200190565b602081830312610ce4578051906001600160401b038211610ce4570181601f82011215610ce4578051906141d282614184565b926141e06040519485614163565b82845260208383010111610ce457815f9260208093018386015e8301015290565b90816020910312610ce4575190565b51906001600160a01b0382168203610ce457565b6001600160401b0381116138555760051b60200190565b602081830312610ce4578051906001600160401b038211610ce457019080601f83011215610ce457815161426e81614224565b9261427c6040519485614163565b81845260208085019260051b820101928311610ce457602001905b8282106142a45750505090565b8151815260209182019101614297565b90600182811c921680156142e2575b60208310146142ce57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916142c3565b5f92918154916142fb836142b4565b8083529260018116908115614350575060011461431757505050565b5f9081526020812093945091925b838310614336575060209250010190565b600181602092949394548385870101520191019190614325565b915050602093945060ff929192191683830152151560051b010190565b80511561437a5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561437a5760400190565b805182101561437a5760209160051b010190565b90816020910312610ce457518015158103610ce45790565b8091039060808212610ce45760408051926143e484614148565b8251845260208301516020850152603f190112610ce45760606040519161440a8361412d565b6040810151835201516020820152604082015290565b5f81526001600160a01b0390911660208201525f516020616ce15f395f51905f52604082015260a081019392919060028210156144635760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b9190820391821161383357565b60085460ff1680156144935790565b50604051630667f9d760e41b81525f516020616cc15f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020616cc15f395f51905f525afa90811561371b575f916144ed575b50151590565b90506020813d602011614517575b8161450860209383614163565b81010312610ce457515f6144e7565b3d91506144fb565b5f516020616cc15f395f51905f523b15610ce4576040519063260a5b1560e21b82526004820152600260248201525f816044815f516020616cc15f395f51905f525afa801561371b5761456f5750565b5f61457991614163565b565b905f516020616cc15f395f51905f523b15610ce4576040519163260a5b1560e21b8352600483015260248201525f816044815f516020616cc15f395f51905f525afa801561371b5761456f5750565b8181029291811591840414171561383357565b9190820180921161383357565b61460a9060206145ff825182860151906145ca565b9351910151906145ca565b908082036146185750505f90565b111561462357600190565b5f1990565b3d15614652573d9061463982614184565b916146476040519384614163565b82523d5f602084013e565b606090565b60209291908391805192839101825e019081520190565b6146796014546142b4565b614736576040519081826020600e549283815201600e5f5260205f20925f5b81811061471d5750506146ad92500383614163565b81518060051b9080820460201490151715613833576146cb81614184565b906146d96040519283614163565b8082526146e8601f1991614184565b013660208301375f5b835181101561471857806147076001928661439e565b5160208260051b85010152016146f1565b509150565b8454835260019485019487945060209093019201614698565b604051614748816103958160146142ec565b90565b600781019061475a82546142b4565b61481657600191500190604051808360208295549384815201905f5260205f20925f5b8181106147fd57505061479292500383614163565b81518060051b9080820460201490151715613833576147b081614184565b906147be6040519283614163565b8082526147cd601f1991614184565b013660208301375f5b835181101561471857806147ec6001928661439e565b5160208260051b85010152016147d6565b845483526001948501948794506020909301920161477d565b5061474861039591604051928380926142ec565b5f806020600f5460e01b6148786024614843600d61474b565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283614163565b6011549151916001600160a01b03165afa90614892614628565b601054909290600581901b906001600160fb1b03811603613833575f938051602081115f1461491d57506020905b5f925b8284106148d257505050509190565b909192956148e087836145dd565b835181101561437a57830160200151600388901b91906001600160f81b031916881560088a8504141715613833576001921c1796019291906148c3565b906148c0565b905f806020600285015460e01b61493e60246148438861474b565b60048601549151916001600160a01b03165afa600361495b614628565b930154600581901b906001600160fb1b03811603613833575f938051602081115f146149e357506020905b5f925b82841061499857505050509190565b909192956149a687836145dd565b835181101561437a57830160200151600388901b91906001600160f81b031916881560088a8504141715613833576001921c179601929190614989565b90614986565b9080601f83011215610ce4578151614a0081614224565b92614a0e6040519485614163565b81845260208085019260051b820101928311610ce457602001905b828210614a365750505090565b8151815260209182019101614a29565b601154600f546010546001600160a01b03909216915f9160e01b614a6a600d61474b565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f206040516020810190614aa38161098f888886614657565b5190205f5260205260ff600360405f200154166152cf575f516020616cc15f395f51905f523b15610ce45760405163266cf10960e01b81525f81600481835f516020616cc15f395f51905f525af1801561371b576152ba575b50614b07600d614923565b90506040516365bc948160e01b81528660048201528581602481835f516020616cc15f395f51905f525af1908115610d2f578691615252575b508051614bb157608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b815181101561524a57816020614bcc83614bfd9561439e565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020616cc15f395f51905f525afa92831561523f57889361520c575b5082156151b4575b614c2f828261439e565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020616cc15f395f51905f525afa9081156151a9578b91615178575b50614c8a600d614923565b91909382155f14615171575f19905b5f516020616cc15f395f51905f523b15615158576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020616cc15f395f51905f525af180156150dd57908d9161515c575b5050614d0a600d614923565b601154909491506001600160a01b03165f516020616cc15f395f51905f523b15615158576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020616cc15f395f51905f525af1801561514d57908c91615134575b505082615129575b50501561511f578793889360ff60135416614fa4575b6001868601610100031b5f1901851b16841c8103614f96575090614e24917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8961098f614df98d604051928391602083019586614657565b519020614e06868661439e565b51906040519283528a602084015260408301526060820152a161439e565b51906040519060808201928284106001600160401b038511176138555760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190614e8d8161098f8d8d86614657565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614ee88161098f888886614657565b519020855260205260ff60036040862001541615614f39576040948452600d60205284842090845260205261098f614f2d858520938651928391602083019586614657565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01614bb3565b9450614fef9350614fb5838361439e565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020616cc15f395f51905f525afa948515611635578a956150ec575b5061501b86600d615424565b95909661502981600d6154fd565b60115490939192906001600160a01b03165f516020616cc15f395f51905f523b156150e8576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020616cc15f395f51905f525af180156150dd57908d916150c4575b5050876150bc575b509495614d9e575093509150600190614f9e565b96505f6150a8565b816150ce91614163565b6150d9578b5f6150a0565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211615117575b8161510760209383614163565b81010312610ce45751935f61500f565b3d91506150fa565b9150600190614f9e565b141590505f80614d88565b8161513e91614163565b615149578a5f614d80565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b8161516691614163565b6150d9578b5f614cfe565b8c90614c99565b90506020813d82116151a1575b8161519260209383614163565b81010312610ce457515f614c7f565b3d9150615185565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56152046151e2848461439e565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614c25565b9092506020813d8211615237575b8161522760209383614163565b81010312610ce45751915f614c1d565b3d915061521a565b6040513d8a823e3d90fd5b505050614ebb565b90503d8087833e6152638183614163565b81016040828203126132de5781516001600160401b0381116152b6578161528b9184016149e9565b916020810151906001600160401b0382116152b2576152ab9291016149e9565b505f614b40565b8880fd5b8780fd5b6152c79194505f90614163565b5f925f614afc565b91939092505f52600d60205260405f20905f5260205261098f61530160405f2093604051928391602083019586614657565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806153e2575b505f60105560ff19601354166013556153566014546142b4565b8061535e5750565b601f811160011461537057505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106153d757505060145f525f602081208160145555565b5f81556001016153be565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110615419575061533c565b5f815560010161540c565b91905f5b610100811061543b57505090505f905f90565b8060ff0360ff8111613833576004850154600190911b906001600160a01b03165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020616cc15f395f51905f525af1801561371b576154ed575b506154c784614923565b816154e3575b506154da57600101615428565b92505060019190565b905015155f6154cd565b5f6154f791614163565b5f6154bd565b91905f5b610100811061551457505090505f905f90565b60048401546001821b906001600160a01b03165f516020616cc15f395f51905f523b15610ce4576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020616cc15f395f51905f525af1801561371b576155b0575b5061559384614923565b816155a6575b506154da57600101615501565b905015155f615599565b5f6155ba91614163565b5f61558956fe60a03461008c57601f6116e038819003918201601f19168301916001600160401b038311848410176100905780849260209460405283398101031261008c57516001600160a01b038116810361008c5760805260405161163b90816100a58239608051818181607e015281816103ba01528181610afc01528181610c3a01528181610d0e0152610eb30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d0000000000000000000000001abaea1f7c830bd89acc67ec4af516284b1bc33c73746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220fe342330c9be0b50a54a73ef75c197af50af4868f95261de6c909f79571f3a4864736f6c634300081b0033","sourceMap":"324:6416:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;324:6416:66;;;;;;;2421:18:5;324:6416:66;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;324:6416:66;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;6284:37;837:28;324:6416;;;;6284:7;586:55;;;324:6416;;;;1590:14:0;;;;;;;;6284:37:66;;324:6416;;;6284:37;;1590:14:0;324:6416:66;;;;;;;;6284:37;;;;;;;;;;324:6416;6332:23;324:6416;;;6332:23;:::i;:::-;324:6416;;6284:37;;;;;;;;;;;:::i;:::-;;;324:6416;;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;6284:37;;;6332:23;6284:37;;;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6284:37;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;324:6416:66;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;2273:18:5;324:6416:66;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6441:7;586:55;324:6416;;-1:-1:-1;;;6441:29:66;;324:6416;6441:29;;1590:14:0;;;324:6416:66;;;;;;6441:29;;324:6416;;586:55;;-1:-1:-1;;;;;324:6416:66;6441:29;;;;;;;;;;324:6416;;;;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;324:6416:66;;1590:14:0;;;;15559:24:1;;324:6416:66;15559:24:1;;1590:14:0;6505:1:66;6441:29;324:6416;;1590:14:0;15559:24:1;;;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;;;;;324:6416:66;;15559:24:1;;;;;:::i;:::-;324:6416:66;;15559:24:1;324:6416:66;15559:24:1;324:6416:66;;6441:29;;;;;;;;;;;:::i;:::-;;;324:6416;;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;6441:29;;;;;;;324:6416;;586:55;;;;;:::i;:::-;324:6416;;;;;;;;6441:29;324:6416;;;1590:14:0;;;;;;;;324:6416:66;;;;;;;;;;;;;3190:18:5;324:6416:66;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;3190:18:5;324:6416:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1590:14:0;;;:::i;:::-;324:6416:66;;-1:-1:-1;;;;;324:6416:66;;;;;837:28;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;1590:14:0;324:6416:66;1590:14:0;324:6416:66;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;2941:38;;;3063:54;2949:13;2941:38;;837:28;324:6416;;;;3063:7;586:55;;;324:6416;;837:28;324:6416;;;;3095:5;586:55;324:6416;;;;1590:14:0;;;;;;;3063:54:66;;;324:6416;3063:54;;1590:14:0;324:6416:66;;;;;-1:-1:-1;;;;;;;;;;;324:6416:66;;;;3063:54;;;;;;;;;;;2941:38;324:6416;;;;;;;3132:21;3140:13;3132:21;;3128:467;;;3132:21;;;3197:9;;;;;:::i;:::-;324:6416;3179:27;;:50;;;3128:467;-1:-1:-1;;;;;;;;;;;3169:61:66;;;;324:6416;;-1:-1:-1;;;3169:61:66;;324:6416;;;;3169:61;;324:6416;3169:61;324:6416;;;-1:-1:-1;;;;;;;;;;;3169:61:66;;;;;;;;3128:467;324:6416;;6854:22:8;837:28:66;324:6416;;;;3095:5;586:55;324:6416;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;3274:4:66;324:6416;27501:38:3;;324:6416:66;;27501:38:3;;;324:6416:66;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;:::-;324:6416:66;;;;27568:30:3;;;;;;:::i;:::-;;837:28:66;324:6416;;;;;-1:-1:-1;;;;;586:55:66;;6854:12:8;586:55:66;;;6854:12:8;586:55:66;;6854:22:8;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;3140:13;324:6416;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;;;;;3274:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;683:3:66;;15735:37:8;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;;;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;3128:467:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;;;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;324:6416:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;;;;;;;15943:15:8;3140:13:66;15943:15:8;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;324:6416:66;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;3128:467:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;-1:-1:-1;;324:6416:66;;;12656:92:8;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;3128:467:66;16678:31:8;;;;:::i;:::-;16724:8;;324:6416:66;;;16724:29:8;;3128:467:66;16720:176:8;;;14785:4;;;;;;:::i;:::-;3095:5:66;586:55;3063:7;586:55;324:6416;;-1:-1:-1;;;3313:50:66;;-1:-1:-1;;;;;586:55:66;;;;;324:6416;;;3313:50;;324:6416;-1:-1:-1;;324:6416:66;;;1590:14:0;324:6416:66;;;;;;;;;;;;3313:50;;;;;;;;3128:467;;;324:6416;;-1:-1:-1;;;3628:29:66;;3651:4;324:6416;3628:29;;324:6416;;;;;;-1:-1:-1;;;;;;;;;;;3628:29:66;;;;;;;;;;;3128:467;-1:-1:-1;3095:5:66;586:55;324:6416;;-1:-1:-1;;;3691:30:66;;3651:4;324:6416;3691:30;;324:6416;;;-1:-1:-1;;;;;324:6416:66;;;;;;3691:30;;;;;;;;;;;3128:467;-1:-1:-1;3063:7:66;586:55;324:6416;;-1:-1:-1;;;3753:94:66;;324:6416;;3753:94;;324:6416;;586:55;;-1:-1:-1;;;;;324:6416:66;;;;;;;;3753:94;;324:6416;;;3753:94;;;:::i;:::-;;;;;;;;;;;;;;3128:467;324:6416;;;3858:725;;324:6416;;;3858:725;3908:21;;;324:6416;;-1:-1:-1;;;4016:29:66;;3651:4;324:6416;4016:29;;324:6416;;;;;-1:-1:-1;;;;;;;;;;;4016:29:66;;;;;;;;;;;3904:669;4016:44;;;;;;:::i;:::-;;;:::i;:::-;324:6416;3095:5;586:55;324:6416;;-1:-1:-1;;;4186:30:66;;3651:4;324:6416;4186:30;;324:6416;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;4186:30;;;;;;;;;;;3904:669;4170:46;;;;;;:::i;:::-;3858:725;;;;;324:6416;;;4186:30;;;324:6416;4186:30;;324:6416;4186:30;;;;;;1590:14:0;4186:30:66;;;:::i;:::-;;;1590:14:0;;;;;4170:46:66;4186:30;;1590:14:0;-1:-1:-1;324:6416:66;;4186:30;;;-1:-1:-1;4186:30:66;;;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;;4016:29:66;;;324:6416;4016:29;;324:6416;4016:29;;;;;;1590:14:0;4016:29:66;;;:::i;:::-;;;1590:14:0;;;;;4016:44:66;:29;;;;;-1:-1:-1;4016:29:66;;;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;;3904:669:66;3095:5;586:55;324:6416;;-1:-1:-1;;;4356:30:66;;3651:4;324:6416;4356:30;;324:6416;;;;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;4356:30;;;;;;;;;;;3904:669;4340:46;;;;;;:::i;:::-;324:6416;;;-1:-1:-1;;;4496:29:66;;3651:4;324:6416;4496:29;;324:6416;;;;;-1:-1:-1;;;;;;;;;;;4496:29:66;;;;;;;;;;;3904:669;4496:44;;;;;;:::i;:::-;3904:669;;4496:29;;;324:6416;4496:29;;324:6416;4496:29;;;;;;1590:14:0;4496:29:66;;;:::i;:::-;;;1590:14:0;;;;;4496:44:66;:29;;;;;-1:-1:-1;4496:29:66;;4356:30;;;324:6416;4356:30;;324:6416;4356:30;;;;;;1590:14:0;4356:30:66;;;:::i;:::-;;;1590:14:0;;;;;4340:46:66;4356:30;;;;;-1:-1:-1;4356:30:66;;3753:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3691:30;;;324:6416;3691:30;;324:6416;3691:30;;;;;;1590:14:0;3691:30:66;;;:::i;:::-;;;1590:14:0;;;;;;;;3691:30:66;;;;;-1:-1:-1;3691:30:66;;;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;;3628:29:66;;;;324:6416;3628:29;;324:6416;3628:29;;;;;;1590:14:0;3628:29:66;;;:::i;:::-;;;1590:14:0;;;;;3628:29:66;;;;;;;-1:-1:-1;3628:29:66;;;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;;3313:50:66;;;324:6416;3313:50;324:6416;3313:50;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;16720:176:8;324:6416:66;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;324:6416:66;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;324:6416:66;;;;;16769:41:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;324:6416:66;12810:59:8;324:6416:66;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;324:6416:66;;-1:-1:-1;;;16824:61:8;;324:6416:66;;16824:61:8;;12810:59;;324:6416:66;12810:59:8;;324:6416:66;12810:59:8;324:6416:66;;;12810:59:8;-1:-1:-1;;;3063:54:66;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;324:6416:66;;16769:41:8;;;16724:29;-1:-1:-1;;16736:17:8;;;-1:-1:-1;5495:17:66;16724:29:8;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;16424:32;;;;;324:6416:66;16424:32:8;;324:6416:66;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;324:6416:66;16021:3:8;324:6416:66;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;3140:13:66;324:6416;;;;16314:19:8;;1590:14:0;16314:19:8;324:6416:66;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;324:6416:66;16314:19:8;;16170:185;16314:19;12810:59;16314:19;;;;15938:460;324:6416:66;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;324:6416:66;12810:59:8;;;-1:-1:-1;;;324:6416:66;12810:59:8;;;324:6416:66;;;;;;12810:59:8;;;324:6416:66;;;;;;;;16170:185:8;;683:3:66;;16170:185:8;;;;;;:::i;:::-;324:6416:66;;-1:-1:-1;;;12810:59:8;;324:6416:66;;12810:59:8;;;324:6416:66;;;;12810:59:8;;;;:::i;:::-;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;324:6416:66;-1:-1:-1;;;324:6416:66;;6854:12:8;324:6416:66;;;1590:14:0;324:6416:66;15698:126:8;13208:33;;:::i;:::-;;15698:126;;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;;1590:14:0;324:6416:66;;-1:-1:-1;;;1590:14:0;;;324:6416:66;1590:14:0;324:6416:66;1590:14:0;;3169:61:66;;;;;:::i;:::-;324:6416;;3169:61;;;;3179:50;3210:19;;;;3179:50;;3128:467;3422:9;;;:::i;:::-;324:6416;3404:27;;:50;;;3128:467;-1:-1:-1;;;;;;;;;;;3394:61:66;;;;324:6416;;-1:-1:-1;;;3394:61:66;;324:6416;;;;3394:61;;324:6416;3394:61;324:6416;;;-1:-1:-1;;;;;;;;;;;3394:61:66;;;;;;;;3128:467;324:6416;;;6854:22:8;324:6416:66;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;3499:4:66;324:6416;27501:38:3;;324:6416:66;;27501:38:3;;;324:6416:66;27501:38:3;;:::i;6854:22:8:-;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;3140:13;324:6416;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;;;;;3499:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;;;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;3128:467:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;;;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;324:6416:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;;;;;;;15943:15:8;3140:13:66;15943:15:8;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;3128:467:66;324:6416;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;3128:467:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;324:6416:66;;;;12656:92:8;;;;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;3128:467:66;16678:31:8;;;;;:::i;:::-;16724:8;;;324:6416:66;;;16724:29:8;;3128:467:66;16720:176:8;;;;14785:4;;;;;;:::i;:::-;3095:5:66;586:55;3063:7;586:55;324:6416;;-1:-1:-1;;;3536:48:66;;-1:-1:-1;;;;;586:55:66;;;;;324:6416;;;3536:48;;324:6416;;;;1590:14:0;;;324:6416:66;;;;;;;;;;;;3536:48;;;;;;;;;;3128:467;;;;3536:48;;;324:6416;3536:48;324:6416;3536:48;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;16424:32;;;;;324:6416:66;16424:32:8;;324:6416:66;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;324:6416:66;16021:3:8;324:6416:66;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;3140:13:66;324:6416;;;;16314:19:8;;1590:14:0;;;16314:19:8;324:6416:66;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;324:6416:66;16314:19:8;;;;;15938:460;324:6416:66;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;324:6416:66;12810:59:8;;;-1:-1:-1;;;324:6416:66;12810:59:8;;;324:6416:66;;;;;;12810:59:8;;;324:6416:66;;;;;;;;16170:185:8;;683:3:66;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;324:6416:66;;-1:-1:-1;;;12810:59:8;;324:6416:66;;12810:59:8;;;324:6416:66;;;12810:59:8;;324:6416:66;12810:59:8;;;;:::i;16314:19::-;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;324:6416:66;-1:-1:-1;;;324:6416:66;;6854:12:8;324:6416:66;;;1590:14:0;324:6416:66;15698:126:8;13208:33;;:::i;:::-;;15698:126;;3394:61:66;;;;;:::i;:::-;324:6416;;3394:61;;;;3404:50;3435:19;;;;3404:50;;324:6416;-1:-1:-1;;;324:6416:66;;;;;;1590:14:0;324:6416:66;3063:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2941:38;3063:54;2941:38;;;;324:6416;;;;;;;;;;;;;2707:18:5;324:6416:66;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;2707:18:5;324:6416:66;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2883:26:5;324:6416:66;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;2883:26:5;324:6416:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1590:14:0;;;:::i;:::-;324:6416:66;;-1:-1:-1;;;;;324:6416:66;;;;;837:28;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;324:6416:66;1590:14:0;324:6416:66;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;1590:14:0;;324:6416:66;;;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;4794:10;324:6416;;;;1590:14:0;;;;:::i;:::-;683:3:66;324:6416;;-1:-1:-1;;683:3:66;;;324:6416;683:3;;;;4887:13;4902:19;683:3;4902:19;;;;324:6416;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;683:3:66;324:6416;;683:3;;;;;;;5170:13;;6130;5165:601;5185:19;683:3;5185:19;;;;5781:13;;6130;5796:23;324:6416;5796:23;;;;324:6416;;;5821:3;5849:9;;;;:::i;:::-;;324:6416;6130:13;683:3;;;;;;;;5877:13;;;;:::i;:::-;;324:6416;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;324:6416:66;;1590:14:0;;;;14375:24:1;;324:6416:66;14375:24:1;;1590:14:0;27501:38:3;324:6416:66;;1590:14:0;14375:24:1;;27501:38:3;14375:24:1;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;;;5821:3:66;5951:9;;:53;324:6416;5951:9;;;;:::i;:::-;;:15;;324:6416;5984:13;5495:17;;5984:13;;;:::i;:::-;;:19;;5951:53;;:::i;:::-;683:3;;5951:59;-1:-1:-1;;;;;;;;;;;1872:20:1;;;;324:6416:66;;1590:14:0;;;;1872:20:1;;324:6416:66;1872:20:1;;324:6416:66;1872:20:1;;27501:38:3;1872:20:1;-1:-1:-1;;;;;;;;;;;1872:20:1;;;;;;;;;;;5821:3:66;;;6130:13;683:3;5781:13;;1872:20:1;;;;;:::i;:::-;324:6416:66;;;;;1872:20:1;;;;;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;14375:24:1;;;;:::i;:::-;324:6416:66;;;;;14375:24:1;;;;683:3:66;-1:-1:-1;;;324:6416:66;;6854:12:8;324:6416:66;;27501:38:3;1590:14:0;324:6416:66;5206:3;324:6416;;;;1590:14:0;;;;5238:13:66;;683:3;5238:13;324:6416;5238:13;;-1:-1:-1;;;;;;;;;;;5238:13:66;;;;;;;;;;;5206:3;324:6416;;;;5266:330;;324:6416;6854:22:8;837:28:66;324:6416;;;;5665:5;586:55;324:6416;;;;;683:3;27501:38:3;;1590:14:0;;;;27501:38:3;;5488:4:66;27501:38:3;;;324:6416:66;27501:38:3;;;;;;;:::i;6854:22:8:-;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;6130:13;324:6416;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;683:3;324:6416;;;5488:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;683:3;324:6416;;;;;;683:3;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;683:3;324:6416;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;5206:3:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;683:3;324:6416;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;683:3:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;683:3;324:6416;;;;;15943:15:8;6130:13:66;15943:15:8;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;324:6416:66;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;683:3;324:6416;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5206:3:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;-1:-1:-1;;324:6416:66;;;12656:92:8;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5206:3:66;16678:31:8;;;;:::i;:::-;16724:8;;324:6416:66;;;16724:29:8;;5206:3:66;16720:176:8;;;14785:4;;;;;;:::i;:::-;5665:5:66;586:55;5621:7;586:55;324:6416;;-1:-1:-1;;;5531:50:66;;-1:-1:-1;;;;;586:55:66;;;;;324:6416;;;5531:50;;324:6416;-1:-1:-1;;27501:38:3;324:6416:66;;1590:14:0;324:6416:66;683:3;;324:6416;;27501:38:3;;324:6416:66;;;;;5531:50;;;;;;;;5206:3;-1:-1:-1;5621:7:66;586:55;5665:5;586:55;5621:97;;;;-1:-1:-1;;;;;324:6416:66;;;;586:55;;324:6416;837:28;5694:10;;;;;:::i;:::-;324:6416;;;-1:-1:-1;;;5621:97:66;;324:6416;;;;;;;;;5621:97;;;:::i;:::-;;;;;;;;;;;;;;5206:3;5609:109;;;;;:::i;:::-;;;;;;:::i;:::-;;324:6416;;1590:14:0;;;;5732:23:66;;324:6416;5732:23;;1590:14:0;683:3:66;5732:23;27501:38:3;5732:23:66;;-1:-1:-1;;;;;;;;;;;5732:23:66;;;;;;;6130:13;5732:23;;;5206:3;;683;5170:13;;;5732:23;;;683:3;5732:23;;;;;;;;;:::i;:::-;;;;;5621:97;;;;;;;;;;;;;;:::i;:::-;;;;5531:50;;;683:3;5531:50;;;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;5495:17:66;16724:29:8;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;16424:32;;;;;683:3:66;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;27501:38:3;1590:14:0;324:6416:66;;-1:-1:-1;;;1590:14:0;;;324:6416:66;1590:14:0;27501:38:3;1590:14:0;;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;27501:38:3;;324:6416:66;5238:13;;;;683:3;5238:13;;;;;;;;;1590:14:0;5238:13:66;;;:::i;:::-;;;1590:14:0;;;;;;;5238:13:66;;;;;-1:-1:-1;5238:13:66;;683:3;;324:6416;;;1590:14:0;;;:::i;:::-;683:3:66;;;;;;;;324:6416;;1590:14:0;;;:::i;:::-;683:3:66;;;;;;;;324:6416;683:3;;;;;;;;;;;;4923;324:6416;;;;4955:99;;683:3;;;;;;;;;;;;;;;;;;5046:7;683:3;;;;;;;6130:13;;4955:99;4942:112;4955:99;4942:112;;:::i;:::-;324:6416;683:3;4887:13;;683:3;-1:-1:-1;;;324:6416:66;;;;;;1590:14:0;324:6416:66;;;;;;;;;:::i;:::-;1175:38;;;1183:13;1175:38;1297:7;586:55;1344:5;586:55;324:6416;;-1:-1:-1;;;1297:54:66;;324:6416;1297:54;;1590:14:0;;;-1:-1:-1;;;;;;;;;;;324:6416:66;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;1297:54;;324:6416;;586:55;;324:6416;1297:54;;;;;;;;;;;1175:38;324:6416;;;;;;;1366:21;1374:13;1366:21;;1362:463;;;1366:21;;;1431:9;;;:::i;:::-;324:6416;1413:27;;:50;;;1362:463;-1:-1:-1;;;;;;;;;;;1403:61:66;;;;324:6416;;-1:-1:-1;;;1403:61:66;;324:6416;;;;1403:61;;324:6416;1403:61;324:6416;;;-1:-1:-1;;;;;;;;;;;1403:61:66;;;;;;;;1362:463;324:6416;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;1507:4:66;324:6416;27501:38:3;;324:6416:66;;27501:38:3;;;324:6416:66;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;586:55:66;;-1:-1:-1;;;;;;586:55:66;-1:-1:-1;;;;;;;;;;;586:55:66;;;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;1374:13;324:6416;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;;;;;1507:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;;;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;1362:463:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;;;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;324:6416:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;;;;;;;15943:15:8;1374:13:66;15943:15:8;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;324:6416:66;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;1362:463:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;-1:-1:-1;;324:6416:66;;;12656:92:8;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;1362:463:66;16678:31:8;;;;:::i;:::-;16724:8;;324:6416:66;;;16724:29:8;;1362:463:66;16720:176:8;;;14785:4;;;;;;:::i;:::-;1297:7:66;586:55;324:6416;;-1:-1:-1;;;1546:49:66;;586:55;;;;;-1:-1:-1;;;;;324:6416:66;;1546:49;;324:6416;-1:-1:-1;;324:6416:66;;;1590:14:0;324:6416:66;;;;1546:49;-1:-1:-1;;;;;;;;;;;1546:49:66;;;;;;;;1362:463;;;324:6416;;-1:-1:-1;;;1858:29:66;;1881:4;324:6416;1858:29;;324:6416;;;;;;-1:-1:-1;;;;;;;;;;;1858:29:66;;;;;;;;;;;1362:463;-1:-1:-1;1344:5:66;586:55;324:6416;;-1:-1:-1;;;1921:30:66;;1881:4;324:6416;1921:30;;324:6416;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;1921:30;;;;;;;;;;;1362:463;324:6416;;;1983:94;837:28;324:6416;;;;1297:7;586:55;;;324:6416;;;;;1590:14:0;;;;;;;;1983:94:66;;;324:6416;1983:94;;1590:14:0;-1:-1:-1;;;;;;;;;;;324:6416:66;;;;;;;;1297:54;324:6416;;;;;;;1590:14:0;1983:94:66;;;;;;;;;;;1362:463;324:6416;;;2088:725;;324:6416;;;2088:725;2138:21;;;1344:5;586:55;324:6416;;-1:-1:-1;;;2246:30:66;;1881:4;324:6416;2246:30;;324:6416;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;2246:30;;;;;;;;;;;2134:669;2246:46;;;;;;:::i;:::-;324:6416;;;-1:-1:-1;;;2417:29:66;;1881:4;324:6416;2417:29;;324:6416;;;;;-1:-1:-1;;;;;;;;;;;2417:29:66;;;;;;;;;;;2402:44;;;;;;:::i;2246:30::-;;;324:6416;2246:30;;324:6416;2246:30;;;;;;1590:14:0;2246:30:66;;;:::i;:::-;;;1590:14:0;;;;;2246:46:66;:30;;;;;-1:-1:-1;2246:30:66;;2134:669;324:6416;;-1:-1:-1;;;2585:29:66;;1881:4;324:6416;2585:29;;324:6416;;;;;;;;-1:-1:-1;;;;;;;;;;;2585:29:66;;;;;;;;;;;2134:669;2570:44;;;;;;:::i;:::-;324:6416;1344:5;586:55;324:6416;;-1:-1:-1;;;2724:30:66;;1881:4;324:6416;2724:30;;324:6416;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;2724:30;;;;;;;;;;;:46;;;;;;:::i;2585:29::-;;;324:6416;2585:29;;324:6416;2585:29;;;;;;1590:14:0;2585:29:66;;;:::i;:::-;;;1590:14:0;;;;;2570:44:66;2585:29;;;;;-1:-1:-1;2585:29:66;;1983:94;;;;;324:6416;1983:94;324:6416;1983:94;;;;;;;:::i;:::-;;;;;1921:30;;;;324:6416;1921:30;;324:6416;1921:30;;;;;;1590:14:0;1921:30:66;;;:::i;:::-;;;1590:14:0;;;;;;324:6416:66;1921:30;;;;;-1:-1:-1;1921:30:66;;1858:29;;;;324:6416;1858:29;;324:6416;1858:29;;;;;;1590:14:0;1858:29:66;;;:::i;:::-;;;1590:14:0;;;;;1858:29:66;;;;;;;-1:-1:-1;1858:29:66;;1546:49;;;324:6416;1546:49;324:6416;1546:49;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;5495:17:66;16724:29:8;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;16424:32;;;;;324:6416:66;16424:32:8;;324:6416:66;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;1403:61:66;;;;;:::i;:::-;324:6416;;1403:61;;;;1413:50;1444:19;;;;1413:50;;1362:463;1654:9;;;:::i;:::-;324:6416;1636:27;;:50;;;1362:463;-1:-1:-1;;;;;;;;;;;1626:61:66;;;;324:6416;;-1:-1:-1;;;1626:61:66;;324:6416;;;;1626:61;;324:6416;1626:61;324:6416;;;-1:-1:-1;;;;;;;;;;;1626:61:66;;;;;;;;1362:463;324:6416;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;1730:4:66;324:6416;27501:38:3;;324:6416:66;;27501:38:3;;;324:6416:66;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;586:55:66;;-1:-1:-1;;;;;;586:55:66;-1:-1:-1;;;;;;;;;;;586:55:66;;;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;1374:13;324:6416;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;;;;;1730:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;;;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;1362:463:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;;;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;324:6416:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;;;;;;;15943:15:8;1374:13:66;15943:15:8;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;1362:463:66;324:6416;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;1362:463:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;324:6416:66;;;;12656:92:8;;;;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;1362:463:66;16678:31:8;;;;;:::i;:::-;16724:8;;;324:6416:66;;;16724:29:8;;1362:463:66;16720:176:8;;;;14785:4;;;;;;:::i;:::-;1297:7:66;586:55;324:6416;;-1:-1:-1;;;1767:47:66;;586:55;;;;;-1:-1:-1;;;;;324:6416:66;;1767:47;;324:6416;;;;1590:14:0;;;324:6416:66;;;;1767:47;-1:-1:-1;;;;;;;;;;;1767:47:66;;;;;;;;1362:463;;;;1767:47;;;324:6416;1767:47;324:6416;1767:47;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;16424:32;;;;;324:6416:66;16424:32:8;;324:6416:66;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;324:6416:66;16021:3:8;324:6416:66;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;1374:13:66;324:6416;;;;16314:19:8;;1590:14:0;;;16314:19:8;324:6416:66;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;324:6416:66;16314:19:8;;;;;324:6416:66;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;324:6416:66;12810:59:8;;;-1:-1:-1;;;324:6416:66;12810:59:8;;;324:6416:66;;;;;;12810:59:8;;;324:6416:66;;;;;;;;16170:185:8;;683:3:66;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;1626:61:66;;;;;:::i;:::-;324:6416;;1626:61;;;;1636:50;1667:19;;;;1636:50;;324:6416;-1:-1:-1;;;324:6416:66;;;;;;1590:14:0;324:6416:66;1297:54;;;;;;;;;;;;;;:::i;:::-;;;;;1175:38;;;;324:6416;;;;;;;;;;;;;;;;;;3038:18:5;324:6416:66;;;;;;;3038:18:5;324:6416:66;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;324:6416:66;;;;;;;3331:16:5;324:6416:66;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;683:3:66;324:6416;;-1:-1:-1;;683:3:66;;;;324:6416;683:3;;;;4887:13;683:3;;4882:183;;;4902:19;;683:3;4902:19;;;;324:6416;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;683:3:66;324:6416;;683:3;;;;;;;5170:13;;;;;683:3;;;5165:601;5781:13;;;683:3;;;324:6416;;;5821:3;324:6416;5796:23;;;;;5849:9;;;;:::i;:::-;;324:6416;683:3;;;;;;;;;5877:13;;;;;;:::i;:::-;;324:6416;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;324:6416:66;;1590:14:0;;;;14375:24:1;;324:6416:66;14375:24:1;;1590:14:0;5732:23:66;324:6416;;1590:14:0;14375:24:1;;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;5821:3:66;5951:9;;:53;324:6416;5951:9;;;;:::i;:::-;;:15;;324:6416;5984:13;5495:17;;5984:13;;;:::i;5951:53::-;683:3;;5951:59;1872:20:1;-1:-1:-1;;;;;;;;;;;1872:20:1;;;;324:6416:66;;1590:14:0;;;;1872:20:1;;324:6416:66;1872:20:1;;324:6416:66;1872:20:1;;;5732:23:66;1872:20:1;-1:-1:-1;;;;;;;;;;;1872:20:1;;;;;;;;;;;5821:3:66;;;;683;5781:13;;;1872:20:1;;;;;;;;;:::i;:::-;324:6416:66;;1872:20:1;;;;;;14375:24;;;;;:::i;:::-;324:6416:66;;14375:24:1;;;;683:3:66;-1:-1:-1;;;324:6416:66;;;;;5732:23;1590:14:0;324:6416:66;5796:23;324:6416;;;5206:3;5185:19;;;683:3;5185:19;;;;;-1:-1:-1;324:6416:66;;-1:-1:-1;;;5238:13:66;;324:6416;5238:13;683:3;324:6416;;;5238:13;-1:-1:-1;;;;;;;;;;;5238:13:66;;;;;;;;;;;5206:3;324:6416;;;5270:22;;;;5665:5;586:55;-1:-1:-1;;;;;324:6416:66;6854:22:8;5348:10:66;;;;:::i;:::-;324:6416;;;;;;683:3;27501:38:3;;1590:14:0;;;;27501:38:3;;5341:4:66;5732:23;27501:38:3;;324:6416:66;5732:23;27501:38:3;;;;;;:::i;6854:22:8:-;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;;;;;7505:10:8;324:6416:66;;;;;;7505:10:8;324:6416:66;;5341:4;324:6416;;;;;;6854:12:8;324:6416:66;7009:9:8;324:6416:66;15610:11:8;324:6416:66;;;-1:-1:-1;;;;;324:6416:66;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;;;683:3;324:6416;;;;;;683:3;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;324:6416:66;;683:3;324:6416;;;;;;15703:77:8;324:6416:66;;15702:78:8;15698:126;;5266:330:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;;;683:3;324:6416;15889:37:8;;324:6416:66;;;;;;15889:37:8;;;683:3:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;324:6416:66;;683:3;324:6416;;;;15943:15:8;;;324:6416:66;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;5266:330:66;324:6416;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;683:3;324:6416;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5266:330:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;324:6416:66;;;;12656:92:8;;;;12810:59;;;1590:14:0;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5266:330:66;16678:31:8;;;;:::i;:::-;16724:8;;;324:6416:66;;;16724:29:8;;5266:330:66;16720:176:8;;;;14785:4;;;;;;:::i;:::-;5665:5:66;586:55;5621:7;586:55;5377:43;;683:3;;586:55;;-1:-1:-1;;;;;324:6416:66;;;;;5409:10;;;;:::i;:::-;324:6416;;;-1:-1:-1;;;5377:43:66;;-1:-1:-1;;;;;324:6416:66;;;;5377:43;;324:6416;;;;1590:14:0;324:6416:66;;;;-1:-1:-1;324:6416:66;;;;;;;;;;;5377:43;;;;;;;;;;;5266:330;;;5621:7;586:55;5665:5;586:55;5621:97;;;;-1:-1:-1;;;;;324:6416:66;;;;586:55;;324:6416;5694:10;;;;;;:::i;5621:97::-;;;;;;;;;;;;;;5266:330;5609:109;;;;;:::i;:::-;;;;;;:::i;:::-;;324:6416;;1590:14:0;;;;5732:23:66;;324:6416;5732:23;;1590:14:0;683:3:66;5732:23;;;;-1:-1:-1;;;;;;;;;;;5732:23:66;;;;;;;;;;;;;5266:330;5206:3;683;5170:13;;;;;;5732:23;;;683:3;5732:23;;;;;;;;;:::i;:::-;;;;;5621:97;;;;;;;;;;;;;;:::i;:::-;;;;5377:43;;;683:3;5377:43;;;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;324:6416:66;;16587:43:8;;;;;324:6416:66;;;16424:32:8;;;;;683:3:66;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;324:6416:66;16021:3:8;324:6416:66;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;324:6416:66;;;;;16314:19:8;;1590:14:0;;;16314:19:8;;324:6416:66;5732:23;324:6416;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;683:3:66;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;324:6416:66;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;324:6416:66;12810:59:8;;;-1:-1:-1;;;683:3:66;12810:59:8;;;324:6416:66;;;;;;12810:59:8;;;324:6416:66;;;;;;;;16170:185:8;;683:3:66;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;324:6416:66;-1:-1:-1;;;324:6416:66;;6854:12:8;324:6416:66;;5732:23;1590:14:0;324:6416:66;15698:126:8;13208:33;;:::i;:::-;;15698:126;;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;5732:23;1590:14:0;324:6416:66;;-1:-1:-1;;;1590:14:0;;;324:6416:66;1590:14:0;5732:23:66;1590:14:0;;5266:330:66;324:6416;;6854:22:8;837:28:66;324:6416;;;;5665:5;586:55;324:6416;-1:-1:-1;324:6416:66;;;683:3;27501:38:3;;1590:14:0;;;;27501:38:3;;5488:4:66;5732:23;27501:38:3;;324:6416:66;5732:23;27501:38:3;;;;;;:::i;6854:22:8:-;27524:10:3;324:6416:66;;7009:9:8;324:6416:66;;;7009:9:8;324:6416:66;7505:10:8;324:6416:66;;-1:-1:-1;;;324:6416:66;;;;;;7505:10:8;324:6416:66;-1:-1:-1;324:6416:66;7505:10:8;-1:-1:-1;324:6416:66;683:3;-1:-1:-1;324:6416:66;;5488:4;324:6416;;837:28;324:6416;;;;6854:12:8;324:6416:66;;7009:9:8;324:6416:66;;1590:14:0;15610:11:8;324:6416:66;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;15703:15:8;;324:6416:66;;;;;;-1:-1:-1;324:6416:66;683:3;324:6416;;-1:-1:-1;324:6416:66;;;683:3;15735:37:8;;;;;;;;;;:::i;:::-;324:6416:66;15725:48:8;;-1:-1:-1;324:6416:66;683:3;324:6416;;;;-1:-1:-1;324:6416:66;15703:77:8;324:6416:66;;15702:78:8;15698:126;;5266:330:66;-1:-1:-1;;;;;324:6416:66;;;;;;27635:8:3;324:6416:66;;;;;;-1:-1:-1;324:6416:66;683:3;324:6416;15889:37:8;;324:6416:66;-1:-1:-1;324:6416:66;;;;15889:37:8;;;683:3:66;15889:37:8;;;;;:::i;:::-;324:6416:66;15879:48:8;;-1:-1:-1;324:6416:66;683:3;324:6416;;-1:-1:-1;324:6416:66;;;;15961:16:8;324:6416:66;15961:16:8;;324:6416:66;15943:34:8;;;;:::i;:::-;15938:460;;324:6416:66;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;324:6416:66;;;16424:32:8;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;683:3;324:6416;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;-1:-1:-1;16424:32:8;;;5266:330:66;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;324:6416:66;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;324:6416:66;;;16587:43:8;;324:6416:66;12810:59:8;;;1590:14:0;;;;-1:-1:-1;;324:6416:66;;;12656:92:8;12810:59;;;1590:14:0;-1:-1:-1;324:6416:66;12810:59:8;324:6416:66;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;5266:330:66;16678:31:8;;;;;;:::i;:::-;16724:8;;324:6416:66;;;16724:29:8;;5266:330:66;16720:176:8;;;14785:4;;;;;;:::i;:::-;5665:5:66;586:55;5621:7;586:55;324:6416;;-1:-1:-1;;;5531:50:66;;-1:-1:-1;;;;;586:55:66;;;;;324:6416;;;5531:50;;324:6416;-1:-1:-1;;5732:23:66;324:6416;;1590:14:0;324:6416:66;683:3;;324:6416;;27501:38:3;;324:6416:66;;;;;5531:50;;;;;;;;5266:330;;;;5531:50;;;683:3;5531:50;;;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;5495:17:66;16724:29:8;;16587:43;;;;;;-1:-1:-1;16587:43:8;;:::i;:::-;-1:-1:-1;16587:43:8;;;;;;324:6416:66;;1590:14:0;-1:-1:-1;1590:14:0;;;;;16424:32:8;;;;683:3:66;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;324:6416:66;16021:3:8;324:6416:66;;;;;-1:-1:-1;324:6416:66;;;;-1:-1:-1;;;16314:19:8;;-1:-1:-1;324:6416:66;16314:19:8;;1590:14:0;;;324:6416:66;5732:23;324:6416;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;;16314:19;683:3:66;16314:19:8;-1:-1:-1;16314:19:8;;;15938:460;324:6416:66;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;324:6416:66;12810:59:8;;;-1:-1:-1;;;683:3:66;12810:59:8;;;324:6416:66;;;;;;12810:59:8;;;324:6416:66;;;-1:-1:-1;324:6416:66;;;;16170:185:8;;683:3:66;;16170:185:8;;;;;;:::i;16314:19::-;;;;;;-1:-1:-1;16314:19:8;;;;;;:::i;:::-;;;;324:6416:66;1590:14:0;;;-1:-1:-1;324:6416:66;6854:12:8;324:6416:66;;5732:23;-1:-1:-1;324:6416:66;15698:126:8;13208:33;;:::i;:::-;;15698:126;;324:6416:66;1590:14:0;;;-1:-1:-1;1590:14:0;;324:6416:66;1590:14:0;5732:23:66;-1:-1:-1;1590:14:0;324:6416:66;-1:-1:-1;;;324:6416:66;;;;;5732:23;1590:14:0;324:6416:66;5238:13;;;;683:3;5238:13;;;;;;;;;1590:14:0;5238:13:66;;;:::i;:::-;;;1590:14:0;;;;;;;5238:13:66;;;;;;;-1:-1:-1;5238:13:66;;5185:19;;;;;683:3;;324:6416;;;;;;;1590:14:0;;;:::i;:::-;683:3:66;;;;;;;;324:6416;;1590:14:0;;;:::i;:::-;683:3:66;;;;;;;;324:6416;683:3;;;;;;;;;;;;;;;;;4923;324:6416;;;;;;;;683:3;;;;;;;;;;;;;;;;;;5007:8;683:3;;;;;;;4955:99;;4942:112;;;;:::i;:::-;324:6416;683:3;4887:13;;;;;;;324:6416;;;;;;;;;;;;;3485:19:5;324:6416:66;;;;:::i;:::-;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;3485:19:5;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:28;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1590:14:0;;;:::i;:::-;324:6416:66;;-1:-1:-1;;;;;324:6416:66;;;837:28;324:6416;;;;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6640:7;586:55;6672:5;586:55;324:6416;;-1:-1:-1;;;6640:54:66;;324:6416;6640:54;;1590:14:0;;;-1:-1:-1;;;;;324:6416:66;;;;;;;-1:-1:-1;;;;;;;;;;;324:6416:66;;;;;;;;;6640:54;;324:6416;;586:55;;324:6416;6640:54;;;;;;6705:26;6640:54;;;;;324:6416;;;6705:26;:::i;6640:54::-;;;;;;;;;;;;;:::i;:::-;;;;324:6416;;;;;;;;;;;;;;;;;;2563:16:5;324:6416:66;;;;;;;2563:16:5;324:6416:66;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;324:6416:66;;;;-1:-1:-1;;;785:20:66;;1590:14:0;324:6416:66;785:20;;1590:14:0;;;;;324:6416:66;-1:-1:-1;;;324:6416:66;;;1590:14:0;-1:-1:-1;785:20:66;;;-1:-1:-1;;;;;;;;;;;785:20:66;;;;;;;1590:14:0;785:20:66;1590:14:0;785:20:66;324:6416;785:20;;;324:6416;;;;1590:14:0;;;;;;;765:52:66;;324:6416;;765:52;;1590:14:0;324:6416:66;1590:14:0;;;;:::i;:::-;747:8:66;1590:14:0;;;;765:52:66;;324:6416;-1:-1:-1;;;;;;;;;;;765:52:66;;;;;;;;324:6416;;;;837:28;;;;;;;;-1:-1:-1;;;;;837:28:66;;;;;1590:14:0;837:28:66;;;;;;598:42;586:55;;837:28;;;324:6416;837:28;;;;;827:38;586:55;;-1:-1:-1;;;;;;586:55:66;;;;;;-1:-1:-1;;;;;586:55:66;;;;;;;;;324:6416;;-1:-1:-1;;;890:20:66;;1590:14:0;324:6416:66;;;598:42;890:20;;;;;;;324:6416;890:20;;;324:6416;;837:28;324:6416;;;;;-1:-1:-1;;;;;586:55:66;;875:36;586:55;;;875:36;586:55;-1:-1:-1;;;;;;;;;;;922:42:66;;;;324:6416;;;-1:-1:-1;;;922:42:66;;586:55;;;;;-1:-1:-1;;;;;324:6416:66;;922:42;;324:6416;1590:14:0;586:55:66;;;;324:6416;586:55;;324:6416;-1:-1:-1;;;785:20:66;324:6416;;586:55;-1:-1:-1;324:6416:66;922:42;324:6416;-1:-1:-1;;;;;;;;;;;;922:42:66;;;;;;;;324:6416;-1:-1:-1;875:36:66;586:55;324:6416;;-1:-1:-1;;;;;324:6416:66;-1:-1:-1;;;;;;;;;;;974:33:66;;;;324:6416;;1590:14:0;;;;974:33:66;;324:6416;974:33;;324:6416;;1590:14:0;586:55:66;;;;324:6416;586:55;;324:6416;-1:-1:-1;;;785:20:66;324:6416;;586:55;974:33;;922:42;974:33;;-1:-1:-1;;;;;;;;;;;974:33:66;;;;;;;;324:6416;1017:31;;-1:-1:-1;;;;;;;;;;;1017:31:66;;;;324:6416;;;1590:14:0;;;1017:31:66;;-1:-1:-1;;;;;;;;;;;324:6416:66;1017:31;;324:6416;;1590:14:0;488:50:66;;;324:6416;;488:50;;324:6416;-1:-1:-1;;;785:20:66;324:6416;;488:50;1017:31;;922:42;1017:31;;-1:-1:-1;;;;;;;;;;;1017:31:66;;;;;;;;324:6416;;974:33;;;;;:::i;:::-;324:6416;;974:33;;;;922:42;;;;324:6416;922:42;;:::i;:::-;324:6416;922:42;;;890:20;;;1590:14:0;890:20:66;;1590:14:0;890:20:66;;;;;;1590:14:0;890:20:66;;;:::i;:::-;;;586:55;;;;;;;:::i;:::-;890:20;;;;;;-1:-1:-1;890:20:66;;765:52;1590:14:0;765:52:66;;1590:14:0;765:52:66;;;;;;1590:14:0;765:52:66;;;:::i;:::-;;;1590:14:0;;;;;765:52:66;;;;;-1:-1:-1;765:52:66;;785:20;;;;;;324:6416;785:20;;;;;;:::i;:::-;;;;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;324:6416:66;;;;;;;;-1:-1:-1;;324:6416:66;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;837:28;324:6416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1590:14:0;324:6416:66;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;324:6416:66;1590:14:0;:::o;:::-;324:6416:66;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;:::o;:::-;;324:6416:66;683:3;;324:6416;;;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;:::o;:::-;-1:-1:-1;;;;;1590:14:0;;;;324:6416:66;;-1:-1:-1;;324:6416:66;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;324:6416:66;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;324:6416:66;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;586:55:66:-;;;-1:-1:-1;;;;;324:6416:66;;;;;;586:55::o;324:6416::-;-1:-1:-1;;;;;324:6416:66;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;324:6416:66;;;;;;;;-1:-1:-1;324:6416:66;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;586:55;324:6416;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;1590:14:0;;;324:6416:66;;;;;;;;;;;1374:13;324:6416;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;;;324:6416:66;;;;;1590:14:0;324:6416:66;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;324:6416:66;;;1590:14:0;324:6416:66;;;1590:14:0;324:6416:66;;;;;;;;;:::o;:::-;;1590:14:0;;-1:-1:-1;;;;;324:6416:66;;;;;;;-1:-1:-1;;;;;;;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;324:6416:66:o;:::-;1590:14:0;;;324:6416:66;;;;;;;;;;;;;;;;;;:::o;1243:204:1:-;1302:7;324:6416:66;;;;;;;1325:14:1;:::o;1298:143::-;324:6416:66;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;324:6416:66;192:59:1;;;;;;1590:14:0;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;324:6416:66;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;2270:110;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;324:6416:66;;1590:14:0;;;;2349:24:1;;;;;1590:14:0;6729:1:66;324:6416;;;1590:14:0;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;:::-;2270:110::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;324:6416:66;;1590:14:0;;;;2349:24:1;;;;;1590:14:0;324:6416:66;;;1590:14:0;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;683:3:66:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;426:547:59:-;688:35;426:547;637:17;619:35;324:6416:66;;637:17:59;;;324:6416:66;619:35:59;;:::i;:::-;324:6416:66;;706:17:59;;324:6416:66;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;324:6416:66;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;5495:17:66;957:9:59:o;324:6416:66:-;;;;;;;;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;-1:-1:-1;324:6416:66;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;1590:14:0;;;324:6416:66;;:::o;953:236:8:-;324:6416:66;1052:14:8;324:6416:66;;:::i;:::-;1052:14:8;;324:6416:66;;;;;;1109:10:8;324:6416:66;;;;;;1109:10:8;1077:1;324:6416:66;;1077:1:8;324:6416:66;;1077:1:8;324:6416:66;;;;;;;;;;;;;;:::i;:::-;;;683:3;;;;;;;324:6416;683:3;;;;;;;324:6416;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;683:3;;324:6416;;:::i;:::-;;683:3;324:6416;;;683:3;1077:1:8;11360:3;324:6416:66;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;324:6416:66;;11456:84:8;683:3:66;11456:84:8;;;;;683:3:66;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;324:6416:66:-;;;1590:14:0;;1109:10:8;324:6416:66;;;;;;-1:-1:-1;324:6416:66;;;;;;;;1048:135:8;324:6416:66;;;;;;1052:14:8;324:6416:66;:::i;:::-;1151:21:8;:::o;953:236::-;1052:14;;;324:6416:66;;;;;:::i;:::-;1052:21:8;;1109:10;;;;324:6416:66;;;;;;;;;;;;;;;1077:1:8;324:6416:66;;1077:1:8;324:6416:66;;1077:1:8;324:6416:66;;;;;;;;;;;;;;:::i;:::-;;;683:3;;;;;;;324:6416;683:3;;;;;;;324:6416;;;:::i;:::-;;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;324:6416:66;;;;683:3;;324:6416;;:::i;:::-;;683:3;324:6416;;;683:3;1077:1:8;11360:3;324:6416:66;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;324:6416:66;;11456:84:8;683:3:66;11456:84:8;;;;;683:3:66;11331:13:8;;324:6416:66;;;1590:14:0;;1109:10:8;324:6416:66;;;;;;-1:-1:-1;324:6416:66;;;;;;;;1048:135:8;324:6416:66;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;324:6416:66;1364:48:8;1381:9;324:6416:66;1590:14:0;;1364:48:8;324:6416:66;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;324:6416:66;;1364:48:8;;;;;;324:6416:66;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;683:3:66;;1364:48:8;;;;;;:::i;:::-;1458:12;324:6416:66;1458:29:8;;;-1:-1:-1;;;;;324:6416:66;1458:29:8;;;;;:::i;:::-;1540:11;324:6416:66;;;;683:3;;;;;-1:-1:-1;;;;;683:3:66;;;;;-1:-1:-1;324:6416:66;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;324:6416:66;;;;;;;;;1364:48:8;324:6416:66;;1540:11:8;683:3:66;;;;;-1:-1:-1;;;;;;324:6416:66;683:3;;11142:1:8;683:3:66;;;;;;;;;324:6416;;11097:47:8;11078:3;683::66;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;324:6416:66;1590:14:0;;1364:48:8;324:6416:66;1392:19:8;;;:::i;1364:48::-;324:6416:66;1458:12:8;;324:6416:66;1458:29:8;;;-1:-1:-1;;;;;324:6416:66;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;324:6416:66;683:3;;;;;-1:-1:-1;;;;;683:3:66;;;;;-1:-1:-1;324:6416:66;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;324:6416:66;;;;;;;;;1364:48:8;324:6416:66;;1540:11:8;683:3:66;;;;;-1:-1:-1;;;;;;324:6416:66;683:3;;11142:1:8;683:3:66;;;;;;;;;324:6416;;11097:47:8;11078:3;683::66;11054:13:8;;;;;11010:29;;;;643:59;;;;;;;;;;;;;;;:::i;:::-;324:6416:66;1590:14:0;324:6416:66;;1590:14:0;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;324:6416:66;4397:9:8;324:6416:66;4438:11:8;324:6416:66;-1:-1:-1;;;;;324:6416:66;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;324:6416:66;;;27635:8:3;324:6416:66;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;324:6416:66;4573:48:8;;324:6416:66;;;;;4438:11:8;324:6416:66;;;4551:77:8;324:6416:66;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;324:6416:66;;-1:-1:-1;;;4811:11:8;;324:6416:66;;4361:12:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;324:6416:66;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;324:6416:66;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;324:6416:66;;4951:12:8;;4984:74;324:6416:66;;12810:59:8;;;4984:74;;324:6416:66;4361:12:8;4984:74;;643:59;324:6416:66;4911:25:8;643:59;;324:6416:66;643:59:8;324:6416:66;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;324:6416:66;;5109:16:8;;;;;5178:8;324:6416:66;5178:8:8;;5165:22;5178:8;;:::i;:::-;324:6416:66;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;324:6416:66;;4361:12:8;5165:22;;324:6416:66;;;;1590:14:0;;;;324:6416:66;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;324:6416:66;4361:12:8;324:6416:66;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;324:6416:66;;;4361:12:8;1978:27;;324:6416:66;;;;;;1590:14:0;;;324:6416:66;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;5495:17:66;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;324:6416:66;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;324:6416:66;;;;4361:12:8;2177:37;;324:6416:66;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;324:6416:66;;;;-1:-1:-1;;;;;;324:6416:66;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;324:6416:66;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;324:6416:66;;;;4361:12:8;2281:43;;324:6416:66;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;324:6416:66;;5520:25:8;324:6416:66;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;324:6416:66;;5998:29:8;;5994:84;;324:6416:66;;6319:8:8;324:6416:66;6101:89:8;643:59;324:6416:66;;6132:37:8;;324:6416:66;;;6132:37:8;;;324:6416:66;6132:37:8;;;;;:::i;:::-;324:6416:66;6122:48:8;;6180:8;;;;:::i;:::-;324:6416:66;;;;;;;643:59:8;324:6416:66;643:59:8;;324:6416:66;;643:59:8;;1590:14:0;643:59:8;;;1590:14:0;6101:89:8;6319:8;:::i;:::-;324:6416:66;;;;1590:14:0;643:59:8;1590:14:0;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;4438:11:8;1590:14:0;;;324:6416:66;;;6302:58:8;;324:6416:66;;;;6302:58:8;;324:6416:66;;;643:59:8;6302:58;;643:59;683:3:66;643:59:8;;324:6416:66;;;27635:8:3;324:6416:66;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;324:6416:66;6230:48:8;;324:6416:66;;;;;;;;;643:59:8;;324:6416:66;683:3;643:59:8;;;324:6416:66;4397:9:8;643:59;;;;;;324:6416:66;;;;;643:59:8;;;;;;;;5089:1309;324:6416:66;;;27635:8:3;324:6416:66;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;324:6416:66;6461:48:8;;324:6416:66;;;;;4438:11:8;324:6416:66;;;6439:77:8;324:6416:66;;643:59:8;;;324:6416:66;6664:15:8;324:6416:66;;27635:8:3;324:6416:66;;;;;;;;;;6696:37:8;;324:6416:66;;;;;;6696:37:8;;;324:6416:66;6696:37:8;;;;;:::i;:::-;324:6416:66;6686:48:8;;324:6416:66;;;;;4249:2493:8;:::o;643:59::-;324:6416:66;;-1:-1:-1;;;643:59:8;;324:6416:66;4361:12:8;643:59;;;;4911:25;643:59;;324:6416:66;643:59:8;324:6416:66;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;683:3:66;6051:8:8;5094:13;683:3:66;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;324:6416:66;4361:12:8;324:6416:66;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;324:6416:66;;;4361:12:8;3216:27;;324:6416:66;;;;1590:14:0;;;324:6416:66;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;324:6416:66;;;;;;-1:-1:-1;;;;;324:6416:66;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;324:6416:66;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;324:6416:66;;;;4361:12:8;3497:43;;324:6416:66;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;324:6416:66;;12810:59:8;324:6416:66;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;683:3:66;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;324:6416:66;;3497:43:8;;;;324:6416:66;;;;3497:43:8;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;3497:43:8;324:6416:66;;;3216:27:8;;;;324:6416:66;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;683:3:66;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;324:6416:66;;2281:43:8;;;;324:6416:66;;;;2281:43:8;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;2281:43:8;324:6416:66;;;2177:37:8;;;;;:::i;:::-;324:6416:66;;2177:37:8;;;;2102:65;;;;;1978:27;;;324:6416:66;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;324:6416:66;;;;-1:-1:-1;;;;;324:6416:66;;;;;;;1590:14:0;;;;324:6416:66;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;324:6416:66;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;324:6416:66;;1590:14:0;324:6416:66;;1590:14:0;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;324:6416:66;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;324:6416:66;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;324:6416:66;;;643:59:8;324:6416:66;;;4811:11:8;;;;;324:6416:66;4811:11:8;;:::i;:::-;324:6416:66;4811:11:8;;;;4547:255;4720:15;;;;;324:6416:66;;27635:8:3;324:6416:66;;;;;;;;;;4752:37:8;;324:6416:66;;;;;;4752:37:8;;;324:6416:66;4752:37:8;;;;;:::i;:::-;324:6416:66;4742:48:8;;324:6416:66;;;;;;;4713:78:8;:::o;11586:239::-;-1:-1:-1;;;;;586:55:66;;11652:12:8;324:6416:66;;11652:12:8;324:6416:66;;;11681:9:8;324:6416:66;;11681:9:8;324:6416:66;11707:10:8;324:6416:66;11645:19:8;11707:10;324:6416:66;;;;11586:239:8;324:6416:66;11645:19:8;11734:11;324:6416:66;586:55;324:6416;11762:25:8;324:6416:66;;11762:25:8;324:6416:66;;11804:14:8;324:6416:66;;:::i;:::-;;;;11586:239:8;:::o;324:6416:66:-;;;;;;;;;11645:19:8;11804:14;324:6416:66;11586:239:8:o;324:6416:66:-;11804:14:8;11645:19;324:6416:66;;;;;;;;;;;;;;;;11804:14:8;11645:19;324:6416:66;11645:19:8;324:6416:66;;;;11804:14:8;324:6416:66;;2270:110:1:o;324:6416:66:-;;;;;;;;;11707:10:8;11645:19;324:6416:66;;;;;;;;;;;;;;;;11645:19:8;324:6416:66;;11707:10:8;324:6416:66;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;324:6416:66;2771:3:8;324:6416:66;2771:3:8;324:6416:66;;;;2824:12:8;;;324:6416:66;683:3;324:6416;;;;-1:-1:-1;;;;;324:6416:66;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;324:6416:66;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;324:6416:66;;;;2824:12:8;2815:49;;324:6416:66;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;-1:-1:-1;324:6416:66;12810:59:8;324:6416:66;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;683:3:66;;2678:18:8;;2941:90;2995:21;;;683:3:66;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;324:6416:66;683:3;324:6416;;;-1:-1:-1;;;;;324:6416:66;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;324:6416:66;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;324:6416:66;;;;2824:12:8;2815:49;;324:6416:66;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;-1:-1:-1;324:6416:66;12810:59:8;324:6416:66;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;683:3:66;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesAngle(bytes32,address,address)":"ccfab64a","testGetLimitsAngle()":"21079a92","testGetTokensAngle()":"a391347a","testSwapBuyIncreasingAngle()":"5ffccd93","testSwapFuzzAngleMint(uint256,bool)":"4f9eed55","testSwapFuzzAngleRedeem(uint256,bool)":"8bdd39a2","testSwapSellIncreasingAngle()":"33ed1a1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pair\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilitiesAngle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsAngle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensAngle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasingAngle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzAngleMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzAngleRedeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasingAngle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/AngleAdapter.t.sol\":\"AngleAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AngleAdapter.t.sol\":{\"keccak256\":\"0xe49a59a7a5837668f608f5152d90faa59b7ce67e3d9fa3cf76ca4a4589c22ddf\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://9fa20f8cf3ec692364c40bab8b3d84d1a3aa0d6e2e1aabdfb75936f0faaf9520\",\"dweb:/ipfs/QmXRbar9QFe64Pj7u7hQT5NxLfHc1r2SmtCqGCHpuSWoaq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"pair","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesAngle"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsAngle"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensAngle"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasingAngle"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzAngleMint"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzAngleRedeem"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasingAngle"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/AngleAdapter.t.sol":"AngleAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AngleAdapter.t.sol":{"keccak256":"0xe49a59a7a5837668f608f5152d90faa59b7ce67e3d9fa3cf76ca4a4589c22ddf","urls":["bzz-raw://9fa20f8cf3ec692364c40bab8b3d84d1a3aa0d6e2e1aabdfb75936f0faaf9520","dweb:/ipfs/QmXRbar9QFe64Pj7u7hQT5NxLfHc1r2SmtCqGCHpuSWoaq"],"license":"AGPL-3.0-or-later"}},"version":1},"id":66} \ No newline at end of file diff --git a/evm/out/BalancerCustomWrapHelpers.sol/BalancerCustomWrapHelpers.json b/evm/out/BalancerCustomWrapHelpers.sol/BalancerCustomWrapHelpers.json deleted file mode 100644 index 3a57958..0000000 --- a/evm/out/BalancerCustomWrapHelpers.sol/BalancerCustomWrapHelpers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":\"BalancerCustomWrapHelpers\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":"BalancerCustomWrapHelpers"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file diff --git a/evm/out/BalancerERC20Helpers.sol/BalancerERC20Helpers.json b/evm/out/BalancerERC20Helpers.sol/BalancerERC20Helpers.json deleted file mode 100644 index 9133a85..0000000 --- a/evm/out/BalancerERC20Helpers.sol/BalancerERC20Helpers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":\"BalancerERC20Helpers\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerERC20Helpers.sol":"BalancerERC20Helpers"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":44} \ No newline at end of file diff --git a/evm/out/BalancerERC4626Helpers.sol/BalancerERC4626Helpers.json b/evm/out/BalancerERC4626Helpers.sol/BalancerERC4626Helpers.json deleted file mode 100644 index 64dc51c..0000000 --- a/evm/out/BalancerERC4626Helpers.sol/BalancerERC4626Helpers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":\"BalancerERC4626Helpers\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerERC4626Helpers.sol":"BalancerERC4626Helpers"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file diff --git a/evm/out/BalancerInterfaces.sol/IBatchRouter.json b/evm/out/BalancerInterfaces.sol/IBatchRouter.json deleted file mode 100644 index 0290de3..0000000 --- a/evm/out/BalancerInterfaces.sol/IBatchRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"querySwapExactIn","inputs":[{"name":"paths","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathExactAmountIn[]","components":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"steps","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathStep[]","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"isBuffer","type":"bool","internalType":"bool"}]},{"name":"exactAmountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"name":"sender","type":"address","internalType":"address"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pathAmountsOut","type":"uint256[]","internalType":"uint256[]"},{"name":"tokensOut","type":"address[]","internalType":"address[]"},{"name":"amountsOut","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"querySwapExactOut","inputs":[{"name":"paths","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathExactAmountOut[]","components":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"steps","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathStep[]","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"isBuffer","type":"bool","internalType":"bool"}]},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"},{"name":"exactAmountOut","type":"uint256","internalType":"uint256"}]},{"name":"sender","type":"address","internalType":"address"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pathAmountsIn","type":"uint256[]","internalType":"uint256[]"},{"name":"tokensIn","type":"address[]","internalType":"address[]"},{"name":"amountsIn","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactIn","inputs":[{"name":"paths","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathExactAmountIn[]","components":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"steps","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathStep[]","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"isBuffer","type":"bool","internalType":"bool"}]},{"name":"exactAmountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"wethIsEth","type":"bool","internalType":"bool"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pathAmountsOut","type":"uint256[]","internalType":"uint256[]"},{"name":"tokensOut","type":"address[]","internalType":"address[]"},{"name":"amountsOut","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"swapExactOut","inputs":[{"name":"paths","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathExactAmountOut[]","components":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"steps","type":"tuple[]","internalType":"struct IBatchRouter.SwapPathStep[]","components":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"isBuffer","type":"bool","internalType":"bool"}]},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"},{"name":"exactAmountOut","type":"uint256","internalType":"uint256"}]},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"wethIsEth","type":"bool","internalType":"bool"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pathAmountsIn","type":"uint256[]","internalType":"uint256[]"},{"name":"tokensIn","type":"address[]","internalType":"address[]"},{"name":"amountsIn","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"querySwapExactIn((address,(address,address,bool)[],uint256,uint256)[],address,bytes)":"e3b5dff4","querySwapExactOut((address,(address,address,bool)[],uint256,uint256)[],address,bytes)":"2950286e","swapExactIn((address,(address,address,bool)[],uint256,uint256)[],uint256,bool,bytes)":"286f580d","swapExactOut((address,(address,address,bool)[],uint256,uint256)[],uint256,bool,bytes)":"8eb1b65e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBuffer\",\"type\":\"bool\"}],\"internalType\":\"struct IBatchRouter.SwapPathStep[]\",\"name\":\"steps\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct IBatchRouter.SwapPathExactAmountIn[]\",\"name\":\"paths\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"querySwapExactIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"pathAmountsOut\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tokensOut\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsOut\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBuffer\",\"type\":\"bool\"}],\"internalType\":\"struct IBatchRouter.SwapPathStep[]\",\"name\":\"steps\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct IBatchRouter.SwapPathExactAmountOut[]\",\"name\":\"paths\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"querySwapExactOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"pathAmountsIn\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tokensIn\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsIn\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBuffer\",\"type\":\"bool\"}],\"internalType\":\"struct IBatchRouter.SwapPathStep[]\",\"name\":\"steps\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct IBatchRouter.SwapPathExactAmountIn[]\",\"name\":\"paths\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"wethIsEth\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"swapExactIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"pathAmountsOut\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tokensOut\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsOut\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBuffer\",\"type\":\"bool\"}],\"internalType\":\"struct IBatchRouter.SwapPathStep[]\",\"name\":\"steps\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct IBatchRouter.SwapPathExactAmountOut[]\",\"name\":\"paths\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"wethIsEth\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"swapExactOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"pathAmountsIn\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tokensIn\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsIn\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerInterfaces.sol\":\"IBatchRouter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IBatchRouter.SwapPathExactAmountIn[]","name":"paths","type":"tuple[]","components":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"struct IBatchRouter.SwapPathStep[]","name":"steps","type":"tuple[]","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"bool","name":"isBuffer","type":"bool"}]},{"internalType":"uint256","name":"exactAmountIn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"querySwapExactIn","outputs":[{"internalType":"uint256[]","name":"pathAmountsOut","type":"uint256[]"},{"internalType":"address[]","name":"tokensOut","type":"address[]"},{"internalType":"uint256[]","name":"amountsOut","type":"uint256[]"}]},{"inputs":[{"internalType":"struct IBatchRouter.SwapPathExactAmountOut[]","name":"paths","type":"tuple[]","components":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"struct IBatchRouter.SwapPathStep[]","name":"steps","type":"tuple[]","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"bool","name":"isBuffer","type":"bool"}]},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"},{"internalType":"uint256","name":"exactAmountOut","type":"uint256"}]},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"querySwapExactOut","outputs":[{"internalType":"uint256[]","name":"pathAmountsIn","type":"uint256[]"},{"internalType":"address[]","name":"tokensIn","type":"address[]"},{"internalType":"uint256[]","name":"amountsIn","type":"uint256[]"}]},{"inputs":[{"internalType":"struct IBatchRouter.SwapPathExactAmountIn[]","name":"paths","type":"tuple[]","components":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"struct IBatchRouter.SwapPathStep[]","name":"steps","type":"tuple[]","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"bool","name":"isBuffer","type":"bool"}]},{"internalType":"uint256","name":"exactAmountIn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"wethIsEth","type":"bool"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"swapExactIn","outputs":[{"internalType":"uint256[]","name":"pathAmountsOut","type":"uint256[]"},{"internalType":"address[]","name":"tokensOut","type":"address[]"},{"internalType":"uint256[]","name":"amountsOut","type":"uint256[]"}]},{"inputs":[{"internalType":"struct IBatchRouter.SwapPathExactAmountOut[]","name":"paths","type":"tuple[]","components":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"struct IBatchRouter.SwapPathStep[]","name":"steps","type":"tuple[]","components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"bool","name":"isBuffer","type":"bool"}]},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"},{"internalType":"uint256","name":"exactAmountOut","type":"uint256"}]},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"wethIsEth","type":"bool"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"swapExactOut","outputs":[{"internalType":"uint256[]","name":"pathAmountsIn","type":"uint256[]"},{"internalType":"address[]","name":"tokensIn","type":"address[]"},{"internalType":"uint256[]","name":"amountsIn","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerInterfaces.sol":"IBatchRouter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/evm/out/BalancerInterfaces.sol/IPermit2.json b/evm/out/BalancerInterfaces.sol/IPermit2.json deleted file mode 100644 index 7e7e5ce..0000000 --- a/evm/out/BalancerInterfaces.sol/IPermit2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint160","internalType":"uint160"},{"name":"expiration","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,address,uint160,uint48)":"87517c45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"amount\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"expiration\",\"type\":\"uint48\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerInterfaces.sol\":\"IPermit2\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"approve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerInterfaces.sol":"IPermit2"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/evm/out/BalancerInterfaces.sol/IRateProvider.json b/evm/out/BalancerInterfaces.sol/IRateProvider.json deleted file mode 100644 index 32db275..0000000 --- a/evm/out/BalancerInterfaces.sol/IRateProvider.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getRate","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getRate()":"679aefce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRate()\":{\"details\":\"Returns an 18 decimal fixed point number that is the exchange rate of the token to some other underlying token. The meaning of this rate depends on the context.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerInterfaces.sol\":\"IRateProvider\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"getRate()":{"details":"Returns an 18 decimal fixed point number that is the exchange rate of the token to some other underlying token. The meaning of this rate depends on the context."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerInterfaces.sol":"IRateProvider"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/evm/out/BalancerInterfaces.sol/IVault.json b/evm/out/BalancerInterfaces.sol/IVault.json deleted file mode 100644 index 8d6b68b..0000000 --- a/evm/out/BalancerInterfaces.sol/IVault.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"erc4626BufferWrapOrUnwrap","inputs":[{"name":"params","type":"tuple","internalType":"struct IVault.BufferWrapOrUnwrapParams","components":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"direction","type":"uint8","internalType":"enum IVault.WrappingDirection"},{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"amountGivenRaw","type":"uint256","internalType":"uint256"},{"name":"limitRaw","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amountCalculatedRaw","type":"uint256","internalType":"uint256"},{"name":"amountInRaw","type":"uint256","internalType":"uint256"},{"name":"amountOutRaw","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolData","inputs":[{"name":"pool","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IVault.PoolData","components":[{"name":"poolConfigBits","type":"bytes32","internalType":"IVault.PoolConfigBits"},{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"},{"name":"tokenInfo","type":"tuple[]","internalType":"struct IVault.TokenInfo[]","components":[{"name":"tokenType","type":"uint8","internalType":"enum IVault.TokenType"},{"name":"rateProvider","type":"address","internalType":"contract IRateProvider"},{"name":"paysYieldFees","type":"bool","internalType":"bool"}]},{"name":"balancesRaw","type":"uint256[]","internalType":"uint256[]"},{"name":"balancesLiveScaled18","type":"uint256[]","internalType":"uint256[]"},{"name":"tokenRates","type":"uint256[]","internalType":"uint256[]"},{"name":"decimalScalingFactors","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getPoolTokenCountAndIndexOfToken","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"tokenCount","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPoolTokenInfo","inputs":[{"name":"pool","type":"address","internalType":"address"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"},{"name":"tokenInfo","type":"tuple[]","internalType":"struct IVault.TokenInfo[]","components":[{"name":"tokenType","type":"uint8","internalType":"enum IVault.TokenType"},{"name":"rateProvider","type":"address","internalType":"contract IRateProvider"},{"name":"paysYieldFees","type":"bool","internalType":"bool"}]},{"name":"balancesRaw","type":"uint256[]","internalType":"uint256[]"},{"name":"lastBalancesLiveScaled18","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolTokens","inputs":[{"name":"pool","type":"address","internalType":"address"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"vaultSwapParams","type":"tuple","internalType":"struct IVault.VaultSwapParams","components":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"pool","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountGivenRaw","type":"uint256","internalType":"uint256"},{"name":"limitRaw","type":"uint256","internalType":"uint256"},{"name":"userData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amountCalculatedRaw","type":"uint256","internalType":"uint256"},{"name":"amountInRaw","type":"uint256","internalType":"uint256"},{"name":"amountOutRaw","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"erc4626BufferWrapOrUnwrap((uint8,uint8,address,uint256,uint256))":"43583be5","getPoolData(address)":"13d21cdf","getPoolTokenCountAndIndexOfToken(address,address)":"c9c1661b","getPoolTokenInfo(address)":"67e0e076","getPoolTokens(address)":"ca4f2803","swap((uint8,address,address,address,uint256,uint256,bytes))":"2bfb780c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"enum IVault.WrappingDirection\",\"name\":\"direction\",\"type\":\"uint8\"},{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountGivenRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitRaw\",\"type\":\"uint256\"}],\"internalType\":\"struct IVault.BufferWrapOrUnwrapParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"erc4626BufferWrapOrUnwrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountCalculatedRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutRaw\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"getPoolData\",\"outputs\":[{\"components\":[{\"internalType\":\"IVault.PoolConfigBits\",\"name\":\"poolConfigBits\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"enum IVault.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"contract IRateProvider\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"paysYieldFees\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.TokenInfo[]\",\"name\":\"tokenInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"balancesRaw\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"balancesLiveScaled18\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenRates\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"decimalScalingFactors\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IVault.PoolData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPoolTokenCountAndIndexOfToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"getPoolTokenInfo\",\"outputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"enum IVault.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"contract IRateProvider\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"paysYieldFees\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.TokenInfo[]\",\"name\":\"tokenInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"balancesRaw\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"lastBalancesLiveScaled18\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"getPoolTokens\",\"outputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountGivenRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitRaw\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"internalType\":\"struct IVault.VaultSwapParams\",\"name\":\"vaultSwapParams\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountCalculatedRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInRaw\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutRaw\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerInterfaces.sol\":\"IVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IVault.BufferWrapOrUnwrapParams","name":"params","type":"tuple","components":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"enum IVault.WrappingDirection","name":"direction","type":"uint8"},{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"amountGivenRaw","type":"uint256"},{"internalType":"uint256","name":"limitRaw","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"erc4626BufferWrapOrUnwrap","outputs":[{"internalType":"uint256","name":"amountCalculatedRaw","type":"uint256"},{"internalType":"uint256","name":"amountInRaw","type":"uint256"},{"internalType":"uint256","name":"amountOutRaw","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolData","outputs":[{"internalType":"struct IVault.PoolData","name":"","type":"tuple","components":[{"internalType":"IVault.PoolConfigBits","name":"poolConfigBits","type":"bytes32"},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"struct IVault.TokenInfo[]","name":"tokenInfo","type":"tuple[]","components":[{"internalType":"enum IVault.TokenType","name":"tokenType","type":"uint8"},{"internalType":"contract IRateProvider","name":"rateProvider","type":"address"},{"internalType":"bool","name":"paysYieldFees","type":"bool"}]},{"internalType":"uint256[]","name":"balancesRaw","type":"uint256[]"},{"internalType":"uint256[]","name":"balancesLiveScaled18","type":"uint256[]"},{"internalType":"uint256[]","name":"tokenRates","type":"uint256[]"},{"internalType":"uint256[]","name":"decimalScalingFactors","type":"uint256[]"}]}]},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolTokenCountAndIndexOfToken","outputs":[{"internalType":"uint256","name":"tokenCount","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolTokenInfo","outputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"struct IVault.TokenInfo[]","name":"tokenInfo","type":"tuple[]","components":[{"internalType":"enum IVault.TokenType","name":"tokenType","type":"uint8"},{"internalType":"contract IRateProvider","name":"rateProvider","type":"address"},{"internalType":"bool","name":"paysYieldFees","type":"bool"}]},{"internalType":"uint256[]","name":"balancesRaw","type":"uint256[]"},{"internalType":"uint256[]","name":"lastBalancesLiveScaled18","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolTokens","outputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"struct IVault.VaultSwapParams","name":"vaultSwapParams","type":"tuple","components":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountGivenRaw","type":"uint256"},{"internalType":"uint256","name":"limitRaw","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountCalculatedRaw","type":"uint256"},{"internalType":"uint256","name":"amountInRaw","type":"uint256"},{"internalType":"uint256","name":"amountOutRaw","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerInterfaces.sol":"IVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/evm/out/BalancerStorage.sol/BalancerStorage.json b/evm/out/BalancerStorage.sol/BalancerStorage.json deleted file mode 100644 index 47a2096..0000000 --- a/evm/out/BalancerStorage.sol/BalancerStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Balancer V3 Storage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerStorage.sol\":\"BalancerStorage\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerStorage.sol":"BalancerStorage"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file diff --git a/evm/out/BalancerSwapHelpers.sol/BalancerSwapHelpers.json b/evm/out/BalancerSwapHelpers.sol/BalancerSwapHelpers.json deleted file mode 100644 index 053c582..0000000 --- a/evm/out/BalancerSwapHelpers.sol/BalancerSwapHelpers.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getCapabilities","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A wrapped library containing swap functions, helpers and storage for the Balancer V3 Swap Adapter contract\",\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"Balancer V3 Swap Helpers\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":\"BalancerSwapHelpers\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":{\"keccak256\":\"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76\",\"dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerSwapHelpers.sol":"BalancerSwapHelpers"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerSwapHelpers.sol":{"keccak256":"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88","urls":["bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76","dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file diff --git a/evm/out/BalancerV2SwapAdapter.sol/BalancerV2SwapAdapter.json b/evm/out/BalancerV2SwapAdapter.sol/BalancerV2SwapAdapter.json deleted file mode 100644 index 4bd48d1..0000000 --- a/evm/out/BalancerV2SwapAdapter.sol/BalancerV2SwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vault_","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"getSellAmount","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"buyAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"sellAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"calculatedPrices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"priceSingle","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"sellAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"calculatedPrice","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a03461009c57601f6116ad38819003918201601f19168301916001600160401b038311848410176100a05780849260209460405283398101031261009c57516001600160a01b0381169081900361009c576080526040516115f890816100b5823960805181818160a10152818161033d01528181610634015281816106a101528181610852015281816109280152818161108e01526112b10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca0114610ae55750806348bd7dfd14610a0e5780638307c6551461054f578063a9270fbe146102fb578063aad6e4881461017a578063ba9285fe14610156578063e357d6f9146101285763ecbbc03314610074575f80fd5b3461012457602036600319011261012457604051631f29a8cd60e31b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610119576100f1915f916100f5575b50604051918291602083526020830190610c6b565b0390f35b61011191503d805f833e6101098183610bf3565b810190610d32565b50505f6100dc565b6040513d5f823e3d90fd5b5f80fd5b3461012457604061014461013b36610c2d565b9291909161115c565b60208251918051835201516020820152f35b3461012457602061017261016936610c2d565b92919091610f07565b604051908152f35b3461012457608036600319011261012457600435610196610b39565b9061019f610b4f565b906064359167ffffffffffffffff83116101245736602384011215610124578260040135926101cd84610c15565b936101db6040519586610bf3565b8085526024602086019160051b8301019136831161012457602401905b8282106102eb5750505082519361020e85610c15565b9461021c6040519687610bf3565b80865261022b601f1991610c15565b015f5b8181106102c85750505f5b8451811015610277578061025b61025260019388610cc4565b5185858861115c565b6102658289610cc4565b526102708188610cc4565b5001610239565b856040518091602082016020835281518091526020604084019201905f5b8181106102a3575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610295565b6020906040516102d781610bbb565b5f81525f8382015282828a0101520161022e565b81358152602091820191016101f8565b346101245761030936610b65565b60405192610318606085610bf3565b60028452602084019060403683376040805163f6c0092760e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929181602481865afa908115610119575f91610507575b505f61039061038a836113a1565b9261140e565b92602460405180968193631f29a8cd60e31b835260048301525afa948515610119575f935f966104e4575b5093956001600160a01b0394851694165f5b84518110156104a057816001600160a01b036103e98388610cc4565b51161461045e575b856001600160a01b036104048388610cc4565b511614610414575b6001016103cd565b61041e8188610cc4565b519060038202918083046003149015171561044a57600a600192046104428b610cb4565b52905061040c565b634e487b7160e01b5f52601160045260245ffd5b808303610475578361046f8a610ca7565b526103f1565b61047f8188610cc4565b5160038102908082046003149015171561044a57600a900461046f8a610ca7565b8789604051918291602083019060208452518091526040830191905f5b8181106104cb575050500390f35b82518452859450602093840193909201916001016104bd565b9095506104fc9193503d805f833e6101098183610bf3565b5092909294886103bb565b90506040813d604011610547575b8161052260409383610bf3565b8101031261012457602061053582610d1e565b91015160ff811603610124578761037c565b3d9150610515565b346101245760a03660031901126101245760043561056b610b39565b90610574610b4f565b60643591600283101561012457604051926060840184811067ffffffffffffffff821117610902576040525f84525f60208501526040516105b481610bbb565b5f81525f602082015260408501526105cb81610cf0565b6109f4575f90608435925f935b6040516323b872dd60e01b6020820152336024820152306044820152606480820183905281526001600160a01b038816919061061f90610619608482610bf3565b836114ba565b604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482015290602082604481865afa918215610119575f926109c0575b50810180911161044a575f8060405192602084019063095ea7b360e01b825260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001660248601526044850152604484526106da606485610bf3565b83519082865af16106e9611525565b81610991575b5080610987575b15610916575b505a936040519160c0830183811067ffffffffffffffff82111761090257604052848352602083019161072e81610cf0565b82526040830190815260018060a01b03841660608401526080830191608435835260209760405161075f8a82610bf3565b5f815260a086019081526040519161077683610b9f565b3083525f8b8401523360408401525f60608401526103e842019182421161044a5761080b610843918d986040519a8b998a996352bbbe2960e01b8b5260e060048c0152825160e48c0152516107ca81610cf0565b6101048b0152516001600160a01b039081166101248b01526060919091015116610144890152516101648801525160c06101848801526101a4870190610cfa565b84516001600160a01b039081166024880152602086015115156044880152604086015116606487015260609094015115156084860152565b60a484015260c483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610119575f916108d5575b5085525a830392831161044a576080956108ac9360208701526084359261115c565b604083015260408051928051845260208101518385015201518051604084015201516060820152f35b90508481813d83116108fb575b6108ec8183610bf3565b8101031261012457518761088a565b503d6108e2565b634e487b7160e01b5f52604160045260245ffd5b60405163095ea7b360e01b60208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201525f6044808301919091528152610981919061097b90610975606482610bf3565b846114ba565b826114ba565b876106fc565b50813b15156106f6565b80518015925082156109a6575b5050896106ef565b6109b992506020809183010191016114a2565b898061099e565b9091506020813d6020116109ec575b816109dc60209383610bf3565b8101031261012457519089610679565b3d91506109cf565b600190610a05608435848784610f07565b5f1993906105d8565b3461012457610a1c36610b65565b505050604051610a2d60a082610bf3565b600481526020810160803682376001610a4583610ca7565b526002610a5183610cb4565b52815160021015610ad15760036060830152815160031015610ad15760086080830152604051906020820192602083525180935260408201905f935b808510610a9a5783830384f35b9091825190600a821015610abd5760208160019382935201930194019390610a8d565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461012457604036600319011261012457631d04569d60e21b815260206004820181905260248201527f42616c616e636572563253776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b038216820361012457565b604435906001600160a01b038216820361012457565b606090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b03811681036101245790565b6080810190811067ffffffffffffffff82111761090257604052565b6040810190811067ffffffffffffffff82111761090257604052565b60a0810190811067ffffffffffffffff82111761090257604052565b90601f8019910116810190811067ffffffffffffffff82111761090257604052565b67ffffffffffffffff81116109025760051b60200190565b608090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b0381168103610124579060643590565b90602080835192838152019201905f5b818110610c885750505090565b82516001600160a01b0316845260209384019390920191600101610c7b565b805115610ad15760200190565b805160011015610ad15760400190565b8051821015610ad15760209160051b010190565b60405190610ce582610bbb565b5f6020838281520152565b60021115610abd57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361012457565b909160608284031261012457815167ffffffffffffffff811161012457820183601f8201121561012457805190610d6882610c15565b91610d766040519384610bf3565b80835260208084019160051b8301019186831161012457602001905b828210610e165750505092602083015167ffffffffffffffff81116101245783019080601f83011215610124578151610dca81610c15565b92610dd86040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610e065750505060409092015190565b8151815260209182019101610df3565b60208091610e2384610d1e565b815201910190610d92565b60408051909190610e3f8382610bf3565b6001815291601f1901825f5b828110610e5757505050565b602090604051610e6681610bd7565b5f81525f838201525f60408201525f60608201526060608082015282828501015201610e4b565b6020818303126101245780519067ffffffffffffffff821161012457019080601f83011215610124578151610ec181610c15565b92610ecf6040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610ef75750505090565b8151815260209182019101610eea565b929091610f12610e2e565b9160405194610f2086610bd7565b85525f6020860152600160408601526060850152602093604051610f448682610bf3565b5f81526080820152610f5583610ca7565b52610f5f82610ca7565b50606060405191610f708284610bf3565b60028352601f19820194853688860137610f8984610ca7565b6001600160a01b039091169052610f9f83610cb4565b6001600160a01b03909116905260405193610fb985610b9f565b3385525f868601523360408601525f82860152604051610fd98382610bf3565b600281528636910137604051637c26833760e11b81529460e48601919091869493926001600487015260e0602487015284518092526101048601928161010060048560051b8a0101019601935f915b8483106110f5575050505050509261108961105184935f96600319868303016044870152610c6b565b82516001600160a01b03908116606486015260208401511515608486015260408401511660a4850152606090920151151560c4840152565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610119576110cf915f916110d3575b50610ca7565b5190565b6110ef91503d805f833e6110e78183610bf3565b810190610e8d565b5f6110c9565b9193959692806111476001939582989b60ff19906003199083030101875260a060808d518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b99019301930190928997969593949294611028565b9192611166610cd8565b5061116f610e2e565b906040519361117d85610bd7565b84525f60208501526001604085015260608401526020926040516111a18582610bf3565b5f815260808201526111b282610ca7565b526111bc81610ca7565b506040516060946111cd8683610bf3565b60028252601f198601938436878501376111e683610ca7565b6001600160a01b0390911690526111fc82610cb4565b6001600160a01b0390911690526040519261121684610b9f565b3384525f858501523360408501525f868501526040516112368782610bf3565b600281528536910137604051637c26833760e11b81529460e4860190869392915f600486015260e0602486015283518091526101048501918761010060048460051b890101019501925f915b8984841061133e57505050505050926112ac61105184935f96600319868303016044870152610c6b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610119575f92611322575b506112f382610cb4565b5191600160ff1b831461044a5761130990610ca7565b51906040519261131884610bbb565b5f03835282015290565b6113379192503d805f833e6110e78183610bf3565b905f6112e9565b61138e600193959798829395979a60ff19906003199083030101875260a060808c518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b9801930193019092899695949293611282565b6040516341343d2b60e11b815290602090829060049082906001600160a01b03165afa5f91816113da575b506113d757505f1990565b90565b9091506020813d602011611406575b816113f660209383610bf3565b810103126101245751905f6113cc565b3d91506113e9565b60405163876f303b60e01b81526001600160a01b039190911690602081600481855afa5f918161146e575b5061146957506020600491604051928380926337a0b34d60e21b82525afa5f91816113da57506113d757505f1990565b905090565b9091506020813d60201161149a575b8161148a60209383610bf3565b810103126101245751905f611439565b3d915061147d565b90816020910312610124575180151581036101245790565b5f806114e29260018060a01b03169360208151910182865af16114db611525565b9083611564565b805190811515918261150a575b50506114f85750565b635274afe760e01b5f5260045260245ffd5b61151d92506020809183010191016114a2565b155f806114ef565b3d1561155f573d9067ffffffffffffffff82116109025760405191611554601f8201601f191660200184610bf3565b82523d5f602084013e565b606090565b90611588575080511561157957805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115b9575b611599575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561159156fea2646970667358221220e3f14a8e559a59d2985f6223d165fe9c31be449a354e673b7d50555a0236e43d64736f6c634300081b0033","sourceMap":"452:8186:41:-:0;;;;;;;;;;;;;-1:-1:-1;;452:8186:41;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;613:22;;452:8186;;;;;;;;613:22;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;-1:-1:-1;452:8186:41;;;;;-1:-1:-1;452:8186:41","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca0114610ae55750806348bd7dfd14610a0e5780638307c6551461054f578063a9270fbe146102fb578063aad6e4881461017a578063ba9285fe14610156578063e357d6f9146101285763ecbbc03314610074575f80fd5b3461012457602036600319011261012457604051631f29a8cd60e31b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610119576100f1915f916100f5575b50604051918291602083526020830190610c6b565b0390f35b61011191503d805f833e6101098183610bf3565b810190610d32565b50505f6100dc565b6040513d5f823e3d90fd5b5f80fd5b3461012457604061014461013b36610c2d565b9291909161115c565b60208251918051835201516020820152f35b3461012457602061017261016936610c2d565b92919091610f07565b604051908152f35b3461012457608036600319011261012457600435610196610b39565b9061019f610b4f565b906064359167ffffffffffffffff83116101245736602384011215610124578260040135926101cd84610c15565b936101db6040519586610bf3565b8085526024602086019160051b8301019136831161012457602401905b8282106102eb5750505082519361020e85610c15565b9461021c6040519687610bf3565b80865261022b601f1991610c15565b015f5b8181106102c85750505f5b8451811015610277578061025b61025260019388610cc4565b5185858861115c565b6102658289610cc4565b526102708188610cc4565b5001610239565b856040518091602082016020835281518091526020604084019201905f5b8181106102a3575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610295565b6020906040516102d781610bbb565b5f81525f8382015282828a0101520161022e565b81358152602091820191016101f8565b346101245761030936610b65565b60405192610318606085610bf3565b60028452602084019060403683376040805163f6c0092760e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929181602481865afa908115610119575f91610507575b505f61039061038a836113a1565b9261140e565b92602460405180968193631f29a8cd60e31b835260048301525afa948515610119575f935f966104e4575b5093956001600160a01b0394851694165f5b84518110156104a057816001600160a01b036103e98388610cc4565b51161461045e575b856001600160a01b036104048388610cc4565b511614610414575b6001016103cd565b61041e8188610cc4565b519060038202918083046003149015171561044a57600a600192046104428b610cb4565b52905061040c565b634e487b7160e01b5f52601160045260245ffd5b808303610475578361046f8a610ca7565b526103f1565b61047f8188610cc4565b5160038102908082046003149015171561044a57600a900461046f8a610ca7565b8789604051918291602083019060208452518091526040830191905f5b8181106104cb575050500390f35b82518452859450602093840193909201916001016104bd565b9095506104fc9193503d805f833e6101098183610bf3565b5092909294886103bb565b90506040813d604011610547575b8161052260409383610bf3565b8101031261012457602061053582610d1e565b91015160ff811603610124578761037c565b3d9150610515565b346101245760a03660031901126101245760043561056b610b39565b90610574610b4f565b60643591600283101561012457604051926060840184811067ffffffffffffffff821117610902576040525f84525f60208501526040516105b481610bbb565b5f81525f602082015260408501526105cb81610cf0565b6109f4575f90608435925f935b6040516323b872dd60e01b6020820152336024820152306044820152606480820183905281526001600160a01b038816919061061f90610619608482610bf3565b836114ba565b604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482015290602082604481865afa918215610119575f926109c0575b50810180911161044a575f8060405192602084019063095ea7b360e01b825260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001660248601526044850152604484526106da606485610bf3565b83519082865af16106e9611525565b81610991575b5080610987575b15610916575b505a936040519160c0830183811067ffffffffffffffff82111761090257604052848352602083019161072e81610cf0565b82526040830190815260018060a01b03841660608401526080830191608435835260209760405161075f8a82610bf3565b5f815260a086019081526040519161077683610b9f565b3083525f8b8401523360408401525f60608401526103e842019182421161044a5761080b610843918d986040519a8b998a996352bbbe2960e01b8b5260e060048c0152825160e48c0152516107ca81610cf0565b6101048b0152516001600160a01b039081166101248b01526060919091015116610144890152516101648801525160c06101848801526101a4870190610cfa565b84516001600160a01b039081166024880152602086015115156044880152604086015116606487015260609094015115156084860152565b60a484015260c483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610119575f916108d5575b5085525a830392831161044a576080956108ac9360208701526084359261115c565b604083015260408051928051845260208101518385015201518051604084015201516060820152f35b90508481813d83116108fb575b6108ec8183610bf3565b8101031261012457518761088a565b503d6108e2565b634e487b7160e01b5f52604160045260245ffd5b60405163095ea7b360e01b60208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201525f6044808301919091528152610981919061097b90610975606482610bf3565b846114ba565b826114ba565b876106fc565b50813b15156106f6565b80518015925082156109a6575b5050896106ef565b6109b992506020809183010191016114a2565b898061099e565b9091506020813d6020116109ec575b816109dc60209383610bf3565b8101031261012457519089610679565b3d91506109cf565b600190610a05608435848784610f07565b5f1993906105d8565b3461012457610a1c36610b65565b505050604051610a2d60a082610bf3565b600481526020810160803682376001610a4583610ca7565b526002610a5183610cb4565b52815160021015610ad15760036060830152815160031015610ad15760086080830152604051906020820192602083525180935260408201905f935b808510610a9a5783830384f35b9091825190600a821015610abd5760208160019382935201930194019390610a8d565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461012457604036600319011261012457631d04569d60e21b815260206004820181905260248201527f42616c616e636572563253776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b038216820361012457565b604435906001600160a01b038216820361012457565b606090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b03811681036101245790565b6080810190811067ffffffffffffffff82111761090257604052565b6040810190811067ffffffffffffffff82111761090257604052565b60a0810190811067ffffffffffffffff82111761090257604052565b90601f8019910116810190811067ffffffffffffffff82111761090257604052565b67ffffffffffffffff81116109025760051b60200190565b608090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b0381168103610124579060643590565b90602080835192838152019201905f5b818110610c885750505090565b82516001600160a01b0316845260209384019390920191600101610c7b565b805115610ad15760200190565b805160011015610ad15760400190565b8051821015610ad15760209160051b010190565b60405190610ce582610bbb565b5f6020838281520152565b60021115610abd57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361012457565b909160608284031261012457815167ffffffffffffffff811161012457820183601f8201121561012457805190610d6882610c15565b91610d766040519384610bf3565b80835260208084019160051b8301019186831161012457602001905b828210610e165750505092602083015167ffffffffffffffff81116101245783019080601f83011215610124578151610dca81610c15565b92610dd86040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610e065750505060409092015190565b8151815260209182019101610df3565b60208091610e2384610d1e565b815201910190610d92565b60408051909190610e3f8382610bf3565b6001815291601f1901825f5b828110610e5757505050565b602090604051610e6681610bd7565b5f81525f838201525f60408201525f60608201526060608082015282828501015201610e4b565b6020818303126101245780519067ffffffffffffffff821161012457019080601f83011215610124578151610ec181610c15565b92610ecf6040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610ef75750505090565b8151815260209182019101610eea565b929091610f12610e2e565b9160405194610f2086610bd7565b85525f6020860152600160408601526060850152602093604051610f448682610bf3565b5f81526080820152610f5583610ca7565b52610f5f82610ca7565b50606060405191610f708284610bf3565b60028352601f19820194853688860137610f8984610ca7565b6001600160a01b039091169052610f9f83610cb4565b6001600160a01b03909116905260405193610fb985610b9f565b3385525f868601523360408601525f82860152604051610fd98382610bf3565b600281528636910137604051637c26833760e11b81529460e48601919091869493926001600487015260e0602487015284518092526101048601928161010060048560051b8a0101019601935f915b8483106110f5575050505050509261108961105184935f96600319868303016044870152610c6b565b82516001600160a01b03908116606486015260208401511515608486015260408401511660a4850152606090920151151560c4840152565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610119576110cf915f916110d3575b50610ca7565b5190565b6110ef91503d805f833e6110e78183610bf3565b810190610e8d565b5f6110c9565b9193959692806111476001939582989b60ff19906003199083030101875260a060808d518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b99019301930190928997969593949294611028565b9192611166610cd8565b5061116f610e2e565b906040519361117d85610bd7565b84525f60208501526001604085015260608401526020926040516111a18582610bf3565b5f815260808201526111b282610ca7565b526111bc81610ca7565b506040516060946111cd8683610bf3565b60028252601f198601938436878501376111e683610ca7565b6001600160a01b0390911690526111fc82610cb4565b6001600160a01b0390911690526040519261121684610b9f565b3384525f858501523360408501525f868501526040516112368782610bf3565b600281528536910137604051637c26833760e11b81529460e4860190869392915f600486015260e0602486015283518091526101048501918761010060048460051b890101019501925f915b8984841061133e57505050505050926112ac61105184935f96600319868303016044870152610c6b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610119575f92611322575b506112f382610cb4565b5191600160ff1b831461044a5761130990610ca7565b51906040519261131884610bbb565b5f03835282015290565b6113379192503d805f833e6110e78183610bf3565b905f6112e9565b61138e600193959798829395979a60ff19906003199083030101875260a060808c518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b9801930193019092899695949293611282565b6040516341343d2b60e11b815290602090829060049082906001600160a01b03165afa5f91816113da575b506113d757505f1990565b90565b9091506020813d602011611406575b816113f660209383610bf3565b810103126101245751905f6113cc565b3d91506113e9565b60405163876f303b60e01b81526001600160a01b039190911690602081600481855afa5f918161146e575b5061146957506020600491604051928380926337a0b34d60e21b82525afa5f91816113da57506113d757505f1990565b905090565b9091506020813d60201161149a575b8161148a60209383610bf3565b810103126101245751905f611439565b3d915061147d565b90816020910312610124575180151581036101245790565b5f806114e29260018060a01b03169360208151910182865af16114db611525565b9083611564565b805190811515918261150a575b50506114f85750565b635274afe760e01b5f5260045260245ffd5b61151d92506020809183010191016114a2565b155f806114ef565b3d1561155f573d9067ffffffffffffffff82116109025760405191611554601f8201601f191660200184610bf3565b82523d5f602084013e565b606090565b90611588575080511561157957805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115b9575b611599575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561159156fea2646970667358221220e3f14a8e559a59d2985f6223d165fe9c31be449a354e673b7d50555a0236e43d64736f6c634300081b0033","sourceMap":"452:8186:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;8579:50;;452:8186;8579:50;;;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;452:8186:41;;;;;;-1:-1:-1;;;8294:27:41;;452:8186;;;8294:27;;;452:8186;-1:-1:-1;452:8186:41;8294:27;452:8186;8294:5;-1:-1:-1;;;;;452:8186:41;8294:27;;;;;;452:8186;8294:27;452:8186;8294:27;;;452:8186;;;;;;;;;;;;;;;:::i;:::-;;;;8294:27;;;;;;452:8186;8294:27;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;452:8186;;445:4;452:8186;445:4;;;;;452:8186;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;452:8186:41;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;3955:13;;452:8186;3999:3;452:8186;;3970:27;;;;;4097:19;4056:61;4097:19;452:8186;4097:19;;;:::i;:::-;452:8186;4056:61;;;;:::i;:::-;4018:99;;;;:::i;:::-;;;;;;:::i;:::-;;452:8186;3955:13;;3970:27;;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;5975:1;452:8186;;;;;;;;;;;;;-1:-1:-1;;;6019:21:41;;452:8186;6019:21;;452:8186;;;6019:5;-1:-1:-1;;;;;452:8186:41;;;;6019:21;452:8186;;6019:21;;;;;;;452:8186;6019:21;;;452:8186;6069:27;452:8186;6134:29;6069:27;;;:::i;:::-;6134:29;;:::i;:::-;452:8186;6019:21;452:8186;;445:4;;;;;;;6242:27;;452:8186;6242:27;;452:8186;6242:27;;;;;;;452:8186;;;6242:27;;;452:8186;-1:-1:-1;6285:13:41;;-1:-1:-1;;;;;452:8186:41;;;;;;6319:3;452:8186;;6300:17;;;;;452:8186;-1:-1:-1;;;;;6342:9:41;;;;:::i;:::-;452:8186;;6342:22;6338:517;;6319:3;452:8186;-1:-1:-1;;;;;6872:9:41;;;;:::i;:::-;452:8186;;6872:21;6868:111;;6319:3;452:8186;;6285:13;;6868:111;6925:11;;;;:::i;:::-;452:8186;405:1;;;;;;;;;;;;;;;;6962:2;452:8186;405:1;;6913:51;;;:::i;:::-;452:8186;6868:111;;;;405:1;452:8186;;;;445:4;;452:8186;445:4;6019:21;452:8186;445:4;6338:517;6388:13;;;;;6695:29;;;;:::i;:::-;452:8186;6338:517;;6384:457;6783:11;;;;:::i;:::-;452:8186;405:1;;;;;;;;;;;;;;;6820:2;405:1;;6771:51;;;:::i;6300:17::-;;;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;6242:27;;;;;;;;;;452:8186;6242:27;;;;;;:::i;:::-;;;;;;;;;6019:21;;;452:8186;6019:21;;452:8186;6019:21;;;;;;452:8186;6019:21;;;:::i;:::-;;;452:8186;;;;;;;;:::i;:::-;;;;;;;;;;6019:21;;;;;;-1:-1:-1;6019:21:41;;452:8186;;;;;;-1:-1:-1;;452:8186:41;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;-1:-1:-1;452:8186:41;;;;;;;;;;;:::i;:::-;4477:22;;452:8186;;;;4602:9;452:8186;4473:353;;452:8186;;-1:-1:-1;;;452:8186:41;1829:53:32;;;4884:10:41;452:8186;1829:53:32;;452:8186:41;4904:4;452:8186;;;;;;;;;;;1829:53:32;;-1:-1:-1;;;;;452:8186:41;;;;1829:53:32;;;452:8186:41;;1829:53:32;:::i;:::-;;;:::i;:::-;452:8186:41;;-1:-1:-1;;;2200:39:32;;4904:4:41;452:8186;2200:39:32;;452:8186:41;4989:5;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;2200:39:32;;;;;;;;452:8186:41;2200:39:32;;;4473:353:41;2278:20:32;445:4:41;;;;;;;452:8186;;;;3411:47:32;452:8186:41;3411:47:32;;445:4:41;;;;3411:47:32;;452:8186:41;;;;;4989:5;452:8186;;3411:47:32;;452:8186:41;;;;;;3411:47:32;;;452:8186:41;3411:47:32;;:::i;:::-;8024:25;;;;;;;;;:::i;:::-;8066:69;;;4473:353:41;8066:103:32;;;;4473:353:41;3473:45:32;3469:201;;4473:353:41;5039:9;;452:8186;;;;;;;;;;;;;;;;;;;;;;5107:236;;452:8186;;;;:::i;:::-;;;;5107:236;;452:8186;;;;;;;;;;;5107:236;;452:8186;;5107:236;;452:8186;;;;;;;;;;;;;:::i;:::-;;;;;5107:236;;452:8186;;;;;;;;;:::i;:::-;4904:4;452:8186;;;5357:201;;;452:8186;4884:10;452:8186;5357:201;;452:8186;;;5357:201;;452:8186;445:4;5591:15;445:4;5591:15;;;445:4;;;;;452:8186;;;;;445:4;;;;;;;;5083:553;;452:8186;;5083:553;;445:4;;;;;;452:8186;445:4;452:8186;;;:::i;:::-;445:4;;;;;-1:-1:-1;;;;;452:8186:41;;;445:4;;;452:8186;;5107:236;;;;445:4;452:8186;445:4;;;452:8186;445:4;;;;452:8186;445:4;452:8186;445:4;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;452:8186:41;;;;445:4;;452:8186;445:4;;;;452:8186;;445:4;;;;;;;;452:8186;445:4;;;452:8186;445:4;;;;;452:8186;;445:4;;;;;;;;;452:8186;445:4;;;452:8186;5083:553;452:8186;-1:-1:-1;4989:5:41;-1:-1:-1;;;;;452:8186:41;5083:553;;;;;;;452:8186;5083:553;;;4473:353;452:8186;;;5674:9;445:4;;;;;;;452:8186;;5707:57;452:8186;;;;;;;5707:57;;:::i;:::-;452:8186;;;5693:71;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5083:553;;;;;;;;;;;;;;;;:::i;:::-;;;445:4;;;;;5083:553;;;;;;;;452:8186;;;;;;;;;;;;3469:201:32;452:8186:41;;-1:-1:-1;;;452:8186:41;3561:43:32;;;4989:5:41;-1:-1:-1;;;;;452:8186:41;;3561:43:32;;452:8186:41;-1:-1:-1;452:8186:41;;;;;;;;3561:43:32;;3646:12;;452:8186:41;3561:43:32;;;452:8186:41;;3561:43:32;:::i;:::-;;;:::i;:::-;3646:12;;:::i;:::-;3469:201;;;8066:103;8139:26;;;:30;;8066:103;;:69;452:8186:41;;8078:22:32;;;-1:-1:-1;8078:56:32;;;;8066:69;;;;;;8078:56;8104:30;;;452:8186:41;8104:30:32;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;;452:8186:41;2200:39:32;;452:8186:41;2200:39:32;;;;;;445:4:41;2200:39:32;;;:::i;:::-;;;445:4:41;;;;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;4473:353:41;452:8186;;4717:59;452:8186;;4717:59;;;;:::i;:::-;-1:-1:-1;;4798:17:41;;4473:353;;452:8186;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;7962:20;7944:38;;;:::i;:::-;452:8186;8010:19;7992:37;;;:::i;:::-;452:8186;;;8010:19;452:8186;;;;8057:24;452:8186;;;;;;8057:24;452:8186;;;;8109:21;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7962:20;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;452:8186:41;;;;-1:-1:-1;;;8579:50:41;;452:8186;;8579:50;;452:8186;;;;;;;;;;;;8579:50;;;452:8186;;;;-1:-1:-1;;;;;452:8186:41;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;452:8186:41;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;7962:20;452:8186;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;;;;;;:::o;:::-;;-1:-1:-1;452:8186:41;;;:::o;445:4::-;452:8186;;;;;;;445:4;452:8186;;445:4;;452:8186;;;445:4;-1:-1:-1;445:4:41;;;;;;452:8186;;-1:-1:-1;;452:8186:41;445:4;;;:::o;452:8186::-;;;-1:-1:-1;;;;;452:8186:41;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;445:4;452:8186;:::o;:::-;445:4;;452:8186;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;2838:1;452:8186;;;-1:-1:-1;;452:8186:41;;-1:-1:-1;452:8186:41;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;-1:-1:-1;452:8186:41;;;;-1:-1:-1;452:8186:41;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;2590:1081;;;;2811:29;;:::i;:::-;452:8186;;;;;;;:::i;:::-;;;-1:-1:-1;2865:176:41;;;452:8186;2838:1;452:8186;2865:176;;452:8186;2865:176;;;452:8186;;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;2865:176;;;452:8186;2850:191;;;:::i;:::-;;;;;:::i;:::-;;452:8186;;;;;;;;:::i;:::-;3091:1;452:8186;;-1:-1:-1;;452:8186:41;;;;;;;;;3103:21;;;:::i;:::-;-1:-1:-1;;;;;452:8186:41;;;;;3134:20;;;:::i;:::-;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;;:::i;:::-;3245:10;452:8186;;-1:-1:-1;3201:187:41;;;452:8186;3245:10;452:8186;3201:187;;452:8186;-1:-1:-1;3201:187:41;;;452:8186;;;;;;;:::i;:::-;3091:1;452:8186;;;;;;;;;-1:-1:-1;;;3522:95:41;;452:8186;;;;;3522:95;;;;;;2838:1;3522:95;;;445:4;452:8186;;;;;;;;;;;;;;;;3522:95;452:8186;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;:::i;:::-;445:4;;-1:-1:-1;;;;;452:8186:41;;;;;;;445:4;;;;452:8186;;445:4;;;;;;;;452:8186;445:4;;;452:8186;445:4;;;;;452:8186;;445:4;;;;;452:8186;3522:95;452:8186;;3522:5;-1:-1:-1;;;;;452:8186:41;3522:95;;;;;;3649:14;3522:95;-1:-1:-1;3522:95:41;;;452:8186;3649:14;;:::i;:::-;452:8186;2590:1081;:::o;3522:95::-;;;;;;-1:-1:-1;3522:95:41;;;;;;:::i;:::-;;;;;:::i;:::-;;;;452:8186;;;;;;;;2838:1;452:8186;;;;;;;;;;;;;;;;;;2865:176;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:176;452:8186;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1250:1334;;;452:8186;;:::i;:::-;;1483:29;;:::i;:::-;452:8186;;;;;;;:::i;:::-;;;-1:-1:-1;1537:177:41;;;452:8186;1510:1;452:8186;1537:177;;452:8186;1537:177;;;452:8186;;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;1537:177;;;452:8186;1522:192;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;;;;;;;:::i;:::-;1764:1;452:8186;;-1:-1:-1;;452:8186:41;;;;;;;;;1776:21;;;:::i;:::-;-1:-1:-1;;;;;452:8186:41;;;;;1807:20;;;:::i;:::-;-1:-1:-1;;;;;452:8186:41;;;;;;;;;;;:::i;:::-;1918:10;452:8186;;-1:-1:-1;1874:187:41;;;452:8186;1918:10;452:8186;1874:187;;452:8186;-1:-1:-1;1874:187:41;;;452:8186;;;;;;;:::i;:::-;1764:1;452:8186;;;;;;;;;-1:-1:-1;;;2195:94:41;;452:8186;;;;;2195:94;;;;-1:-1:-1;2195:94:41;;;445:4;452:8186;;;;;;;;;;;;;;;;2195:94;452:8186;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;;;;;;;;-1:-1:-1;452:8186:41;;;;;;;;;;;;:::i;:::-;2195:94;452:8186;;2195:5;-1:-1:-1;;;;;452:8186:41;2195:94;;;;;;;-1:-1:-1;2195:94:41;;;452:8186;2536:14;;;;:::i;:::-;452:8186;;-1:-1:-1;;;452:8186:41;;;;2561:14;;;:::i;:::-;452:8186;;;;;;;;:::i;:::-;-1:-1:-1;452:8186:41;;;2518:59;;452:8186;1250:1334;:::o;2195:94::-;;;;;;;-1:-1:-1;2195:94:41;;;;;;:::i;:::-;;;;;452:8186;;1510:1;452:8186;;;;;;;;;;;;;;;;;;;;;;1537:177;452:8186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:177;452:8186;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7001:310;452:8186;;-1:-1:-1;;;7169:18:41;;452:8186;7169:18;;452:8186;;7169:18;;452:8186;;-1:-1:-1;;;;;452:8186:41;7169:18;;452:8186;;7169:18;;;7001:310;-1:-1:-1;7165:140:41;;-1:-1:-1;;;4798:17:41;7270:24::o;7165:140::-;7226:12;:::o;7169:18::-;;;;;;;;;;;;;;445:4;7169:18;;;:::i;:::-;;;445:4;;;;;7169:18;;;;;;;-1:-1:-1;7169:18:41;;7317:413;452:8186;;-1:-1:-1;;;7486:22:41;;-1:-1:-1;;;;;452:8186:41;;;;;7486:22;452:8186;7486:22;452:8186;;7486:22;;452:8186;;7486:22;;;7317:413;7482:99;;;452:8186;7486:22;;452:8186;;;445:4;;;;;;;7594:23;;;;452:8186;;7594:23;;;7590:100;;;-1:-1:-1;;;4798:17:41;7317:413::o;7482:99::-;7548:13;;;:::o;7486:22::-;;;;;;;;;;;;;;445:4;7486:22;;;:::i;:::-;;;445:4;;;;;7486:22;;;;;;;-1:-1:-1;7486:22:41;;452:8186;;;;;;;;;;;;;;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;452:8186:41;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;452:8186:41;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;452:8186:41;;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;452:8186:41;;;;;;;;;;;;;;;;;;;-1:-1:-1;;452:8186:41;;;;;:::i;:::-;;;;-1:-1:-1;452:8186:41;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;452:8186:41;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;452:8186:41;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;452:8186:41;;;;4917:24:33;452:8186:41;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"53937":[{"start":161,"length":32},{"start":829,"length":32},{"start":1588,"length":32},{"start":1697,"length":32},{"start":2130,"length":32},{"start":2344,"length":32},{"start":4238,"length":32},{"start":4785,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getSellAmount(bytes32,address,address,uint256)":"ba9285fe","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","priceSingle(bytes32,address,address,uint256)":"e357d6f9","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"vault_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"buyAmount\",\"type\":\"uint256\"}],\"name\":\"getSellAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"calculatedPrices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"}],\"name\":\"priceSingle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"calculatedPrice\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Balancer V2 does not support enumerating pools, they have to be indexed off-chain.\"},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"calculatedPrices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"priceSingle(bytes32,address,address,uint256)\":{\"details\":\"The resulting price is not scaled by the token decimals. Also this function is not 'view' because Balancer V2 simulates the swap and then returns the amount diff in revert data.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellAmount\":\"The amount of tokens being sold.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"calculatedPrice\":\"The price of the buy token in terms of the sell as a Fraction struct.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"priceSingle(bytes32,address,address,uint256)\":{\"notice\":\"Calculate the price of the buy token in terms of the sell token.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v2/BalancerV2SwapAdapter.sol\":\"BalancerV2SwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v2/BalancerV2SwapAdapter.sol\":{\"keccak256\":\"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb\",\"dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"vault_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256","name":"buyAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getSellAmount","outputs":[{"internalType":"uint256","name":"sellAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"calculatedPrices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256","name":"sellAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"priceSingle","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"calculatedPrice","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Balancer V2 does not support enumerating pools, they have to be indexed off-chain."},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"calculatedPrices":"array of prices as fractions corresponding to the provided amounts."}},"priceSingle(bytes32,address,address,uint256)":{"details":"The resulting price is not scaled by the token decimals. Also this function is not 'view' because Balancer V2 simulates the swap and then returns the amount diff in revert data.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellAmount":"The amount of tokens being sold.","sellToken":"The token being sold."},"returns":{"calculatedPrice":"The price of the buy token in terms of the sell as a Fraction struct."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"priceSingle(bytes32,address,address,uint256)":{"notice":"Calculate the price of the buy token in terms of the sell token."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v2/BalancerV2SwapAdapter.sol":"BalancerV2SwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v2/BalancerV2SwapAdapter.sol":{"keccak256":"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7","urls":["bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb","dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":41} \ No newline at end of file diff --git a/evm/out/BalancerV2SwapAdapter.sol/IPool.json b/evm/out/BalancerV2SwapAdapter.sol/IPool.json deleted file mode 100644 index 260b5e0..0000000 --- a/evm/out/BalancerV2SwapAdapter.sol/IPool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getActualSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBptIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVirtualSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getActualSupply()":"876f303b","getBptIndex()":"82687a56","getVirtualSupply()":"de82cd34"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getActualSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBptIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVirtualSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v2/BalancerV2SwapAdapter.sol\":\"IPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v2/BalancerV2SwapAdapter.sol\":{\"keccak256\":\"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb\",\"dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getActualSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBptIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getVirtualSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v2/BalancerV2SwapAdapter.sol":"IPool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v2/BalancerV2SwapAdapter.sol":{"keccak256":"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7","urls":["bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb","dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":41} \ No newline at end of file diff --git a/evm/out/BalancerV2SwapAdapter.sol/IVault.json b/evm/out/BalancerV2SwapAdapter.sol/IVault.json deleted file mode 100644 index 4f0f60f..0000000 --- a/evm/out/BalancerV2SwapAdapter.sol/IVault.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"batchSwap","inputs":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"swaps","type":"tuple[]","internalType":"struct IVault.BatchSwapStep[]","components":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"assetInIndex","type":"uint256","internalType":"uint256"},{"name":"assetOutIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"userData","type":"bytes","internalType":"bytes"}]},{"name":"assets","type":"address[]","internalType":"address[]"},{"name":"funds","type":"tuple","internalType":"struct IVault.FundManagement","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"fromInternalBalance","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"toInternalBalance","type":"bool","internalType":"bool"}]},{"name":"limits","type":"int256[]","internalType":"int256[]"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assetDeltas","type":"int256[]","internalType":"int256[]"}],"stateMutability":"payable"},{"type":"function","name":"deregisterTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exitPool","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"request","type":"tuple","internalType":"struct IVault.ExitPoolRequest","components":[{"name":"assets","type":"address[]","internalType":"address[]"},{"name":"minAmountsOut","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"},{"name":"toInternalBalance","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"flashLoan","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActionId","inputs":[{"name":"selector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getAuthorizer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDomainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getInternalBalance","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"balances","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getNextNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPausedState","inputs":[],"outputs":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"pauseWindowEndTime","type":"uint256","internalType":"uint256"},{"name":"bufferPeriodEndTime","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getPoolTokenInfo","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"cash","type":"uint256","internalType":"uint256"},{"name":"managed","type":"uint256","internalType":"uint256"},{"name":"lastChangeBlock","type":"uint256","internalType":"uint256"},{"name":"assetManager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"balances","type":"uint256[]","internalType":"uint256[]"},{"name":"lastChangeBlock","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFeesCollector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"hasApprovedRelayer","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinPool","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"request","type":"tuple","internalType":"struct IVault.JoinPoolRequest","components":[{"name":"assets","type":"address[]","internalType":"address[]"},{"name":"maxAmountsIn","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"},{"name":"fromInternalBalance","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"managePoolBalance","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct IVault.PoolBalanceOp[]","components":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"manageUserBalance","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct IVault.UserBalanceOp[]","components":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"queryBatchSwap","inputs":[{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"swaps","type":"tuple[]","internalType":"struct IVault.BatchSwapStep[]","components":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"assetInIndex","type":"uint256","internalType":"uint256"},{"name":"assetOutIndex","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"userData","type":"bytes","internalType":"bytes"}]},{"name":"assets","type":"address[]","internalType":"address[]"},{"name":"funds","type":"tuple","internalType":"struct IVault.FundManagement","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"fromInternalBalance","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"toInternalBalance","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerPool","inputs":[{"name":"specialization","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"tokens","type":"address[]","internalType":"address[]"},{"name":"assetManagers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthorizer","inputs":[{"name":"newAuthorizer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaused","inputs":[{"name":"paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRelayerApproval","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"relayer","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"singleSwap","type":"tuple","internalType":"struct IVault.SingleSwap","components":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"kind","type":"uint8","internalType":"enum IVault.SwapKind"},{"name":"assetIn","type":"address","internalType":"address"},{"name":"assetOut","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"userData","type":"bytes","internalType":"bytes"}]},{"name":"funds","type":"tuple","internalType":"struct IVault.FundManagement","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"fromInternalBalance","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"toInternalBalance","type":"bool","internalType":"bool"}]},{"name":"limit","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"event","name":"AuthorizerChanged","inputs":[{"name":"newAuthorizer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExternalBalanceTransfer","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FlashLoan","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"InternalBalanceChanged","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"delta","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"PausedStateChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PoolBalanceChanged","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidityProvider","type":"address","indexed":true,"internalType":"address"},{"name":"tokens","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deltas","type":"int256[]","indexed":false,"internalType":"int256[]"},{"name":"protocolFeeAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"PoolBalanceManaged","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"assetManager","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"cashDelta","type":"int256","indexed":false,"internalType":"int256"},{"name":"managedDelta","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"PoolRegistered","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"poolAddress","type":"address","indexed":true,"internalType":"address"},{"name":"specialization","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayerApprovalChanged","inputs":[{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensDeregistered","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"tokens","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"TokensRegistered","inputs":[{"name":"poolId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"tokens","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"assetManagers","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WETH()":"ad5c4648","batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool),int256[],uint256)":"945bcec9","deregisterTokens(bytes32,address[])":"7d3aeb96","exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))":"8bdb3913","flashLoan(address,address[],uint256[],bytes)":"5c38449e","getActionId(bytes4)":"851c1bb3","getAuthorizer()":"aaabadc5","getDomainSeparator()":"ed24911d","getInternalBalance(address,address[])":"0f5a6efa","getNextNonce(address)":"90193b7c","getPausedState()":"1c0de051","getPool(bytes32)":"f6c00927","getPoolTokenInfo(bytes32,address)":"b05f8e48","getPoolTokens(bytes32)":"f94d4668","getProtocolFeesCollector()":"d2946c2b","hasApprovedRelayer(address,address)":"fec90d72","joinPool(bytes32,address,address,(address[],uint256[],bytes,bool))":"b95cac28","managePoolBalance((uint8,bytes32,address,uint256)[])":"e6c46092","manageUserBalance((uint8,address,uint256,address,address)[])":"0e8e3e84","queryBatchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool))":"f84d066e","registerPool(uint8)":"09b2760f","registerTokens(bytes32,address[],address[])":"66a9c7d2","setAuthorizer(address)":"058a628f","setPaused(bool)":"16c38b3c","setRelayerApproval(address,address,bool)":"fa6e671d","swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)":"52bbbe29"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAuthorizer\",\"type\":\"address\"}],\"name\":\"AuthorizerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ExternalBalanceTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"FlashLoan\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\"}],\"name\":\"InternalBalanceChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"liquidityProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"deltas\",\"type\":\"int256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"protocolFeeAmounts\",\"type\":\"uint256[]\"}],\"name\":\"PoolBalanceChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assetManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"cashDelta\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"managedDelta\",\"type\":\"int256\"}],\"name\":\"PoolBalanceManaged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"specialization\",\"type\":\"uint8\"}],\"name\":\"PoolRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"RelayerApprovalChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"TokensDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"assetManagers\",\"type\":\"address[]\"}],\"name\":\"TokensRegistered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"assetInIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"assetOutIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"internalType\":\"struct IVault.BatchSwapStep[]\",\"name\":\"swaps\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"fromInternalBalance\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"toInternalBalance\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.FundManagement\",\"name\":\"funds\",\"type\":\"tuple\"},{\"internalType\":\"int256[]\",\"name\":\"limits\",\"type\":\"int256[]\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"batchSwap\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"assetDeltas\",\"type\":\"int256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"deregisterTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"minAmountsOut\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"toInternalBalance\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.ExitPoolRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"exitPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"getActionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getInternalBalance\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNextNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPausedState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"pauseWindowEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bufferPeriodEndTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPoolTokenInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"managed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastChangeBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"assetManager\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getPoolTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"lastChangeBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProtocolFeesCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"hasApprovedRelayer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"maxAmountsIn\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"fromInternalBalance\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.JoinPoolRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"joinPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IVault.PoolBalanceOp[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"managePoolBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct IVault.UserBalanceOp[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"manageUserBalance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"assetInIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"assetOutIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"internalType\":\"struct IVault.BatchSwapStep[]\",\"name\":\"swaps\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"fromInternalBalance\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"toInternalBalance\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.FundManagement\",\"name\":\"funds\",\"type\":\"tuple\"}],\"name\":\"queryBatchSwap\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"specialization\",\"type\":\"uint8\"}],\"name\":\"registerPool\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"assetManagers\",\"type\":\"address[]\"}],\"name\":\"registerTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthorizer\",\"type\":\"address\"}],\"name\":\"setAuthorizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setRelayerApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IVault.SwapKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assetIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"internalType\":\"struct IVault.SingleSwap\",\"name\":\"singleSwap\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"fromInternalBalance\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"toInternalBalance\",\"type\":\"bool\"}],\"internalType\":\"struct IVault.FundManagement\",\"name\":\"funds\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"queryBatchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool))\":{\"details\":\"Simulates a call to `batchSwap`, returning an array of Vault asset deltas. Calls to `swap` cannot be simulated directly, but an equivalent `batchSwap` call can and will yield the exact same result. Each element in the array corresponds to the asset at the same index, and indicates the number of tokens (or ETH) the Vault would take from the sender (if positive) or send to the recipient (if negative). The arguments it receives are the same that an equivalent `batchSwap` call would receive. Unlike `batchSwap`, this function performs no checks on the sender or recipient field in the `funds` struct. This makes it suitable to be called by off-chain applications via eth_call without needing to hold tokens, approve them for the Vault, or even know a user's address. Note that this function is not 'view' (due to implementation details): the client code must explicitly execute eth_call instead of eth_sendTransaction.\"},\"swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)\":{\"details\":\"Performs a swap with a single Pool. If the swap is 'given in' (the number of tokens to send to the Pool is known), it returns the amount of tokens taken from the Pool, which must be greater than or equal to `limit`. If the swap is 'given out' (the number of tokens to take from the Pool is known), it returns the amount of tokens sent to the Pool, which must be less than or equal to `limit`. Internal Balance usage and the recipient are determined by the `funds` struct. Emits a `Swap` event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v2/BalancerV2SwapAdapter.sol\":\"IVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v2/BalancerV2SwapAdapter.sol\":{\"keccak256\":\"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb\",\"dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"newAuthorizer","type":"address","indexed":true}],"type":"event","name":"AuthorizerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ExternalBalanceTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":false}],"type":"event","name":"FlashLoan","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"int256","name":"delta","type":"int256","indexed":false}],"type":"event","name":"InternalBalanceChanged","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStateChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address","name":"liquidityProvider","type":"address","indexed":true},{"internalType":"address[]","name":"tokens","type":"address[]","indexed":false},{"internalType":"int256[]","name":"deltas","type":"int256[]","indexed":false},{"internalType":"uint256[]","name":"protocolFeeAmounts","type":"uint256[]","indexed":false}],"type":"event","name":"PoolBalanceChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address","name":"assetManager","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"int256","name":"cashDelta","type":"int256","indexed":false},{"internalType":"int256","name":"managedDelta","type":"int256","indexed":false}],"type":"event","name":"PoolBalanceManaged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address","name":"poolAddress","type":"address","indexed":true},{"internalType":"uint8","name":"specialization","type":"uint8","indexed":false}],"type":"event","name":"PoolRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"relayer","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"RelayerApprovalChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address","name":"tokenIn","type":"address","indexed":true},{"internalType":"address","name":"tokenOut","type":"address","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address[]","name":"tokens","type":"address[]","indexed":false}],"type":"event","name":"TokensDeregistered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32","indexed":true},{"internalType":"address[]","name":"tokens","type":"address[]","indexed":false},{"internalType":"address[]","name":"assetManagers","type":"address[]","indexed":false}],"type":"event","name":"TokensRegistered","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"struct IVault.BatchSwapStep[]","name":"swaps","type":"tuple[]","components":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"uint256","name":"assetInIndex","type":"uint256"},{"internalType":"uint256","name":"assetOutIndex","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"}]},{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"struct IVault.FundManagement","name":"funds","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bool","name":"fromInternalBalance","type":"bool"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"toInternalBalance","type":"bool"}]},{"internalType":"int256[]","name":"limits","type":"int256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"batchSwap","outputs":[{"internalType":"int256[]","name":"assetDeltas","type":"int256[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"deregisterTokens"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct IVault.ExitPoolRequest","name":"request","type":"tuple","components":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"minAmountsOut","type":"uint256[]"},{"internalType":"bytes","name":"userData","type":"bytes"},{"internalType":"bool","name":"toInternalBalance","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"exitPool"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flashLoan"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"getActionId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAuthorizer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"getInternalBalance","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getNextNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPausedState","outputs":[{"internalType":"bool","name":"paused","type":"bool"},{"internalType":"uint256","name":"pauseWindowEndTime","type":"uint256"},{"internalType":"uint256","name":"bufferPeriodEndTime","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolTokenInfo","outputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"managed","type":"uint256"},{"internalType":"uint256","name":"lastChangeBlock","type":"uint256"},{"internalType":"address","name":"assetManager","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getPoolTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256","name":"lastChangeBlock","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getProtocolFeesCollector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"hasApprovedRelayer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct IVault.JoinPoolRequest","name":"request","type":"tuple","components":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"maxAmountsIn","type":"uint256[]"},{"internalType":"bytes","name":"userData","type":"bytes"},{"internalType":"bool","name":"fromInternalBalance","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"joinPool"},{"inputs":[{"internalType":"struct IVault.PoolBalanceOp[]","name":"ops","type":"tuple[]","components":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"managePoolBalance"},{"inputs":[{"internalType":"struct IVault.UserBalanceOp[]","name":"ops","type":"tuple[]","components":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"payable","type":"function","name":"manageUserBalance"},{"inputs":[{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"struct IVault.BatchSwapStep[]","name":"swaps","type":"tuple[]","components":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"uint256","name":"assetInIndex","type":"uint256"},{"internalType":"uint256","name":"assetOutIndex","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"}]},{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"struct IVault.FundManagement","name":"funds","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bool","name":"fromInternalBalance","type":"bool"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"toInternalBalance","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"queryBatchSwap","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"uint8","name":"specialization","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerPool","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address[]","name":"assetManagers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTokens"},{"inputs":[{"internalType":"address","name":"newAuthorizer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthorizer"},{"inputs":[{"internalType":"bool","name":"paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"relayer","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setRelayerApproval"},{"inputs":[{"internalType":"struct IVault.SingleSwap","name":"singleSwap","type":"tuple","components":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"enum IVault.SwapKind","name":"kind","type":"uint8"},{"internalType":"address","name":"assetIn","type":"address"},{"internalType":"address","name":"assetOut","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"}]},{"internalType":"struct IVault.FundManagement","name":"funds","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bool","name":"fromInternalBalance","type":"bool"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"toInternalBalance","type":"bool"}]},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"queryBatchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool))":{"details":"Simulates a call to `batchSwap`, returning an array of Vault asset deltas. Calls to `swap` cannot be simulated directly, but an equivalent `batchSwap` call can and will yield the exact same result. Each element in the array corresponds to the asset at the same index, and indicates the number of tokens (or ETH) the Vault would take from the sender (if positive) or send to the recipient (if negative). The arguments it receives are the same that an equivalent `batchSwap` call would receive. Unlike `batchSwap`, this function performs no checks on the sender or recipient field in the `funds` struct. This makes it suitable to be called by off-chain applications via eth_call without needing to hold tokens, approve them for the Vault, or even know a user's address. Note that this function is not 'view' (due to implementation details): the client code must explicitly execute eth_call instead of eth_sendTransaction."},"swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)":{"details":"Performs a swap with a single Pool. If the swap is 'given in' (the number of tokens to send to the Pool is known), it returns the amount of tokens taken from the Pool, which must be greater than or equal to `limit`. If the swap is 'given out' (the number of tokens to take from the Pool is known), it returns the amount of tokens sent to the Pool, which must be less than or equal to `limit`. Internal Balance usage and the recipient are determined by the `funds` struct. Emits a `Swap` event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v2/BalancerV2SwapAdapter.sol":"IVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v2/BalancerV2SwapAdapter.sol":{"keccak256":"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7","urls":["bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb","dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":41} \ No newline at end of file diff --git a/evm/out/BalancerV2SwapAdapter.t.sol/BalancerV2SwapAdapterTest.json b/evm/out/BalancerV2SwapAdapter.t.sol/BalancerV2SwapAdapterTest.json deleted file mode 100644 index 0087cec..0000000 --- a/evm/out/BalancerV2SwapAdapter.t.sol/BalancerV2SwapAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testBalancerV2PoolBehaviour","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetCapabilitiesFuzz","inputs":[{"name":"pool","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimits","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetPoolIds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPrice","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceDecreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceSingleFuzz","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzz","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f516020618dec5f395f51905f52915b600482106100f757604051618ab690816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f516020618dec5f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610200806040526004361015610013575f80fd5b5f905f3560e01c90816308c4174514613a3b575080630a9254e414613600578063111f339214612f7f5780631ed7831c14612f015780632ade388014612d425780633e5e3c2314612cc45780633f7286f414612c465780634a36e37214612a7157806353e5d760146127d757806366d9a9a0146126295780637f55213e146118125780638335a17f146116a957806385226c81146116175780638f1ed4c614611490578063916a17c61461120457806399cef81b146110b0578063a00872f114611044578063a2121ee514610fee578063b5508aa914610f55578063ba414fa614610f30578063d170c3cc14610e8e578063d3479a0114610dc8578063e20c9f7114610d3a578063e865164514610aea578063fa7626d414610ac75763fe3ee58b1461013d575f80fd5b3461085b578060031936011261085b57604051610ca061015d8183613aaa565b60648252601f1901366020830137610173613eb1565b90825b60648110610231575050815b6063811061018e578280f35b6101988183613f2c565b5151600182019081831161021d57610210826101c6610217936101be6001979689613f2c565b515190614523565b6101ed60206101d58689613f2c565b51015160206101e4848a613f2c565b51015190614523565b6040610207816101fd878a613f2c565b5101519288613f2c565b5101519061457e565b850b6145bc565b01610182565b634e487b7160e01b85526011600452602485fd5b6001810180821161021d5780600a0290600a82048103610a4157678ac7230489e800000290808204670de0b6b3a7640000149015171561021d576102758284613f2c565b52604051634b88b8ad60e11b815290602082600481885f516020618a015f395f51905f525af191821561071e578592610a94575b5060205485906040906102e5906001600160a01b03166102c98588613f2c565b51835194858094819363e357d6f960e01b835260048301613fc6565b03925af18015610757578690610a55575b61031c91506103146103088487613f2c565b51602083015190613d53565b905190613d7a565b8060011b9080820460021490151715610a4157858060405160208101906370a0823160e01b825230602482015260248152610358604482613aaa565b51905f516020618a415f395f51905f525afa5061038561037661608c565b60208082518301019101613e4f565b5061038e613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610a2d576103c38160016103dc9301600e55613c3f565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b601054906103fb6163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a20604051602081019061044d8161043f8888866163a7565b03601f198101835282613aaa565b5190208b5260205260ff600360408c2001541615610a1f575b6001600160a01b0384165f908152600d60205260409020908a5260205261043f61049f60408b20936040519283916020830195866163a7565b519020885260205286604081209160018301549260028101546104c28186613ef2565b6108d8575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa96871561075757869761089c575b506001908201610100031b5f1901811b198616915f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f516020618a015f395f51905f525af190811561088d578491610878575b50508461059c616577565b91901591821561086d575b505061077e575050505060206105f2916105bf61705e565b815460405163095ea7b360e01b81526001600160a01b039091166004820152602481019190915291829081906044820190565b0381895f516020618a415f395f51905f525af1801561075757610762575b506020546001600160a01b031660806106298386613f2c565b51604051638307c65560e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015260016064820152608481019190915291829060a49082908a905af1908115610757578691610729575b506106a48286613f2c565b526106af8185613f2c565b5060405191631135fc2960e21b83526004830152602082602481885f516020618a015f395f51905f525af191821561071e576001926106f0575b5001610176565b6107109060203d8111610717575b6107088183613aaa565b810190613f40565b505f6106e9565b503d6106fe565b6040513d87823e3d90fd5b61074a915060803d8111610750575b6107428183613aaa565b810190613f80565b5f610699565b503d610738565b6040513d88823e3d90fd5b6107799060203d8111610717576107088183613aaa565b610610565b82945054905f516020618a015f395f51905f523b15610869576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020618a015f395f51905f525af1801561085e57610846575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610851828092613aaa565b61085b57806107e5565b80fd5b6040513d84823e3d90fd5b8280fd5b14159050855f6105a7565b8161088291613aaa565b61086957825f610591565b6040513d86823e3d90fd5b8580fd5b955095506020853d82116108d0575b816108b860209383613aaa565b810103126108cc579351948b949081610514565b5f80fd5b3d91506108ab565b909192506108e68185613ef2565b610100036101008111610a0b5760ff8111610a0b5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020618a015f395f51905f525afa9283156109fe5760209382606a926109a194926109da575b506040519586925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613aaa565b8610156109b25750908992916104c7565b60405162461bcd60e51b8152602060048201529081906109d6906024830190613b0d565b0390fd5b6109f79192503d8084833e6109ef8183613aaa565b810190613ded565b905f610942565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610a27616794565b50610466565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b86526011600452602486fd5b5060403d8111610a8d575b610a6a8183613aaa565b810190604081830312610a895761031c91610a8491613f58565b6102f6565b8680fd5b503d610a60565b9091506020813d8211610abf575b81610aaf60209383613aaa565b810103126108cc5751905f6102a9565b3d9150610aa2565b503461085b578060031936011261085b57602060ff601e54166040519015158152f35b503461085b578060031936011261085b5760205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f5260448201526001600160a01b039091169082908181606481865afa90811561085e578291610d18575b505f516020618a015f395f51905f523b15610cf457604051632631f2b160e11b81526001600482015282816024815f516020618a015f395f51905f525afa908115610d0d578391610cf8575b5050610bbf90613eff565b5168056bc75e2d63100000105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e57610cdf575b50506040805163e357d6f960e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015268056bc75e2d631000006064820152918290608490829086905af190811561085e578291610c9f575b50602081610c95610c9c935161460c565b015161460c565b80f35b905060403d604011610cd8575b610cb68183613aaa565b810160408282031261086957610cd1602091610c9c93613f58565b9150610c84565b503d610cac565b81610ce991613aaa565b610cf457815f610c12565b5080fd5b81610d0291613aaa565b610cf457815f610bb4565b6040513d85823e3d90fd5b610d3491503d8084833e610d2c8183613aaa565b8101906140ad565b5f610b68565b503461085b578060031936011261085b5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610da957610da585610d9981870382613aaa565b60405191829182613acb565b0390f35b82546001600160a01b0316845260209093019260019283019201610d82565b503461085b578060031936011261085b5760205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561085e57610c9c91610e67918491610e74575b50610e5b6002825114614508565b610e6f610e6782613eff565b511515614508565b613f0c565b610e8891503d8086833e610d2c8183613aaa565b5f610e4d565b503461085b57604036600319011261085b57600435906001600160a01b038216820361085b576024356001600160401b038111610cf45736602382011215610cf457806004013592610edf84613d3c565b91610eed6040519384613aaa565b8483526024602084019560051b82010190368211610f2c57602401945b818610610f1c5784610c9c8585614386565b8535815260209586019501610f0a565b8480fd5b503461085b578060031936011261085b576020610f4b6142eb565b6040519015158152f35b503461085b578060031936011261085b57601954610f7281613d3c565b91610f806040519384613aaa565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610fc25760405180610da58782613be0565b600160208192604051610fe081610fd98189613cbb565b0382613aaa565b815201920192019190610fad565b503461085b578060031936011261085b57610c9c604051611010604082613aaa565b60018152602036818301375f5160206189e15f395f51905f5261103282613eff565b526020546001600160a01b0316614386565b503461085b57602036600319011261085b57600435601f54811015610cf45761106c90613c6b565b91909161109c57604051610da59061108881610fd98187613cbb565b604051918291602083526020830190613b0d565b634e487b7160e01b81526004819052602490fd5b503461085b578060031936011261085b5780604051631d04569d60e21b602082015260206024820152602060448201527f42616c616e636572563253776170416461707465722e676574506f6f6c496473606482015260648152611115608482613aaa565b5f516020618a015f395f51905f523b156112015781611150916040518093819263f28dceb360e01b8352602060048401526024830190613b0d565b0381835f516020618a015f395f51905f525af1801561085e576111ec575b506020546040516323eeca0160e01b81526064600482015260c860248201529190829060449082906001600160a01b03165afa801561085e576111af575080f35b3d8083833e6111be8183613aaa565b81016020828203126108695781516001600160401b0381116111e8576111e4920161428e565b5080f35b8380fd5b816111f691613aaa565b61085b57805f61116e565b50fd5b503461085b578060031936011261085b57601c5461122181613d3c565b9061122f6040519283613aaa565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106112725760405180610da58782613b31565b60405161127e81613a74565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106113f157846001979460029794602097946113099454918181106113d5575b8181106113b9575b81811061139d575b818110611381575b818110611365575b818110611349575b81811061132f575b1061131b575b500382613aaa565b8382015281520192019201919061125d565b6001600160e01b031916815286015f611301565b828a1b6001600160e01b0319168452928901928b016112fb565b604083901b6001600160e01b0319168452928901928b016112f3565b606083901b6001600160e01b0319168452928901928b016112eb565b608083901b6001600160e01b0319168452928901928b016112e3565b60a083901b6001600160e01b0319168452928901928b016112db565b60c083901b6001600160e01b0319168452928901928b016112d3565b60e083901b6001600160e01b0319168452928901928b016112cb565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916112a6565b503461085b578060031936011261085b5760205460405163ecbbc03360e01b81525f5160206189e15f395f51905f52600482015282918290829060249082906001600160a01b03165afa90811561085e5782916115f5575b506001600160a01b036114fa82613eff565b51165f516020618a015f395f51905f523b156115f157604051906328a9b0fb60e11b825260048201525f516020618a415f395f51905f52602482015282816044815f516020618a015f395f51905f525afa908115610d0d5783916115dc575b506001600160a01b039161156d9150613f0c565b51165f516020618a015f395f51905f523b1561120157604051906328a9b0fb60e11b825260048201525f516020618a215f395f51905f52602482015281816044815f516020618a015f395f51905f525afa801561085e576115cb5750f35b816115d591613aaa565b61085b5780f35b816115e691613aaa565b61120157815f611559565b5050fd5b61161191503d8084833e6116098183613aaa565b810190614204565b5f6114e8565b503461085b578060031936011261085b57601a5461163481613d3c565b916116426040519384613aaa565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106116845760405180610da58782613be0565b60016020819260405161169b81610fd98189613cbb565b81520192019201919061166f565b503461085b578060031936011261085b57604051906116c9606083613aaa565b60028252602082019181906040368537670de0b6b3a76400006116eb82613eff565b52671bc16d674ec800006116fe82613f0c565b5260205460405163155adc9160e31b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015260806064820152915160848301819052919485926001600160a01b039092169160a484019190855b8181106117f65750505083838281935003925af19182156109fe5781926117d2575b50805b82518110156111e457806117b56117ae60019386613f2c565b515161460c565b6117cc60206117c48387613f2c565b51015161460c565b01611795565b6117ef9192503d8084833e6117e78183613aaa565b810190614126565b905f611792565b8251845287965088955060209384019390920191600101611770565b503461085b57604036600319011261085b57600435602435801515810361086957156126235760015b5f516020618a015f395f51905f523b1561086957604051632631f2b160e11b81528215156004820152839081816024815f516020618a015f395f51905f525afa801561085e5761260e575b5060205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f5260448201529190829060649082906001600160a01b03165afa90811561088d5784916125f4575b5060028210156125e057836001831491825f1461213f5761191290613f0c565b5184105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e5761212a575b508060405160208101906370a0823160e01b825230602482015260248152611985604482613aaa565b51905f516020618a415f395f51905f525afa506119a361037661608c565b506119ac613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612116576103c38160016119e19301600e55613c3f565b905560018060a01b0360115416600f5460e01b60105490611a006163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190611a448161043f8888866163a7565b519020895260205260ff600360408a2001541615612108575b6001600160a01b0384165f908152600d6020526040902090885260205261043f611a9660408920936040519283916020830195866163a7565b51902086526020528460408120916001830154926002810154611ab98186613ef2565b611ff2578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715610757578697611fb9575b506001908201610100031b5f1901811b1986165f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020618a015f395f51905f525af190811561088d578491611fa4575b5050611b8e616577565b9015908115611f98575b5061077e5750505050611ba961705e565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f516020618a415f395f51905f525af1801561071e57611f79575b505b6040516370a0823160e01b8152306004820152926020846024815f516020618a415f395f51905f525afa93841561071e578594611f45575b506040516370a0823160e01b8152306004820152916020836024815f516020618a215f395f51905f525afa928315610757578693611f11575b50602054604051638307c65560e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f526044820152606481019590955260848501839052608090859060a49082908a906001600160a01b03165af1938415610757578694611ef0575b508351611cee578580f35b15611df5576040516370a0823160e01b81523060048201526020816024815f516020618a215f395f51905f525afa908115610757578691611dc1575b50611d3e92611d3891613fb9565b9061465b565b516040516370a0823160e01b81523060048201526020816024815f516020618a415f395f51905f525afa90811561088d578491611d8d575b50611d3890611d8493613fb9565b5f808080808580f35b90506020813d602011611db9575b81611da860209383613aaa565b810103126108cc5751611d84611d76565b3d9150611d9b565b90506020813d602011611ded575b81611ddc60209383613aaa565b810103126108cc5751611d3e611d2a565b3d9150611dcf565b6040516370a0823160e01b81523060048201529193916020816024815f516020618a415f395f51905f525afa908115610757578691611ebc575b50611d3890611e3d93613fb9565b516040516370a0823160e01b81523060048201526020816024815f516020618a215f395f51905f525afa90811561088d578491611e88575b50611e8392611d3891613fb9565b611d84565b90506020813d602011611eb4575b81611ea360209383613aaa565b810103126108cc5751611e83611e75565b3d9150611e96565b90506020813d602011611ee8575b81611ed760209383613aaa565b810103126108cc5751611e3d611e2f565b3d9150611eca565b611f0a91945060803d608011610750576107428183613aaa565b925f611ce3565b9092506020813d602011611f3d575b81611f2d60209383613aaa565b810103126108cc5751915f611c65565b3d9150611f20565b9093506020813d602011611f71575b81611f6160209383613aaa565b810103126108cc5751925f611c2c565b3d9150611f54565b611f919060203d602011610717576107088183613aaa565b505f611bf2565b5f19141590505f611b98565b81611fae91613aaa565b61086957825f611b84565b955095506020853d602011611fea575b81611fd660209383613aaa565b810103126108cc5793519489949081611b0a565b3d9150611fc9565b611ffd849186613ef2565b6101000361010081116120f45760ff81116120f45760405163348051d760e11b8152600190911b600482015281816024815f516020618a015f395f51905f525afa90811561085e57606a602092846120b8936109d696926120d8575b506040519485925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282613aaa565b60405162461bcd60e51b8152602060048201529182916024830190613b0d565b6120ed9192503d8084833e6109ef8183613aaa565b9086612059565b634e487b7160e01b82526011600452602482fd5b612110616794565b50611a5d565b634e487b7160e01b85526041600452602485fd5b8161213491613aaa565b6111e857835f61195c565b61214890613eff565b5184105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e576125cb575b508060405160208101906370a0823160e01b8252306024820152602481526121bb604482613aaa565b51905f516020618a415f395f51905f525afa506121d961037661608c565b506121e2613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612116576103c38160016122179301600e55613c3f565b905560018060a01b0360115416600f5460e01b601054906122366163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061227a8161043f8888866163a7565b519020895260205260ff600360408a20015416156125bd575b6001600160a01b0384165f908152600d6020526040902090885260205261043f6122cc60408920936040519283916020830195866163a7565b519020865260205284604081209160018301549260028101546122ef8186613ef2565b6124ad575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715610757578697612474575b506001908201610100031b5f1901811b198616915f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020618a015f395f51905f525af190811561088d57849161245f575b5050866123c9616577565b919015918215612454575b505061077e57505050506123e661705e565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f516020618a415f395f51905f525af1801561071e57612435575b50611bf4565b61244d9060203d602011610717576107088183613aaa565b505f61242f565b14159050875f6123d4565b8161246991613aaa565b61086957825f6123be565b955095506020853d6020116124a5575b8161249160209383613aaa565b810103126108cc5793519489949081612341565b3d9150612484565b909192506124bb8185613ef2565b6101000361010081116125a95760ff81116125a95760405163348051d760e11b8152600190911b6004820181905289826024815f516020618a015f395f51905f525afa801561259e57606a612573916020948d91612584575b506040519485915f516020618a615f395f51905f52828401525f5160206189c15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283613aaa565b8810156109b25750908792916122f4565b61259891503d808f833e6109ef8183613aaa565b5f612514565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b6125c5616794565b50612293565b816125d591613aaa565b6111e857835f612192565b634e487b7160e01b84526021600452602484fd5b61260891503d8086833e610d2c8183613aaa565b5f6118f2565b8161261891613aaa565b61086957825f611886565b8161183b565b503461085b578060031936011261085b57601b5461264681613d3c565b906126546040519283613aaa565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106126975760405180610da58782613b31565b6040516126a381613a74565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061273857846001979460029794602097946127269454918181106113d5578181106113b95781811061139d5781811061138157818110611365578181106113495781811061132f571061131b57500382613aaa565b83820152815201920192019190612682565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916126cb565b503461085b57606036600319011261085b576024356001600160a01b0381168103610cf457816044356001600160a01b0381168103610cf4576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0394851660248201529184166044830152909283916064918391165afa90811561085e578291612a4f575b508181515f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526004602482015281816044815f516020618a015f395f51905f525afa801561085e57612a3a575b50506128bf6128ba82613eff565b61408c565b600a811015612a115782905f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526001602482015281816044815f516020618a015f395f51905f525afa801561085e57612a25575b50506129266128ba82613f0c565b600a811015612a115782905f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526002602482015281816044815f516020618a015f395f51905f525afa801561085e576129fc575b50506128ba61298d91613f1c565b600a8110156129e85781905f516020618a015f395f51905f523b15611201576040519063260a5b1560e21b825260048201526003602482015281816044815f516020618a015f395f51905f525afa801561085e576115cb5750f35b634e487b7160e01b82526021600452602482fd5b81612a0691613aaa565b610cf457815f61297f565b634e487b7160e01b83526021600452602483fd5b81612a2f91613aaa565b610cf457815f612918565b81612a4491613aaa565b610cf457815f6128ac565b612a6b91503d8084833e612a638183613aaa565b810190614009565b5f61285a565b503461085b578060031936011261085b57610ca0604051612a928282613aaa565b60648152601f19820180366020840137612aaf6040519384613aaa565b60648352835b818110612c23575050825b60648110612b34575050815b60638110612ad8578280f35b612ae28183613f2c565b51600182019081831161021d5760206117c483612b1a612b13612b2e95612b0c600199988b613f2c565b519061457e565b890b6145bc565b612b28836117c4878a613f2c565b86613f2c565b01612acc565b6001810180821161021d57806103e802906103e882048103610a4157683635c9adc5dea000000290808204670de0b6b3a7640000149015171561021d57908491612b7e8285613f2c565b52602054604090612bb8906001600160a01b0316612b9c8487613f2c565b51835195868094819363e357d6f960e01b835260048301613fc6565b03925af1801561071e578590612be9575b60019250612bd78286613f2c565b52612be28185613f2c565b5001612ac0565b5060403d8111612c1c575b612bfe8184613aaa565b82019160408184031261089857600192612c1791613f58565b612bc9565b503d612bf4565b602090604051612c3281613a74565b5f81525f8382015282828701015201612ab5565b503461085b578060031936011261085b5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612ca557610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612c8e565b503461085b578060031936011261085b5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612d2357610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612d0c565b503461085b578060031936011261085b57601d54612d5f81613d3c565b612d6c6040519182613aaa565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612e705786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612dd85786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612e4557505050505060208060019297019301930190928695949293612dcb565b9091929394602080612e63600193605f198782030189528951613b0d565b9701950193929101612e21565b604051612e7c81613a74565b82546001600160a01b03168152600183018054612e9881613d3c565b91612ea66040519384613aaa565b8183528a526020808b20908b9084015b838210612edc575050505060019282602092836002950152815201920192019190612d9c565b600160208192604051612ef381610fd9818a613cbb565b815201930191019091612eb6565b503461085b578060031936011261085b5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110612f6057610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612f49565b503461085b578060031936011261085b57604051610ca0612fa08183613aaa565b60648252601f1901366020830137612fb6613eb1565b90825b60648110613007575050815b60638110612fd1578280f35b612fdb8183613f2c565b5151600182019081831161021d57610210826101c6613001936101be6001979689613f2c565b01612fc5565b6001810180821161021d57806103e802906103e882048103610a4157683635c9adc5dea000000290808204670de0b6b3a7640000149015171561021d5761304e8284613f2c565b52604051634b88b8ad60e11b815290602082600481885f516020618a015f395f51905f525af191821561071e5785926135cd575b5061308d8184613f2c565b51858060405160208101906370a0823160e01b8252306024820152602481526130b7604482613aaa565b51905f516020618a415f395f51905f525afa506130d561037661608c565b506130de613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610a2d576103c38160016131139301600e55613c3f565b9055601154600f5460105488926001600160a01b03169160e01b6131356163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906131798161043f8888866163a7565b519020865260205260ff600360408720015416156135bf575b6001600160a01b0384165f908152600d6020526040902090855260205261043f6131cb60408620936040519283916020830195866163a7565b51902083526020526040822060018101549360028201546131ec8187613ef2565b6134e4575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020618a015f395f51905f525afa9788156134d95787986134a1575b506001908201610100031b5f1901811b198716915f516020618a015f395f51905f523b15610a89576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020618a015f395f51905f525af190811561071e57859161348c575b50506132c5616577565b919015918215613481575b505061077e57505050506132e261705e565b6020805461332d91906001600160a01b03166132fe8487613f2c565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f516020618a415f395f51905f525af1801561075757613465575b506020546001600160a01b031660806133648386613f2c565b51604051928391638307c65560e01b83525f5160206189e15f395f51905f5260048401525f516020618a415f395f51905f5260248401525f516020618a215f395f51905f5260448401528960648401526084830152818960a482800301925af1908115610757578691613447575b506133dd8286613f2c565b526133e88185613f2c565b5060405191631135fc2960e21b83526004830152602082602481885f516020618a015f395f51905f525af191821561071e57600192613429575b5001612fb9565b6134409060203d8111610717576107088183613aaa565b505f613422565b61345f915060803d8111610750576107428183613aaa565b5f6133d2565b61347c9060203d8111610717576107088183613aaa565b61334b565b141590505f806132d0565b8161349691613aaa565b6111e857835f6132bb565b965096506020863d82116134d1575b816134bd60209383613aaa565b810103126108cc579451958b95908161323e565b3d91506134b0565b6040513d89823e3d90fd5b90919293506134f38186613ef2565b610100036101008111610a0b5760ff8111610a0b5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020618a015f395f51905f525afa9283156109fe5760209382606a926135ad94926109da57506040519586925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613aaa565b8310156109b2575090899392916131f1565b6135c7616794565b50613192565b9091506020813d82116135f8575b816135e860209383613aaa565b810103126108cc5751905f613082565b3d91506135db565b50346108cc575f3660031901126108cc5760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020618a015f395f51905f525afa9081156139d357613689916020915f91613a21575b50604051809381926371ee464d60e01b8352604060048401526044830190613b0d565b63011d7df0602483015203815f5f516020618a015f395f51905f525af180156139d3576139f2575b506040516116ad808201908282106001600160401b038311176139de576020918391617314833973ba12222222228d8ba445958a75a0704d566bf2c881520301905ff080156139d35760018060a01b03166bffffffffffffffffffffffff60a01b60205416176020555f516020618a015f395f51905f523b156108cc576040516318caf8e360e31b815273ba12222222228d8ba445958a75a0704d566bf2c860048201526040602482015260066044820152651255985d5b1d60d21b60648201525f81608481835f516020618a015f395f51905f525af180156139d3576139c0575b5060205481906001600160a01b03165f516020618a015f395f51905f523b1561120157604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b1929bbb0b820b230b83a32b960591b60648201528181608481835f516020618a015f395f51905f525af1801561085e576139ab575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b81525f516020618a215f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f516020618a015f395f51905f525af1801561085e57613996575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b81525f516020618a415f395f51905f52600482015260406024820152600360448201526210905360ea1b60648201528181608481835f516020618a015f395f51905f525af1801561085e57613981575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b8152735c6ee304399dbdb9c8ef030ab642b10820db8f56600482015260406024820152600e60448201526d084be7060848298be6460ae8aa8960931b60648201528181608481835f516020618a015f395f51905f525af1801561085e576115cb5750f35b8161398b91613aaa565b61085b57805f6138fb565b816139a091613aaa565b61085b57805f613889565b816139b591613aaa565b61085b57805f613816565b6139cc91505f90613aaa565b5f5f613793565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d602011613a19575b81613a0b60209383613aaa565b810103126108cc57516136b1565b3d91506139fe565b613a3591503d805f833e6109ef8183613aaa565b5f613666565b346108cc5760403660031901126108cc57613a6c602091613a5b81613a74565b600435815260243583820152613d98565b604051908152f35b604081019081106001600160401b038211176139de57604052565b606081019081106001600160401b038211176139de57604052565b90601f801991011681019081106001600160401b038211176139de57604052565b60206040818301928281528451809452019201905f5b818110613aee5750505090565b82516001600160a01b0316845260209384019390920191600101613ae1565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613b6357505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210613bbd5750505060208060019297019301930191939290613b54565b82516001600160e01b031916845260209384019390920191600190910190613b9e565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613c1257505050505090565b9091929394602080613c30600193603f198682030187528951613b0d565b97019301930191939290613c03565b600e54811015613c5757600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f54811015613c5757601f5f5260205f2001905f90565b90600182811c92168015613cb1575b6020831014613c9d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613c92565b5f9291815491613cca83613c83565b8083529260018116908115613d1f5750600114613ce657505050565b5f9081526020812093945091925b838310613d05575060209250010190565b600181602092949394548385870101520191019190613cf4565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116139de5760051b60200190565b81810292918115918404141715613d6657565b634e487b7160e01b5f52601160045260245ffd5b8115613d84570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715613d66576020613dcf92015190613d7a565b90565b6001600160401b0381116139de57601f01601f191660200190565b6020818303126108cc578051906001600160401b0382116108cc570181601f820112156108cc57805190613e2082613dd2565b92613e2e6040519485613aaa565b828452602083830101116108cc57815f9260208093018386015e8301015290565b908160209103126108cc575190565b601180546001600160a01b0319165f516020618a415f395f51905f52179055565b60405190613e8c82613a8f565b815f81525f60208201526040805191613ea483613a74565b5f83525f60208401520152565b604051610ca09190613ec38382613aaa565b6064815291601f1901825f5b828110613edb57505050565b602090613ee6613e7f565b82828501015201613ecf565b91908201809211613d6657565b805115613c575760200190565b805160011015613c575760400190565b805160021015613c575760600190565b8051821015613c575760209160051b010190565b908160209103126108cc575180151581036108cc5790565b91908260409103126108cc57604051613f7081613a74565b6020808294805184520151910152565b906080828203126108cc57613fb1906040805193613f9d85613a8f565b805185526020810151602086015201613f58565b604082015290565b91908203918211613d6657565b9190606060808401935f5160206189e15f395f51905f5281525f516020618a415f395f51905f5260208201525f516020618a215f395f51905f5260408201520152565b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781519061403d82613d3c565b9261404b6040519485613aaa565b82845260208085019360051b8201019182116108cc57602001915b8183106140735750505090565b8251600a8110156108cc57815260209283019201614066565b51600a8110156140995790565b634e487b7160e01b5f52602160045260245ffd5b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781516140e081613d3c565b926140ee6040519485613aaa565b81845260208085019260051b8201019283116108cc57602001905b8282106141165750505090565b8151815260209182019101614109565b6020818303126108cc578051906001600160401b0382116108cc570181601f820112156108cc57805161415881613d3c565b926141666040519485613aaa565b81845260208085019260061b840101928184116108cc57602001915b838310614190575050505090565b602060409161419f8486613f58565b815201920191614182565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106141ee5750505090565b82518452602093840193909201916001016141e1565b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781519061423882613d3c565b926142466040519485613aaa565b82845260208085019360051b8201019182116108cc57602001915b81831061426e5750505090565b82516001600160a01b03811681036108cc57815260209283019201614261565b9080601f830112156108cc5781516142a581613d3c565b926142b36040519485613aaa565b81845260208085019260051b8201019283116108cc57602001905b8282106142db5750505090565b81518152602091820191016142ce565b60085460ff1680156142fa5790565b50604051630667f9d760e41b81525f516020618a015f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020618a015f395f51905f525afa9081156139d3575f91614354575b50151590565b90506020813d60201161437e575b8161436f60209383613aaa565b810103126108cc57515f61434e565b3d9150614362565b6001600160a01b03811692919061439c82613eff565b516040516348bd7dfd60e01b815260048101919091525f60248201819052604482018190528160648183895af180156139d3576143e0915f916144ee575b506146aa565b15905f5b83518110156144e6576143f78185613f2c565b51906040519163ecbbc03360e01b835260048301525f82602481838b5af180156139d357846144c6916001945f916144cc575b506144458a868060a01b0361443e84613eff565b5116614747565b6144588a868060a01b0361443e84613f0c565b61449082614466868b613f2c565b51878060a01b0361447685613eff565b5116888060a01b0361448786613f0c565b5116918a614891565b61449a8489613f2c565b5190858060a01b036144ab82613f0c565b5116906144bd878060a01b0391613eff565b51169187614891565b016143e4565b6144e091503d805f833e6116098183613aaa565b5f61442a565b505050509050565b61450291503d805f833e612a638183613aaa565b5f6143da565b1561450f57565b634e487b7160e01b5f52600160045260245ffd5b905f516020618a015f395f51905f523b156108cc5760405191638466f41560e01b8352600483015260248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f61457c91613aaa565b565b61459e90602061459382518286015190613d53565b935191015190613d53565b908082036145ac5750505f90565b11156145b757600190565b5f1990565b5f516020618a015f395f51905f523b156108cc576040519063fe74f05b60e01b82526004820152600160248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f516020618a015f395f51905f523b156108cc5760405190636d83fe6960e11b825260048201525f60248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b905f516020618a015f395f51905f523b156108cc576040519163260a5b1560e21b8352600483015260248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f5b81518110156146e1576146c26128ba8284613f2c565b600a811015614099576005146146da576001016146ac565b5050600190565b50505f90565b5f5b81518110156146e1576146ff6128ba8284613f2c565b600a811015614099576009146146da576001016146e9565b5f5b81518110156146e15761472f6128ba8284613f2c565b600a811015614099576008146146da57600101614719565b60405163095ea7b360e01b602082019081526001600160a01b03909316602482018190525f19604480840191909152825292909190614787606484613aaa565b82516001600160a01b038316915f91829182855af1906147a561608c565b82614805575b50816147fa575b50156147bd57505050565b6147f561457c936040519063095ea7b360e01b602083015260248201525f6044820152604481526147ef606482613aaa565b826160bb565b6160bb565b90503b15155f6147b2565b8051919250811591821561481d575b5050905f6147ab565b6148309250602080918301019101613f40565b5f80614814565b60405190614846606083613aaa565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b6101809182526101c09490945260405163549387df60e11b8152905160048201526001600160a01b038083166024830152831660448201529192915f8180606481016101608490520381836001600160a01b0388165af180156139d3576148ff915f91616072575b50613eff565b516101405260606101a081905260405161495c9161491d9082613aaa565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b60408201526101405161617e565b6101a051505f806149e6614a146040516149796101a05182613aaa565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613b0d565b6001600160a01b0387811660448401528916606483015261014051608483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b81526101805160048201526001600160a01b038083166024830152841660448201525f8180606481010381836001600160a01b0388165af180156139d357614a83915f91616058575b506146e7565b9160405192614a9360a085613aaa565b6004845260803660208601371561604b575f5b614aaf84613eff565b526103e86101405104614ac184613f0c565b526101405160011c614ad284613f1c565b52825160031015613c57576080830161014051905260405163155adc9160e31b81525f8180614b0a87898861018051600486016141aa565b0381836001600160a01b0387165af19081156139d3575f91616031575b50614b3a614b3482613eff565b51613d98565b81515f19810191908211613d6657614b58614b34614bb39385613f2c565b6101a0516040519290614b6b9084613aaa565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526161e5565b614bbf614b3482613eff565b81515f198101908111613d6657614c5c614c755f93614be2614b34869588613f2c565b6101a051604051929190614bf69084613aaa565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b60208601526101a05160248601526084850190613b0d565b916044840152606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa506101a051604051614cdc91614c9f9082613aaa565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b604082015261621a565b614d2f614ce882613eff565b515160406101e081905280519190614d009083613aaa565b601882527f4e6f6d696e61746f722073686f756c646e277420626520300000000000000000602083015261617e565b614d816020614d3d83613eff565b5101516101e05180519190614d529083613aaa565b601a82527f44656e6f6d696e61746f722073686f756c646e27742062652030000000000000602083015261617e565b614d8d614b3482613eff565b610120526101e0518051614dd091614da59082613aaa565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152610120519061625e565b614dd8613e7f565b5083515f198101908111613d6657614df09085613f2c565b516005818102048103613d66575f806101e0515160208101906370a0823160e01b825230602482015260248152614e28604482613aaa565b5190875afa50614e3961037661608c565b50601180546001600160a01b0319166001600160a01b038616179055600f805463ffffffff19166370a08231179055600e54600160401b8110156139de576103c3816001614e8a9301600e55613c3f565b905560018060a01b0360115416600f5460e01b60105490614ea96163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f526020526101e0515f206101e051516020810190614ef18161043f8888866163a7565b5190205f5260205260ff60036101e0515f2001541615616023575b6001600160a01b0384165f908152600d60205260409020905f5260205261043f614f496101e0515f20936101e051519283916020830195866163a7565b5190205f526020526101e0515f206001810154926002820154614f6c8186613ef2565b615f08575b82546101e05151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715615ec7575f97615ed4575b506001908201610100031b5f1901811b1986165f516020618a015f395f51905f523b156108cc576101e051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f516020618a015f395f51905f525af18015615ec757615eb2575b50600f5460e01b602061508d6024615053600d616498565b6101e051519384918183019663ffffffff60e01b1687528051918291018484015e810161016051838201520301601f198101835282613aaa565b60115461016051915191928392916001600160a01b03165afa60c0526150b161608c565b6010546001600160fb1b03811681036156f2576101605160a08190528251610100919091526020811115615ea957506020610100525b6101605160e0525b6101005160e05110615e3757505060c05115908115615e27575b50615d355750505061511961705e565b6101e05151634b88b8ad60e11b8152602081600481610160515f516020618a015f395f51905f525af1801561565a5761016051608052615d02575b5060015b845181101561572a575f8061521561523b61517285613c6b565b5061517d868b613f2c565b51615227610fd96151ed6101e051519461519a6101a05187613aaa565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b6101e0518701526101e0515192838092613cbb565b6101e05151635821efa160e01b60208201526101a05160248201529586946084860190613b0d565b84810360231901604486015290613b0d565b90606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa5061525d614b348284613f2c565b5f806152d56152fa61526f868b613f2c565b516101e05151906152836101e05183613aaa565b601782527f544553543a205377617070696e67202564206f6620257300000000000000000060208301526101e0515193849263038fd88960e31b60208501526101a05160248501526084840190613b0d565b60448301919091526001600160a01b038b16606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa50615368608061531e8489613f2c565b516101e05151638307c65560e01b81526101805160048201526001600160a01b03808a1660248301528b1660448201525f60648201526084810191909152918290819060a4820190565b03816101605160018060a01b038a165af190811561565a57610160519161570c575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156156f2576153d76153e3916a084595161401484a0000006153cf878c613f2c565b519102613d7a565b916101e0510151613d98565b91615429826101e051516153fa6101e05182613aaa565b601d81527f544553543a20202d2045786563757465642070726963653a2020202564000000602082015261625e565b61546e816101e0515161543f6101e05182613aaa565b601d81527f544553543a20202d20507269636520617420616d6f756e743a20202564000000602082015261625e565b6154b3836101e051516154846101e05182613aaa565b601d81527f544553543a20202d20507269636520616674657220737761703a202564000000602082015261625e565b6101c0511561566a576101a0516101e051516155f4946155939390926155269291906154df9083613aaa565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b6101e051830152856162a1565b6101a0516101e05151919061553b9083613aaa565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e0000000000000000006101e051830152836161e5565b6101a0516101e0515191906155a89083613aaa565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b6101e051830152610120516161e5565b6101e0515190631135fc2960e21b82526080516004830152602082602481610160515f516020618a015f395f51905f525af191821561565a5760019261563c575b5001615158565b6156539060203d8111610717576107088183613aaa565b505f615635565b6101e051513d61016051823e3d90fd5b61568f906156876156ed9461567d614837565b90610120516162a1565b61567d614837565b6101e05151906156a26101a05183613aaa565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b6101e051830152610120516162a1565b6155f4565b634e487b7160e01b61016051526011600452602461016051fd5b615724915060803d8111610750576107428183613aaa565b5f61538a565b5050915060696101405102610140518104606914610140511517156156f2576101e051516348bd7dfd60e01b815261016080516101805160048401526001600160a01b0385811660248501528781166044850152915160649485900496949192849291839187165af1801561565a576157ad916101605191615ce5575b50614717565b15615b9c57615818836101e051516157c86101a05182613aaa565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101e05182015261625e565b6101e0518051939061582a9085613aaa565b600184526101e051601f190136602086013761584584613eff565b526101e0515163155adc9160e31b815261016051818061586e87898861018051600486016141aa565b03816101605160018060a01b0387165af19081615b81575b50615b145760016158956162d6565b6308c379a014615a83575b61565a57615900936158b3608094613eff565b516101e05151638307c65560e01b81526101805160048201526001600160a01b0394851660248201529390911660448401525f6064840152608483015290928391908290819060a4820190565b61016051919003926001600160a01b03165af19081615a66575b50615a035760016159296162d6565b6308c379a01461597d575b61565a575b61457c6101e0515161594e6101e05182613aaa565b601781527f544553543a20416c6c207465737473207061737365642e000000000000000000602082015261621a565b6159856162f1565b80615991575b50615934565b610160516101a0516101e051519193506159fd9291906159b19082613aaa565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101e051820152616363565b5f61598b565b6101e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b615a7e9060803d608011610750576107428183613aaa565b61591a565b615a8b6162f1565b80615a97575b506158a0565b610160516101a0516101e05151919350615b0e929190615ab79082613aaa565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101e051820152616363565b5f615a91565b6101e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b615b97903d8061016051833e6117e78183613aaa565b615886565b6101a0516101e05151939493615c0491869190615bb99082613aaa565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101e05182015261625e565b6101e05180519490615c169086613aaa565b600185526101e051601f1901366020870137615c3185613eff565b526101e051519263155adc9160e31b8452610160518480615c5b88858861018051600486016141aa565b03816101605160018060a01b0387165af1801561565a57615c87956080956158b392615cca5750613eff565b61016051919003926001600160a01b03165af1801561565a57615cab575b50615939565b615cc39060803d608011610750576107428183613aaa565b505f615ca5565b615ce0903d8061016051833e6117e78183613aaa565b6148f9565b615cfc91503d8061016051833e612a638183613aaa565b5f6157a7565b6020813d602011615d2d575b81615d1b60209383613aaa565b810103126108cc57516080525f615154565b3d9150615d0e565b54915f516020618a015f395f51905f523b15615e20576101e051516370ca10bb60e01b8152610160516001600160a01b039093166004820152602481019390935260448301528180606481010381610160515f516020618a015f395f51905f525af1801561565a57615e05575b6101e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61016051615e1291613aaa565b61016051615e205780615da2565b6101605180fd5b905060050260a05114155f615109565b615e4660e0518260051b613ef2565b8251811015615e8f57602060ff60f81b91840101511660e05160e05160031b0460081460e0511517156156f25760e05160031b1c60a0511760a052600160e0510160e0526150ef565b634e487b7160e01b61016051526032600452602461016051fd5b610100526150e7565b5f615ebc91613aaa565b5f610160525f61503b565b6101e051513d5f823e3d90fd5b9096506020813d602011615f00575b81615ef060209383613aaa565b810103126108cc57519581614fc0565b3d9150615ee3565b615f128186613ef2565b610100036101008111613d665760ff8111613d66576101e0515163348051d760e11b81526001821b60048201525f816024815f516020618a015f395f51905f525afa918215615ec757615fd2606a6020946001945f91616009575b506101e051519586915f516020618a615f395f51905f52828401525f5160206189c15f395f51905f526101e05184015269030ba32b9103a3430b7160b51b6101a0518401528051918291018484015e81015f838201520301601f198101855284613aaa565b1b836005021015615fe35750614f71565b6101e0515162461bcd60e51b8152602060048201529081906109d6906024830190613b0d565b61601d91503d805f833e6109ef8183613aaa565b5f615f6d565b61602b616794565b50614f0c565b61604591503d805f833e6117e78183613aaa565b5f614b27565b6127106101405104614aa6565b61606c91503d805f833e612a638183613aaa565b5f614a7d565b61608691503d805f833e610d2c8183613aaa565b5f6148f9565b3d156160b6573d9061609d82613dd2565b916160ab6040519384613aaa565b82523d5f602084013e565b606090565b81516160e6926001600160a01b03909216915f91829160200182855af16160e061608c565b91616736565b805190816160f2575050565b602080616103938301019101613f40565b1561610a57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b613dcf9392606092825260208201528160408201520190613b0d565b5f516020618a015f395f51905f523b156108cc576161c6915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613b0d565b03815f516020618a015f395f51905f525afa80156139d3576145725750565b905f516020618a015f395f51905f523b156108cc575f916161c66040519485938493636cd1e26960e11b855260048501616162565b5f61043f616247829360405192839163104c13eb60e21b6020840152602060248401526044830190613b0d565b6020815191016a636f6e736f6c652e6c6f675afa50565b61628d6162475f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613b0d565b90604483015203601f198101835282613aaa565b905f516020618a015f395f51905f523b156108cc575f916161c66040519485938493630389490b60e61b855260048501616162565b5f9060033d116162e257565b905060045f803e5f5160e01c90565b5f60443d10613dcf576040513d600319016004823e8051913d60248401116001600160401b0384111761635d57828201928351916001600160401b038311616355573d840160031901858401602001116163555750613dcf92910160200190613aaa565b949350505050565b92915050565b6163956162475f939261043f8594604051948593634b5c427760e01b6020860152604060248601526064850190613b0d565b83810360231901604485015290613b0d565b60209291908391805192839101825e019081520190565b6163c9601454613c83565b616486576040519081826020600e549283815201600e5f5260205f20925f5b81811061646d5750506163fd92500383613aaa565b81518060051b9080820460201490151715613d665761641b81613dd2565b906164296040519283613aaa565b808252616438601f1991613dd2565b013660208301375f5b8351811015616468578061645760019286613f2c565b5160208260051b8501015201616441565b509150565b84548352600194850194879450602090930192016163e8565b604051613dcf81610fd9816014613cbb565b60078101906164a78254613c83565b61656357600191500190604051808360208295549384815201905f5260205f20925f5b81811061654a5750506164df92500383613aaa565b81518060051b9080820460201490151715613d66576164fd81613dd2565b9061650b6040519283613aaa565b80825261651a601f1991613dd2565b013660208301375f5b8351811015616468578061653960019286613f2c565b5160208260051b8501015201616523565b84548352600194850194879450602090930192016164ca565b50613dcf610fd99160405192838092613cbb565b5f806020600f5460e01b6165c56024616590600d616498565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613aaa565b6011549151916001600160a01b03165afa906165df61608c565b601054909290600581901b906001600160fb1b03811603613d66575f938051602081115f1461666a57506020905b5f925b82841061661f57505050509190565b9091929561662d8783613ef2565b8351811015613c5757830160200151600388901b91906001600160f81b031916881560088a8504141715613d66576001921c179601929190616610565b9061660d565b905f806020600285015460e01b61668b602461659088616498565b60048601549151916001600160a01b03165afa60036166a861608c565b930154600581901b906001600160fb1b03811603613d66575f938051602081115f1461673057506020905b5f925b8284106166e557505050509190565b909192956166f38783613ef2565b8351811015613c5757830160200151600388901b91906001600160f81b031916881560088a8504141715613d66576001921c1796019291906166d6565b906166d3565b9061675a575080511561674b57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061678b575b61676b575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15616763565b601154600f546010546001600160a01b03909216915f9160e01b6167b8600d616498565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906167f18161043f8888866163a7565b5190205f5260205260ff600360405f2001541661701d575f516020618a015f395f51905f523b156108cc5760405163266cf10960e01b81525f81600481835f516020618a015f395f51905f525af180156139d357617008575b50616855600d616670565b90506040516365bc948160e01b81528660048201528581602481835f516020618a015f395f51905f525af1908115610757578691616fa0575b5080516168ff57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015616f985781602061691a8361694b95613f2c565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020618a015f395f51905f525afa928315616f8d578893616f5a575b508215616f02575b61697d8282613f2c565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020618a015f395f51905f525afa908115616ef7578b91616ec6575b506169d8600d616670565b91909382155f14616ebf575f19905b5f516020618a015f395f51905f523b15616ea6576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020618a015f395f51905f525af18015616e2b57908d91616eaa575b5050616a58600d616670565b601154909491506001600160a01b03165f516020618a015f395f51905f523b15616ea6576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020618a015f395f51905f525af18015616e9b57908c91616e82575b505082616e77575b505015616e6d578793889360ff60135416616cf2575b6001868601610100031b5f1901851b16841c8103616ce4575090616b72917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8961043f616b478d6040519283916020830195866163a7565b519020616b548686613f2c565b51906040519283528a602084015260408301526060820152a1613f2c565b51906040519060808201928284106001600160401b038511176139de5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190616bdb8161043f8d8d866163a7565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190616c368161043f8888866163a7565b519020855260205260ff60036040862001541615616c87576040948452600d60205284842090845260205261043f616c7b8585209386519283916020830195866163a7565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01616901565b9450616d3d9350616d038383613f2c565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020618a015f395f51905f525afa94851561259e578a95616e3a575b50616d6986600d617177565b959096616d7781600d617250565b60115490939192906001600160a01b03165f516020618a015f395f51905f523b15616e36576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020618a015f395f51905f525af18015616e2b57908d91616e12575b505087616e0a575b509495616aec575093509150600190616cec565b96505f616df6565b81616e1c91613aaa565b616e27578b5f616dee565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616e65575b81616e5560209383613aaa565b810103126108cc5751935f616d5d565b3d9150616e48565b9150600190616cec565b141590505f80616ad6565b81616e8c91613aaa565b616e97578a5f616ace565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81616eb491613aaa565b616e27578b5f616a4c565b8c906169e7565b90506020813d8211616eef575b81616ee060209383613aaa565b810103126108cc57515f6169cd565b3d9150616ed3565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5616f52616f308484613f2c565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1616973565b9092506020813d8211616f85575b81616f7560209383613aaa565b810103126108cc5751915f61696b565b3d9150616f68565b6040513d8a823e3d90fd5b505050616c09565b90503d8087833e616fb18183613aaa565b8101604082820312610a895781516001600160401b0381116170045781616fd991840161428e565b916020810151906001600160401b03821161700057616ff992910161428e565b505f61688e565b8880fd5b8780fd5b6170159194505f90613aaa565b5f925f61684a565b91939092505f52600d60205260405f20905f5260205261043f61704f60405f20936040519283916020830195866163a7565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580617135575b505f60105560ff19601354166013556170a9601454613c83565b806170b15750565b601f81116001146170c357505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061712a57505060145f525f602081208160145555565b5f8155600101617111565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061716c575061708f565b5f815560010161715f565b91905f5b610100811061718e57505090505f905f90565b8060ff0360ff8111613d66576004850154600190911b906001600160a01b03165f516020618a015f395f51905f523b156108cc576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020618a015f395f51905f525af180156139d357617240575b5061721a84616670565b81617236575b5061722d5760010161717b565b92505060019190565b905015155f617220565b5f61724a91613aaa565b5f617210565b91905f5b610100811061726757505090505f905f90565b60048401546001821b906001600160a01b03165f516020618a015f395f51905f523b156108cc576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020618a015f395f51905f525af180156139d357617303575b506172e684616670565b816172f9575b5061722d57600101617254565b905015155f6172ec565b5f61730d91613aaa565b5f6172dc56fe60a03461009c57601f6116ad38819003918201601f19168301916001600160401b038311848410176100a05780849260209460405283398101031261009c57516001600160a01b0381169081900361009c576080526040516115f890816100b5823960805181818160a10152818161033d01528181610634015281816106a101528181610852015281816109280152818161108e01526112b10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca0114610ae55750806348bd7dfd14610a0e5780638307c6551461054f578063a9270fbe146102fb578063aad6e4881461017a578063ba9285fe14610156578063e357d6f9146101285763ecbbc03314610074575f80fd5b3461012457602036600319011261012457604051631f29a8cd60e31b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610119576100f1915f916100f5575b50604051918291602083526020830190610c6b565b0390f35b61011191503d805f833e6101098183610bf3565b810190610d32565b50505f6100dc565b6040513d5f823e3d90fd5b5f80fd5b3461012457604061014461013b36610c2d565b9291909161115c565b60208251918051835201516020820152f35b3461012457602061017261016936610c2d565b92919091610f07565b604051908152f35b3461012457608036600319011261012457600435610196610b39565b9061019f610b4f565b906064359167ffffffffffffffff83116101245736602384011215610124578260040135926101cd84610c15565b936101db6040519586610bf3565b8085526024602086019160051b8301019136831161012457602401905b8282106102eb5750505082519361020e85610c15565b9461021c6040519687610bf3565b80865261022b601f1991610c15565b015f5b8181106102c85750505f5b8451811015610277578061025b61025260019388610cc4565b5185858861115c565b6102658289610cc4565b526102708188610cc4565b5001610239565b856040518091602082016020835281518091526020604084019201905f5b8181106102a3575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610295565b6020906040516102d781610bbb565b5f81525f8382015282828a0101520161022e565b81358152602091820191016101f8565b346101245761030936610b65565b60405192610318606085610bf3565b60028452602084019060403683376040805163f6c0092760e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929181602481865afa908115610119575f91610507575b505f61039061038a836113a1565b9261140e565b92602460405180968193631f29a8cd60e31b835260048301525afa948515610119575f935f966104e4575b5093956001600160a01b0394851694165f5b84518110156104a057816001600160a01b036103e98388610cc4565b51161461045e575b856001600160a01b036104048388610cc4565b511614610414575b6001016103cd565b61041e8188610cc4565b519060038202918083046003149015171561044a57600a600192046104428b610cb4565b52905061040c565b634e487b7160e01b5f52601160045260245ffd5b808303610475578361046f8a610ca7565b526103f1565b61047f8188610cc4565b5160038102908082046003149015171561044a57600a900461046f8a610ca7565b8789604051918291602083019060208452518091526040830191905f5b8181106104cb575050500390f35b82518452859450602093840193909201916001016104bd565b9095506104fc9193503d805f833e6101098183610bf3565b5092909294886103bb565b90506040813d604011610547575b8161052260409383610bf3565b8101031261012457602061053582610d1e565b91015160ff811603610124578761037c565b3d9150610515565b346101245760a03660031901126101245760043561056b610b39565b90610574610b4f565b60643591600283101561012457604051926060840184811067ffffffffffffffff821117610902576040525f84525f60208501526040516105b481610bbb565b5f81525f602082015260408501526105cb81610cf0565b6109f4575f90608435925f935b6040516323b872dd60e01b6020820152336024820152306044820152606480820183905281526001600160a01b038816919061061f90610619608482610bf3565b836114ba565b604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482015290602082604481865afa918215610119575f926109c0575b50810180911161044a575f8060405192602084019063095ea7b360e01b825260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001660248601526044850152604484526106da606485610bf3565b83519082865af16106e9611525565b81610991575b5080610987575b15610916575b505a936040519160c0830183811067ffffffffffffffff82111761090257604052848352602083019161072e81610cf0565b82526040830190815260018060a01b03841660608401526080830191608435835260209760405161075f8a82610bf3565b5f815260a086019081526040519161077683610b9f565b3083525f8b8401523360408401525f60608401526103e842019182421161044a5761080b610843918d986040519a8b998a996352bbbe2960e01b8b5260e060048c0152825160e48c0152516107ca81610cf0565b6101048b0152516001600160a01b039081166101248b01526060919091015116610144890152516101648801525160c06101848801526101a4870190610cfa565b84516001600160a01b039081166024880152602086015115156044880152604086015116606487015260609094015115156084860152565b60a484015260c483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610119575f916108d5575b5085525a830392831161044a576080956108ac9360208701526084359261115c565b604083015260408051928051845260208101518385015201518051604084015201516060820152f35b90508481813d83116108fb575b6108ec8183610bf3565b8101031261012457518761088a565b503d6108e2565b634e487b7160e01b5f52604160045260245ffd5b60405163095ea7b360e01b60208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201525f6044808301919091528152610981919061097b90610975606482610bf3565b846114ba565b826114ba565b876106fc565b50813b15156106f6565b80518015925082156109a6575b5050896106ef565b6109b992506020809183010191016114a2565b898061099e565b9091506020813d6020116109ec575b816109dc60209383610bf3565b8101031261012457519089610679565b3d91506109cf565b600190610a05608435848784610f07565b5f1993906105d8565b3461012457610a1c36610b65565b505050604051610a2d60a082610bf3565b600481526020810160803682376001610a4583610ca7565b526002610a5183610cb4565b52815160021015610ad15760036060830152815160031015610ad15760086080830152604051906020820192602083525180935260408201905f935b808510610a9a5783830384f35b9091825190600a821015610abd5760208160019382935201930194019390610a8d565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461012457604036600319011261012457631d04569d60e21b815260206004820181905260248201527f42616c616e636572563253776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b038216820361012457565b604435906001600160a01b038216820361012457565b606090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b03811681036101245790565b6080810190811067ffffffffffffffff82111761090257604052565b6040810190811067ffffffffffffffff82111761090257604052565b60a0810190811067ffffffffffffffff82111761090257604052565b90601f8019910116810190811067ffffffffffffffff82111761090257604052565b67ffffffffffffffff81116109025760051b60200190565b608090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b0381168103610124579060643590565b90602080835192838152019201905f5b818110610c885750505090565b82516001600160a01b0316845260209384019390920191600101610c7b565b805115610ad15760200190565b805160011015610ad15760400190565b8051821015610ad15760209160051b010190565b60405190610ce582610bbb565b5f6020838281520152565b60021115610abd57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361012457565b909160608284031261012457815167ffffffffffffffff811161012457820183601f8201121561012457805190610d6882610c15565b91610d766040519384610bf3565b80835260208084019160051b8301019186831161012457602001905b828210610e165750505092602083015167ffffffffffffffff81116101245783019080601f83011215610124578151610dca81610c15565b92610dd86040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610e065750505060409092015190565b8151815260209182019101610df3565b60208091610e2384610d1e565b815201910190610d92565b60408051909190610e3f8382610bf3565b6001815291601f1901825f5b828110610e5757505050565b602090604051610e6681610bd7565b5f81525f838201525f60408201525f60608201526060608082015282828501015201610e4b565b6020818303126101245780519067ffffffffffffffff821161012457019080601f83011215610124578151610ec181610c15565b92610ecf6040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610ef75750505090565b8151815260209182019101610eea565b929091610f12610e2e565b9160405194610f2086610bd7565b85525f6020860152600160408601526060850152602093604051610f448682610bf3565b5f81526080820152610f5583610ca7565b52610f5f82610ca7565b50606060405191610f708284610bf3565b60028352601f19820194853688860137610f8984610ca7565b6001600160a01b039091169052610f9f83610cb4565b6001600160a01b03909116905260405193610fb985610b9f565b3385525f868601523360408601525f82860152604051610fd98382610bf3565b600281528636910137604051637c26833760e11b81529460e48601919091869493926001600487015260e0602487015284518092526101048601928161010060048560051b8a0101019601935f915b8483106110f5575050505050509261108961105184935f96600319868303016044870152610c6b565b82516001600160a01b03908116606486015260208401511515608486015260408401511660a4850152606090920151151560c4840152565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610119576110cf915f916110d3575b50610ca7565b5190565b6110ef91503d805f833e6110e78183610bf3565b810190610e8d565b5f6110c9565b9193959692806111476001939582989b60ff19906003199083030101875260a060808d518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b99019301930190928997969593949294611028565b9192611166610cd8565b5061116f610e2e565b906040519361117d85610bd7565b84525f60208501526001604085015260608401526020926040516111a18582610bf3565b5f815260808201526111b282610ca7565b526111bc81610ca7565b506040516060946111cd8683610bf3565b60028252601f198601938436878501376111e683610ca7565b6001600160a01b0390911690526111fc82610cb4565b6001600160a01b0390911690526040519261121684610b9f565b3384525f858501523360408501525f868501526040516112368782610bf3565b600281528536910137604051637c26833760e11b81529460e4860190869392915f600486015260e0602486015283518091526101048501918761010060048460051b890101019501925f915b8984841061133e57505050505050926112ac61105184935f96600319868303016044870152610c6b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610119575f92611322575b506112f382610cb4565b5191600160ff1b831461044a5761130990610ca7565b51906040519261131884610bbb565b5f03835282015290565b6113379192503d805f833e6110e78183610bf3565b905f6112e9565b61138e600193959798829395979a60ff19906003199083030101875260a060808c518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b9801930193019092899695949293611282565b6040516341343d2b60e11b815290602090829060049082906001600160a01b03165afa5f91816113da575b506113d757505f1990565b90565b9091506020813d602011611406575b816113f660209383610bf3565b810103126101245751905f6113cc565b3d91506113e9565b60405163876f303b60e01b81526001600160a01b039190911690602081600481855afa5f918161146e575b5061146957506020600491604051928380926337a0b34d60e21b82525afa5f91816113da57506113d757505f1990565b905090565b9091506020813d60201161149a575b8161148a60209383610bf3565b810103126101245751905f611439565b3d915061147d565b90816020910312610124575180151581036101245790565b5f806114e29260018060a01b03169360208151910182865af16114db611525565b9083611564565b805190811515918261150a575b50506114f85750565b635274afe760e01b5f5260045260245ffd5b61151d92506020809183010191016114a2565b155f806114ef565b3d1561155f573d9067ffffffffffffffff82116109025760405191611554601f8201601f191660200184610bf3565b82523d5f602084013e565b606090565b90611588575080511561157957805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115b9575b611599575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561159156fea2646970667358221220e3f14a8e559a59d2985f6223d165fe9c31be449a354e673b7d50555a0236e43d64736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772655c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d73746453746f726167652066696e642853746453746f72616765293a20506163a26469706673582212209eca23e322fd34a834ef83680e1ad8a26f403dcb304877d2c940ba77774c579264736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"273:7942:67:-:0;;;;;;3166:4:2;273:7942:67;;3166:4:2;273:7942:67;;;3166:4:2;273:7942:67;3166:4:2;273:7942:67;;1038:4:12;273:7942:67;;;1038:4:12;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;273:7942:67;;;;;;;;;:::i;:::-;564:29:65;273:7942:67;;-1:-1:-1;;;273:7942:67;;;;;564:29:65;;273:7942:67;;;;:::i;:::-;;;;-1:-1:-1;;;273:7942:67;;;;;564:29:65;;273:7942:67;;;;:::i;:::-;564:29:65;273:7942:67;;-1:-1:-1;;;273:7942:67;;;;564:29:65;;;273:7942:67;;;564:29:65;273:7942:67;;;564:29:65;273:7942:67;;;-1:-1:-1;;273:7942:67;;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;564:29:65;273:7942:67;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;273:7942:67;;;;;;;;;;;-1:-1:-1;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;273:7942:67;;;;;;;;;;;564:29:65;273:7942:67;;;;;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;;;;;;;;;;;3166:4:2;273:7942:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;273:7942:67;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610200806040526004361015610013575f80fd5b5f905f3560e01c90816308c4174514613a3b575080630a9254e414613600578063111f339214612f7f5780631ed7831c14612f015780632ade388014612d425780633e5e3c2314612cc45780633f7286f414612c465780634a36e37214612a7157806353e5d760146127d757806366d9a9a0146126295780637f55213e146118125780638335a17f146116a957806385226c81146116175780638f1ed4c614611490578063916a17c61461120457806399cef81b146110b0578063a00872f114611044578063a2121ee514610fee578063b5508aa914610f55578063ba414fa614610f30578063d170c3cc14610e8e578063d3479a0114610dc8578063e20c9f7114610d3a578063e865164514610aea578063fa7626d414610ac75763fe3ee58b1461013d575f80fd5b3461085b578060031936011261085b57604051610ca061015d8183613aaa565b60648252601f1901366020830137610173613eb1565b90825b60648110610231575050815b6063811061018e578280f35b6101988183613f2c565b5151600182019081831161021d57610210826101c6610217936101be6001979689613f2c565b515190614523565b6101ed60206101d58689613f2c565b51015160206101e4848a613f2c565b51015190614523565b6040610207816101fd878a613f2c565b5101519288613f2c565b5101519061457e565b850b6145bc565b01610182565b634e487b7160e01b85526011600452602485fd5b6001810180821161021d5780600a0290600a82048103610a4157678ac7230489e800000290808204670de0b6b3a7640000149015171561021d576102758284613f2c565b52604051634b88b8ad60e11b815290602082600481885f516020618a015f395f51905f525af191821561071e578592610a94575b5060205485906040906102e5906001600160a01b03166102c98588613f2c565b51835194858094819363e357d6f960e01b835260048301613fc6565b03925af18015610757578690610a55575b61031c91506103146103088487613f2c565b51602083015190613d53565b905190613d7a565b8060011b9080820460021490151715610a4157858060405160208101906370a0823160e01b825230602482015260248152610358604482613aaa565b51905f516020618a415f395f51905f525afa5061038561037661608c565b60208082518301019101613e4f565b5061038e613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610a2d576103c38160016103dc9301600e55613c3f565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b601054906103fb6163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a20604051602081019061044d8161043f8888866163a7565b03601f198101835282613aaa565b5190208b5260205260ff600360408c2001541615610a1f575b6001600160a01b0384165f908152600d60205260409020908a5260205261043f61049f60408b20936040519283916020830195866163a7565b519020885260205286604081209160018301549260028101546104c28186613ef2565b6108d8575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa96871561075757869761089c575b506001908201610100031b5f1901811b198616915f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f516020618a015f395f51905f525af190811561088d578491610878575b50508461059c616577565b91901591821561086d575b505061077e575050505060206105f2916105bf61705e565b815460405163095ea7b360e01b81526001600160a01b039091166004820152602481019190915291829081906044820190565b0381895f516020618a415f395f51905f525af1801561075757610762575b506020546001600160a01b031660806106298386613f2c565b51604051638307c65560e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015260016064820152608481019190915291829060a49082908a905af1908115610757578691610729575b506106a48286613f2c565b526106af8185613f2c565b5060405191631135fc2960e21b83526004830152602082602481885f516020618a015f395f51905f525af191821561071e576001926106f0575b5001610176565b6107109060203d8111610717575b6107088183613aaa565b810190613f40565b505f6106e9565b503d6106fe565b6040513d87823e3d90fd5b61074a915060803d8111610750575b6107428183613aaa565b810190613f80565b5f610699565b503d610738565b6040513d88823e3d90fd5b6107799060203d8111610717576107088183613aaa565b610610565b82945054905f516020618a015f395f51905f523b15610869576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020618a015f395f51905f525af1801561085e57610846575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610851828092613aaa565b61085b57806107e5565b80fd5b6040513d84823e3d90fd5b8280fd5b14159050855f6105a7565b8161088291613aaa565b61086957825f610591565b6040513d86823e3d90fd5b8580fd5b955095506020853d82116108d0575b816108b860209383613aaa565b810103126108cc579351948b949081610514565b5f80fd5b3d91506108ab565b909192506108e68185613ef2565b610100036101008111610a0b5760ff8111610a0b5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020618a015f395f51905f525afa9283156109fe5760209382606a926109a194926109da575b506040519586925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613aaa565b8610156109b25750908992916104c7565b60405162461bcd60e51b8152602060048201529081906109d6906024830190613b0d565b0390fd5b6109f79192503d8084833e6109ef8183613aaa565b810190613ded565b905f610942565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610a27616794565b50610466565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b86526011600452602486fd5b5060403d8111610a8d575b610a6a8183613aaa565b810190604081830312610a895761031c91610a8491613f58565b6102f6565b8680fd5b503d610a60565b9091506020813d8211610abf575b81610aaf60209383613aaa565b810103126108cc5751905f6102a9565b3d9150610aa2565b503461085b578060031936011261085b57602060ff601e54166040519015158152f35b503461085b578060031936011261085b5760205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f5260448201526001600160a01b039091169082908181606481865afa90811561085e578291610d18575b505f516020618a015f395f51905f523b15610cf457604051632631f2b160e11b81526001600482015282816024815f516020618a015f395f51905f525afa908115610d0d578391610cf8575b5050610bbf90613eff565b5168056bc75e2d63100000105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e57610cdf575b50506040805163e357d6f960e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015268056bc75e2d631000006064820152918290608490829086905af190811561085e578291610c9f575b50602081610c95610c9c935161460c565b015161460c565b80f35b905060403d604011610cd8575b610cb68183613aaa565b810160408282031261086957610cd1602091610c9c93613f58565b9150610c84565b503d610cac565b81610ce991613aaa565b610cf457815f610c12565b5080fd5b81610d0291613aaa565b610cf457815f610bb4565b6040513d85823e3d90fd5b610d3491503d8084833e610d2c8183613aaa565b8101906140ad565b5f610b68565b503461085b578060031936011261085b5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610da957610da585610d9981870382613aaa565b60405191829182613acb565b0390f35b82546001600160a01b0316845260209093019260019283019201610d82565b503461085b578060031936011261085b5760205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561085e57610c9c91610e67918491610e74575b50610e5b6002825114614508565b610e6f610e6782613eff565b511515614508565b613f0c565b610e8891503d8086833e610d2c8183613aaa565b5f610e4d565b503461085b57604036600319011261085b57600435906001600160a01b038216820361085b576024356001600160401b038111610cf45736602382011215610cf457806004013592610edf84613d3c565b91610eed6040519384613aaa565b8483526024602084019560051b82010190368211610f2c57602401945b818610610f1c5784610c9c8585614386565b8535815260209586019501610f0a565b8480fd5b503461085b578060031936011261085b576020610f4b6142eb565b6040519015158152f35b503461085b578060031936011261085b57601954610f7281613d3c565b91610f806040519384613aaa565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610fc25760405180610da58782613be0565b600160208192604051610fe081610fd98189613cbb565b0382613aaa565b815201920192019190610fad565b503461085b578060031936011261085b57610c9c604051611010604082613aaa565b60018152602036818301375f5160206189e15f395f51905f5261103282613eff565b526020546001600160a01b0316614386565b503461085b57602036600319011261085b57600435601f54811015610cf45761106c90613c6b565b91909161109c57604051610da59061108881610fd98187613cbb565b604051918291602083526020830190613b0d565b634e487b7160e01b81526004819052602490fd5b503461085b578060031936011261085b5780604051631d04569d60e21b602082015260206024820152602060448201527f42616c616e636572563253776170416461707465722e676574506f6f6c496473606482015260648152611115608482613aaa565b5f516020618a015f395f51905f523b156112015781611150916040518093819263f28dceb360e01b8352602060048401526024830190613b0d565b0381835f516020618a015f395f51905f525af1801561085e576111ec575b506020546040516323eeca0160e01b81526064600482015260c860248201529190829060449082906001600160a01b03165afa801561085e576111af575080f35b3d8083833e6111be8183613aaa565b81016020828203126108695781516001600160401b0381116111e8576111e4920161428e565b5080f35b8380fd5b816111f691613aaa565b61085b57805f61116e565b50fd5b503461085b578060031936011261085b57601c5461122181613d3c565b9061122f6040519283613aaa565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106112725760405180610da58782613b31565b60405161127e81613a74565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106113f157846001979460029794602097946113099454918181106113d5575b8181106113b9575b81811061139d575b818110611381575b818110611365575b818110611349575b81811061132f575b1061131b575b500382613aaa565b8382015281520192019201919061125d565b6001600160e01b031916815286015f611301565b828a1b6001600160e01b0319168452928901928b016112fb565b604083901b6001600160e01b0319168452928901928b016112f3565b606083901b6001600160e01b0319168452928901928b016112eb565b608083901b6001600160e01b0319168452928901928b016112e3565b60a083901b6001600160e01b0319168452928901928b016112db565b60c083901b6001600160e01b0319168452928901928b016112d3565b60e083901b6001600160e01b0319168452928901928b016112cb565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916112a6565b503461085b578060031936011261085b5760205460405163ecbbc03360e01b81525f5160206189e15f395f51905f52600482015282918290829060249082906001600160a01b03165afa90811561085e5782916115f5575b506001600160a01b036114fa82613eff565b51165f516020618a015f395f51905f523b156115f157604051906328a9b0fb60e11b825260048201525f516020618a415f395f51905f52602482015282816044815f516020618a015f395f51905f525afa908115610d0d5783916115dc575b506001600160a01b039161156d9150613f0c565b51165f516020618a015f395f51905f523b1561120157604051906328a9b0fb60e11b825260048201525f516020618a215f395f51905f52602482015281816044815f516020618a015f395f51905f525afa801561085e576115cb5750f35b816115d591613aaa565b61085b5780f35b816115e691613aaa565b61120157815f611559565b5050fd5b61161191503d8084833e6116098183613aaa565b810190614204565b5f6114e8565b503461085b578060031936011261085b57601a5461163481613d3c565b916116426040519384613aaa565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106116845760405180610da58782613be0565b60016020819260405161169b81610fd98189613cbb565b81520192019201919061166f565b503461085b578060031936011261085b57604051906116c9606083613aaa565b60028252602082019181906040368537670de0b6b3a76400006116eb82613eff565b52671bc16d674ec800006116fe82613f0c565b5260205460405163155adc9160e31b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f52604482015260806064820152915160848301819052919485926001600160a01b039092169160a484019190855b8181106117f65750505083838281935003925af19182156109fe5781926117d2575b50805b82518110156111e457806117b56117ae60019386613f2c565b515161460c565b6117cc60206117c48387613f2c565b51015161460c565b01611795565b6117ef9192503d8084833e6117e78183613aaa565b810190614126565b905f611792565b8251845287965088955060209384019390920191600101611770565b503461085b57604036600319011261085b57600435602435801515810361086957156126235760015b5f516020618a015f395f51905f523b1561086957604051632631f2b160e11b81528215156004820152839081816024815f516020618a015f395f51905f525afa801561085e5761260e575b5060205460405163549387df60e11b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f5260448201529190829060649082906001600160a01b03165afa90811561088d5784916125f4575b5060028210156125e057836001831491825f1461213f5761191290613f0c565b5184105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e5761212a575b508060405160208101906370a0823160e01b825230602482015260248152611985604482613aaa565b51905f516020618a415f395f51905f525afa506119a361037661608c565b506119ac613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612116576103c38160016119e19301600e55613c3f565b905560018060a01b0360115416600f5460e01b60105490611a006163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190611a448161043f8888866163a7565b519020895260205260ff600360408a2001541615612108575b6001600160a01b0384165f908152600d6020526040902090885260205261043f611a9660408920936040519283916020830195866163a7565b51902086526020528460408120916001830154926002810154611ab98186613ef2565b611ff2578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715610757578697611fb9575b506001908201610100031b5f1901811b1986165f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020618a015f395f51905f525af190811561088d578491611fa4575b5050611b8e616577565b9015908115611f98575b5061077e5750505050611ba961705e565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f516020618a415f395f51905f525af1801561071e57611f79575b505b6040516370a0823160e01b8152306004820152926020846024815f516020618a415f395f51905f525afa93841561071e578594611f45575b506040516370a0823160e01b8152306004820152916020836024815f516020618a215f395f51905f525afa928315610757578693611f11575b50602054604051638307c65560e01b81525f5160206189e15f395f51905f5260048201525f516020618a415f395f51905f5260248201525f516020618a215f395f51905f526044820152606481019590955260848501839052608090859060a49082908a906001600160a01b03165af1938415610757578694611ef0575b508351611cee578580f35b15611df5576040516370a0823160e01b81523060048201526020816024815f516020618a215f395f51905f525afa908115610757578691611dc1575b50611d3e92611d3891613fb9565b9061465b565b516040516370a0823160e01b81523060048201526020816024815f516020618a415f395f51905f525afa90811561088d578491611d8d575b50611d3890611d8493613fb9565b5f808080808580f35b90506020813d602011611db9575b81611da860209383613aaa565b810103126108cc5751611d84611d76565b3d9150611d9b565b90506020813d602011611ded575b81611ddc60209383613aaa565b810103126108cc5751611d3e611d2a565b3d9150611dcf565b6040516370a0823160e01b81523060048201529193916020816024815f516020618a415f395f51905f525afa908115610757578691611ebc575b50611d3890611e3d93613fb9565b516040516370a0823160e01b81523060048201526020816024815f516020618a215f395f51905f525afa90811561088d578491611e88575b50611e8392611d3891613fb9565b611d84565b90506020813d602011611eb4575b81611ea360209383613aaa565b810103126108cc5751611e83611e75565b3d9150611e96565b90506020813d602011611ee8575b81611ed760209383613aaa565b810103126108cc5751611e3d611e2f565b3d9150611eca565b611f0a91945060803d608011610750576107428183613aaa565b925f611ce3565b9092506020813d602011611f3d575b81611f2d60209383613aaa565b810103126108cc5751915f611c65565b3d9150611f20565b9093506020813d602011611f71575b81611f6160209383613aaa565b810103126108cc5751925f611c2c565b3d9150611f54565b611f919060203d602011610717576107088183613aaa565b505f611bf2565b5f19141590505f611b98565b81611fae91613aaa565b61086957825f611b84565b955095506020853d602011611fea575b81611fd660209383613aaa565b810103126108cc5793519489949081611b0a565b3d9150611fc9565b611ffd849186613ef2565b6101000361010081116120f45760ff81116120f45760405163348051d760e11b8152600190911b600482015281816024815f516020618a015f395f51905f525afa90811561085e57606a602092846120b8936109d696926120d8575b506040519485925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282613aaa565b60405162461bcd60e51b8152602060048201529182916024830190613b0d565b6120ed9192503d8084833e6109ef8183613aaa565b9086612059565b634e487b7160e01b82526011600452602482fd5b612110616794565b50611a5d565b634e487b7160e01b85526041600452602485fd5b8161213491613aaa565b6111e857835f61195c565b61214890613eff565b5184105f516020618a015f395f51905f523b15610cf45760405190632631f2b160e11b8252600482015281816024815f516020618a015f395f51905f525afa801561085e576125cb575b508060405160208101906370a0823160e01b8252306024820152602481526121bb604482613aaa565b51905f516020618a415f395f51905f525afa506121d961037661608c565b506121e2613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612116576103c38160016122179301600e55613c3f565b905560018060a01b0360115416600f5460e01b601054906122366163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061227a8161043f8888866163a7565b519020895260205260ff600360408a20015416156125bd575b6001600160a01b0384165f908152600d6020526040902090885260205261043f6122cc60408920936040519283916020830195866163a7565b519020865260205284604081209160018301549260028101546122ef8186613ef2565b6124ad575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715610757578697612474575b506001908201610100031b5f1901811b198616915f516020618a015f395f51905f523b15610898576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020618a015f395f51905f525af190811561088d57849161245f575b5050866123c9616577565b919015918215612454575b505061077e57505050506123e661705e565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f516020618a415f395f51905f525af1801561071e57612435575b50611bf4565b61244d9060203d602011610717576107088183613aaa565b505f61242f565b14159050875f6123d4565b8161246991613aaa565b61086957825f6123be565b955095506020853d6020116124a5575b8161249160209383613aaa565b810103126108cc5793519489949081612341565b3d9150612484565b909192506124bb8185613ef2565b6101000361010081116125a95760ff81116125a95760405163348051d760e11b8152600190911b6004820181905289826024815f516020618a015f395f51905f525afa801561259e57606a612573916020948d91612584575b506040519485915f516020618a615f395f51905f52828401525f5160206189c15f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283613aaa565b8810156109b25750908792916122f4565b61259891503d808f833e6109ef8183613aaa565b5f612514565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b6125c5616794565b50612293565b816125d591613aaa565b6111e857835f612192565b634e487b7160e01b84526021600452602484fd5b61260891503d8086833e610d2c8183613aaa565b5f6118f2565b8161261891613aaa565b61086957825f611886565b8161183b565b503461085b578060031936011261085b57601b5461264681613d3c565b906126546040519283613aaa565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106126975760405180610da58782613b31565b6040516126a381613a74565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061273857846001979460029794602097946127269454918181106113d5578181106113b95781811061139d5781811061138157818110611365578181106113495781811061132f571061131b57500382613aaa565b83820152815201920192019190612682565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916126cb565b503461085b57606036600319011261085b576024356001600160a01b0381168103610cf457816044356001600160a01b0381168103610cf4576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0394851660248201529184166044830152909283916064918391165afa90811561085e578291612a4f575b508181515f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526004602482015281816044815f516020618a015f395f51905f525afa801561085e57612a3a575b50506128bf6128ba82613eff565b61408c565b600a811015612a115782905f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526001602482015281816044815f516020618a015f395f51905f525afa801561085e57612a25575b50506129266128ba82613f0c565b600a811015612a115782905f516020618a015f395f51905f523b15610cf4576040519063260a5b1560e21b825260048201526002602482015281816044815f516020618a015f395f51905f525afa801561085e576129fc575b50506128ba61298d91613f1c565b600a8110156129e85781905f516020618a015f395f51905f523b15611201576040519063260a5b1560e21b825260048201526003602482015281816044815f516020618a015f395f51905f525afa801561085e576115cb5750f35b634e487b7160e01b82526021600452602482fd5b81612a0691613aaa565b610cf457815f61297f565b634e487b7160e01b83526021600452602483fd5b81612a2f91613aaa565b610cf457815f612918565b81612a4491613aaa565b610cf457815f6128ac565b612a6b91503d8084833e612a638183613aaa565b810190614009565b5f61285a565b503461085b578060031936011261085b57610ca0604051612a928282613aaa565b60648152601f19820180366020840137612aaf6040519384613aaa565b60648352835b818110612c23575050825b60648110612b34575050815b60638110612ad8578280f35b612ae28183613f2c565b51600182019081831161021d5760206117c483612b1a612b13612b2e95612b0c600199988b613f2c565b519061457e565b890b6145bc565b612b28836117c4878a613f2c565b86613f2c565b01612acc565b6001810180821161021d57806103e802906103e882048103610a4157683635c9adc5dea000000290808204670de0b6b3a7640000149015171561021d57908491612b7e8285613f2c565b52602054604090612bb8906001600160a01b0316612b9c8487613f2c565b51835195868094819363e357d6f960e01b835260048301613fc6565b03925af1801561071e578590612be9575b60019250612bd78286613f2c565b52612be28185613f2c565b5001612ac0565b5060403d8111612c1c575b612bfe8184613aaa565b82019160408184031261089857600192612c1791613f58565b612bc9565b503d612bf4565b602090604051612c3281613a74565b5f81525f8382015282828701015201612ab5565b503461085b578060031936011261085b5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612ca557610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612c8e565b503461085b578060031936011261085b5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612d2357610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612d0c565b503461085b578060031936011261085b57601d54612d5f81613d3c565b612d6c6040519182613aaa565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612e705786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612dd85786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612e4557505050505060208060019297019301930190928695949293612dcb565b9091929394602080612e63600193605f198782030189528951613b0d565b9701950193929101612e21565b604051612e7c81613a74565b82546001600160a01b03168152600183018054612e9881613d3c565b91612ea66040519384613aaa565b8183528a526020808b20908b9084015b838210612edc575050505060019282602092836002950152815201920192019190612d9c565b600160208192604051612ef381610fd9818a613cbb565b815201930191019091612eb6565b503461085b578060031936011261085b5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110612f6057610da585610d9981870382613aaa565b82546001600160a01b0316845260209093019260019283019201612f49565b503461085b578060031936011261085b57604051610ca0612fa08183613aaa565b60648252601f1901366020830137612fb6613eb1565b90825b60648110613007575050815b60638110612fd1578280f35b612fdb8183613f2c565b5151600182019081831161021d57610210826101c6613001936101be6001979689613f2c565b01612fc5565b6001810180821161021d57806103e802906103e882048103610a4157683635c9adc5dea000000290808204670de0b6b3a7640000149015171561021d5761304e8284613f2c565b52604051634b88b8ad60e11b815290602082600481885f516020618a015f395f51905f525af191821561071e5785926135cd575b5061308d8184613f2c565b51858060405160208101906370a0823160e01b8252306024820152602481526130b7604482613aaa565b51905f516020618a415f395f51905f525afa506130d561037661608c565b506130de613e5e565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610a2d576103c38160016131139301600e55613c3f565b9055601154600f5460105488926001600160a01b03169160e01b6131356163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906131798161043f8888866163a7565b519020865260205260ff600360408720015416156135bf575b6001600160a01b0384165f908152600d6020526040902090855260205261043f6131cb60408620936040519283916020830195866163a7565b51902083526020526040822060018101549360028201546131ec8187613ef2565b6134e4575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020618a015f395f51905f525afa9788156134d95787986134a1575b506001908201610100031b5f1901811b198716915f516020618a015f395f51905f523b15610a89576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020618a015f395f51905f525af190811561071e57859161348c575b50506132c5616577565b919015918215613481575b505061077e57505050506132e261705e565b6020805461332d91906001600160a01b03166132fe8487613f2c565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f516020618a415f395f51905f525af1801561075757613465575b506020546001600160a01b031660806133648386613f2c565b51604051928391638307c65560e01b83525f5160206189e15f395f51905f5260048401525f516020618a415f395f51905f5260248401525f516020618a215f395f51905f5260448401528960648401526084830152818960a482800301925af1908115610757578691613447575b506133dd8286613f2c565b526133e88185613f2c565b5060405191631135fc2960e21b83526004830152602082602481885f516020618a015f395f51905f525af191821561071e57600192613429575b5001612fb9565b6134409060203d8111610717576107088183613aaa565b505f613422565b61345f915060803d8111610750576107428183613aaa565b5f6133d2565b61347c9060203d8111610717576107088183613aaa565b61334b565b141590505f806132d0565b8161349691613aaa565b6111e857835f6132bb565b965096506020863d82116134d1575b816134bd60209383613aaa565b810103126108cc579451958b95908161323e565b3d91506134b0565b6040513d89823e3d90fd5b90919293506134f38186613ef2565b610100036101008111610a0b5760ff8111610a0b5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020618a015f395f51905f525afa9283156109fe5760209382606a926135ad94926109da57506040519586925f516020618a615f395f51905f52828501525f5160206189c15f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613aaa565b8310156109b2575090899392916131f1565b6135c7616794565b50613192565b9091506020813d82116135f8575b816135e860209383613aaa565b810103126108cc5751905f613082565b3d91506135db565b50346108cc575f3660031901126108cc5760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020618a015f395f51905f525afa9081156139d357613689916020915f91613a21575b50604051809381926371ee464d60e01b8352604060048401526044830190613b0d565b63011d7df0602483015203815f5f516020618a015f395f51905f525af180156139d3576139f2575b506040516116ad808201908282106001600160401b038311176139de576020918391617314833973ba12222222228d8ba445958a75a0704d566bf2c881520301905ff080156139d35760018060a01b03166bffffffffffffffffffffffff60a01b60205416176020555f516020618a015f395f51905f523b156108cc576040516318caf8e360e31b815273ba12222222228d8ba445958a75a0704d566bf2c860048201526040602482015260066044820152651255985d5b1d60d21b60648201525f81608481835f516020618a015f395f51905f525af180156139d3576139c0575b5060205481906001600160a01b03165f516020618a015f395f51905f523b1561120157604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b1929bbb0b820b230b83a32b960591b60648201528181608481835f516020618a015f395f51905f525af1801561085e576139ab575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b81525f516020618a215f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f516020618a015f395f51905f525af1801561085e57613996575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b81525f516020618a415f395f51905f52600482015260406024820152600360448201526210905360ea1b60648201528181608481835f516020618a015f395f51905f525af1801561085e57613981575b50505f516020618a015f395f51905f523b1561085b57806040516318caf8e360e31b8152735c6ee304399dbdb9c8ef030ab642b10820db8f56600482015260406024820152600e60448201526d084be7060848298be6460ae8aa8960931b60648201528181608481835f516020618a015f395f51905f525af1801561085e576115cb5750f35b8161398b91613aaa565b61085b57805f6138fb565b816139a091613aaa565b61085b57805f613889565b816139b591613aaa565b61085b57805f613816565b6139cc91505f90613aaa565b5f5f613793565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d602011613a19575b81613a0b60209383613aaa565b810103126108cc57516136b1565b3d91506139fe565b613a3591503d805f833e6109ef8183613aaa565b5f613666565b346108cc5760403660031901126108cc57613a6c602091613a5b81613a74565b600435815260243583820152613d98565b604051908152f35b604081019081106001600160401b038211176139de57604052565b606081019081106001600160401b038211176139de57604052565b90601f801991011681019081106001600160401b038211176139de57604052565b60206040818301928281528451809452019201905f5b818110613aee5750505090565b82516001600160a01b0316845260209384019390920191600101613ae1565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613b6357505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210613bbd5750505060208060019297019301930191939290613b54565b82516001600160e01b031916845260209384019390920191600190910190613b9e565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613c1257505050505090565b9091929394602080613c30600193603f198682030187528951613b0d565b97019301930191939290613c03565b600e54811015613c5757600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f54811015613c5757601f5f5260205f2001905f90565b90600182811c92168015613cb1575b6020831014613c9d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613c92565b5f9291815491613cca83613c83565b8083529260018116908115613d1f5750600114613ce657505050565b5f9081526020812093945091925b838310613d05575060209250010190565b600181602092949394548385870101520191019190613cf4565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116139de5760051b60200190565b81810292918115918404141715613d6657565b634e487b7160e01b5f52601160045260245ffd5b8115613d84570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715613d66576020613dcf92015190613d7a565b90565b6001600160401b0381116139de57601f01601f191660200190565b6020818303126108cc578051906001600160401b0382116108cc570181601f820112156108cc57805190613e2082613dd2565b92613e2e6040519485613aaa565b828452602083830101116108cc57815f9260208093018386015e8301015290565b908160209103126108cc575190565b601180546001600160a01b0319165f516020618a415f395f51905f52179055565b60405190613e8c82613a8f565b815f81525f60208201526040805191613ea483613a74565b5f83525f60208401520152565b604051610ca09190613ec38382613aaa565b6064815291601f1901825f5b828110613edb57505050565b602090613ee6613e7f565b82828501015201613ecf565b91908201809211613d6657565b805115613c575760200190565b805160011015613c575760400190565b805160021015613c575760600190565b8051821015613c575760209160051b010190565b908160209103126108cc575180151581036108cc5790565b91908260409103126108cc57604051613f7081613a74565b6020808294805184520151910152565b906080828203126108cc57613fb1906040805193613f9d85613a8f565b805185526020810151602086015201613f58565b604082015290565b91908203918211613d6657565b9190606060808401935f5160206189e15f395f51905f5281525f516020618a415f395f51905f5260208201525f516020618a215f395f51905f5260408201520152565b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781519061403d82613d3c565b9261404b6040519485613aaa565b82845260208085019360051b8201019182116108cc57602001915b8183106140735750505090565b8251600a8110156108cc57815260209283019201614066565b51600a8110156140995790565b634e487b7160e01b5f52602160045260245ffd5b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781516140e081613d3c565b926140ee6040519485613aaa565b81845260208085019260051b8201019283116108cc57602001905b8282106141165750505090565b8151815260209182019101614109565b6020818303126108cc578051906001600160401b0382116108cc570181601f820112156108cc57805161415881613d3c565b926141666040519485613aaa565b81845260208085019260061b840101928184116108cc57602001915b838310614190575050505090565b602060409161419f8486613f58565b815201920191614182565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106141ee5750505090565b82518452602093840193909201916001016141e1565b6020818303126108cc578051906001600160401b0382116108cc57019080601f830112156108cc5781519061423882613d3c565b926142466040519485613aaa565b82845260208085019360051b8201019182116108cc57602001915b81831061426e5750505090565b82516001600160a01b03811681036108cc57815260209283019201614261565b9080601f830112156108cc5781516142a581613d3c565b926142b36040519485613aaa565b81845260208085019260051b8201019283116108cc57602001905b8282106142db5750505090565b81518152602091820191016142ce565b60085460ff1680156142fa5790565b50604051630667f9d760e41b81525f516020618a015f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020618a015f395f51905f525afa9081156139d3575f91614354575b50151590565b90506020813d60201161437e575b8161436f60209383613aaa565b810103126108cc57515f61434e565b3d9150614362565b6001600160a01b03811692919061439c82613eff565b516040516348bd7dfd60e01b815260048101919091525f60248201819052604482018190528160648183895af180156139d3576143e0915f916144ee575b506146aa565b15905f5b83518110156144e6576143f78185613f2c565b51906040519163ecbbc03360e01b835260048301525f82602481838b5af180156139d357846144c6916001945f916144cc575b506144458a868060a01b0361443e84613eff565b5116614747565b6144588a868060a01b0361443e84613f0c565b61449082614466868b613f2c565b51878060a01b0361447685613eff565b5116888060a01b0361448786613f0c565b5116918a614891565b61449a8489613f2c565b5190858060a01b036144ab82613f0c565b5116906144bd878060a01b0391613eff565b51169187614891565b016143e4565b6144e091503d805f833e6116098183613aaa565b5f61442a565b505050509050565b61450291503d805f833e612a638183613aaa565b5f6143da565b1561450f57565b634e487b7160e01b5f52600160045260245ffd5b905f516020618a015f395f51905f523b156108cc5760405191638466f41560e01b8352600483015260248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f61457c91613aaa565b565b61459e90602061459382518286015190613d53565b935191015190613d53565b908082036145ac5750505f90565b11156145b757600190565b5f1990565b5f516020618a015f395f51905f523b156108cc576040519063fe74f05b60e01b82526004820152600160248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f516020618a015f395f51905f523b156108cc5760405190636d83fe6960e11b825260048201525f60248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b905f516020618a015f395f51905f523b156108cc576040519163260a5b1560e21b8352600483015260248201525f816044815f516020618a015f395f51905f525afa80156139d3576145725750565b5f5b81518110156146e1576146c26128ba8284613f2c565b600a811015614099576005146146da576001016146ac565b5050600190565b50505f90565b5f5b81518110156146e1576146ff6128ba8284613f2c565b600a811015614099576009146146da576001016146e9565b5f5b81518110156146e15761472f6128ba8284613f2c565b600a811015614099576008146146da57600101614719565b60405163095ea7b360e01b602082019081526001600160a01b03909316602482018190525f19604480840191909152825292909190614787606484613aaa565b82516001600160a01b038316915f91829182855af1906147a561608c565b82614805575b50816147fa575b50156147bd57505050565b6147f561457c936040519063095ea7b360e01b602083015260248201525f6044820152604481526147ef606482613aaa565b826160bb565b6160bb565b90503b15155f6147b2565b8051919250811591821561481d575b5050905f6147ab565b6148309250602080918301019101613f40565b5f80614814565b60405190614846606083613aaa565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b6101809182526101c09490945260405163549387df60e11b8152905160048201526001600160a01b038083166024830152831660448201529192915f8180606481016101608490520381836001600160a01b0388165af180156139d3576148ff915f91616072575b50613eff565b516101405260606101a081905260405161495c9161491d9082613aaa565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b60408201526101405161617e565b6101a051505f806149e6614a146040516149796101a05182613aaa565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613b0d565b6001600160a01b0387811660448401528916606483015261014051608483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b81526101805160048201526001600160a01b038083166024830152841660448201525f8180606481010381836001600160a01b0388165af180156139d357614a83915f91616058575b506146e7565b9160405192614a9360a085613aaa565b6004845260803660208601371561604b575f5b614aaf84613eff565b526103e86101405104614ac184613f0c565b526101405160011c614ad284613f1c565b52825160031015613c57576080830161014051905260405163155adc9160e31b81525f8180614b0a87898861018051600486016141aa565b0381836001600160a01b0387165af19081156139d3575f91616031575b50614b3a614b3482613eff565b51613d98565b81515f19810191908211613d6657614b58614b34614bb39385613f2c565b6101a0516040519290614b6b9084613aaa565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526161e5565b614bbf614b3482613eff565b81515f198101908111613d6657614c5c614c755f93614be2614b34869588613f2c565b6101a051604051929190614bf69084613aaa565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b60208601526101a05160248601526084850190613b0d565b916044840152606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa506101a051604051614cdc91614c9f9082613aaa565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b604082015261621a565b614d2f614ce882613eff565b515160406101e081905280519190614d009083613aaa565b601882527f4e6f6d696e61746f722073686f756c646e277420626520300000000000000000602083015261617e565b614d816020614d3d83613eff565b5101516101e05180519190614d529083613aaa565b601a82527f44656e6f6d696e61746f722073686f756c646e27742062652030000000000000602083015261617e565b614d8d614b3482613eff565b610120526101e0518051614dd091614da59082613aaa565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152610120519061625e565b614dd8613e7f565b5083515f198101908111613d6657614df09085613f2c565b516005818102048103613d66575f806101e0515160208101906370a0823160e01b825230602482015260248152614e28604482613aaa565b5190875afa50614e3961037661608c565b50601180546001600160a01b0319166001600160a01b038616179055600f805463ffffffff19166370a08231179055600e54600160401b8110156139de576103c3816001614e8a9301600e55613c3f565b905560018060a01b0360115416600f5460e01b60105490614ea96163be565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f526020526101e0515f206101e051516020810190614ef18161043f8888866163a7565b5190205f5260205260ff60036101e0515f2001541615616023575b6001600160a01b0384165f908152600d60205260409020905f5260205261043f614f496101e0515f20936101e051519283916020830195866163a7565b5190205f526020526101e0515f206001810154926002820154614f6c8186613ef2565b615f08575b82546101e05151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f516020618a015f395f51905f525afa968715615ec7575f97615ed4575b506001908201610100031b5f1901811b1986165f516020618a015f395f51905f523b156108cc576101e051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f516020618a015f395f51905f525af18015615ec757615eb2575b50600f5460e01b602061508d6024615053600d616498565b6101e051519384918183019663ffffffff60e01b1687528051918291018484015e810161016051838201520301601f198101835282613aaa565b60115461016051915191928392916001600160a01b03165afa60c0526150b161608c565b6010546001600160fb1b03811681036156f2576101605160a08190528251610100919091526020811115615ea957506020610100525b6101605160e0525b6101005160e05110615e3757505060c05115908115615e27575b50615d355750505061511961705e565b6101e05151634b88b8ad60e11b8152602081600481610160515f516020618a015f395f51905f525af1801561565a5761016051608052615d02575b5060015b845181101561572a575f8061521561523b61517285613c6b565b5061517d868b613f2c565b51615227610fd96151ed6101e051519461519a6101a05187613aaa565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b6101e0518701526101e0515192838092613cbb565b6101e05151635821efa160e01b60208201526101a05160248201529586946084860190613b0d565b84810360231901604486015290613b0d565b90606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa5061525d614b348284613f2c565b5f806152d56152fa61526f868b613f2c565b516101e05151906152836101e05183613aaa565b601782527f544553543a205377617070696e67202564206f6620257300000000000000000060208301526101e0515193849263038fd88960e31b60208501526101a05160248501526084840190613b0d565b60448301919091526001600160a01b038b16606483015203601f198101835282613aaa565b6020815191016a636f6e736f6c652e6c6f675afa50615368608061531e8489613f2c565b516101e05151638307c65560e01b81526101805160048201526001600160a01b03808a1660248301528b1660448201525f60648201526084810191909152918290819060a4820190565b03816101605160018060a01b038a165af190811561565a57610160519161570c575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156156f2576153d76153e3916a084595161401484a0000006153cf878c613f2c565b519102613d7a565b916101e0510151613d98565b91615429826101e051516153fa6101e05182613aaa565b601d81527f544553543a20202d2045786563757465642070726963653a2020202564000000602082015261625e565b61546e816101e0515161543f6101e05182613aaa565b601d81527f544553543a20202d20507269636520617420616d6f756e743a20202564000000602082015261625e565b6154b3836101e051516154846101e05182613aaa565b601d81527f544553543a20202d20507269636520616674657220737761703a202564000000602082015261625e565b6101c0511561566a576101a0516101e051516155f4946155939390926155269291906154df9083613aaa565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b6101e051830152856162a1565b6101a0516101e05151919061553b9083613aaa565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e0000000000000000006101e051830152836161e5565b6101a0516101e0515191906155a89083613aaa565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b6101e051830152610120516161e5565b6101e0515190631135fc2960e21b82526080516004830152602082602481610160515f516020618a015f395f51905f525af191821561565a5760019261563c575b5001615158565b6156539060203d8111610717576107088183613aaa565b505f615635565b6101e051513d61016051823e3d90fd5b61568f906156876156ed9461567d614837565b90610120516162a1565b61567d614837565b6101e05151906156a26101a05183613aaa565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b6101e051830152610120516162a1565b6155f4565b634e487b7160e01b61016051526011600452602461016051fd5b615724915060803d8111610750576107428183613aaa565b5f61538a565b5050915060696101405102610140518104606914610140511517156156f2576101e051516348bd7dfd60e01b815261016080516101805160048401526001600160a01b0385811660248501528781166044850152915160649485900496949192849291839187165af1801561565a576157ad916101605191615ce5575b50614717565b15615b9c57615818836101e051516157c86101a05182613aaa565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101e05182015261625e565b6101e0518051939061582a9085613aaa565b600184526101e051601f190136602086013761584584613eff565b526101e0515163155adc9160e31b815261016051818061586e87898861018051600486016141aa565b03816101605160018060a01b0387165af19081615b81575b50615b145760016158956162d6565b6308c379a014615a83575b61565a57615900936158b3608094613eff565b516101e05151638307c65560e01b81526101805160048201526001600160a01b0394851660248201529390911660448401525f6064840152608483015290928391908290819060a4820190565b61016051919003926001600160a01b03165af19081615a66575b50615a035760016159296162d6565b6308c379a01461597d575b61565a575b61457c6101e0515161594e6101e05182613aaa565b601781527f544553543a20416c6c207465737473207061737365642e000000000000000000602082015261621a565b6159856162f1565b80615991575b50615934565b610160516101a0516101e051519193506159fd9291906159b19082613aaa565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101e051820152616363565b5f61598b565b6101e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b615a7e9060803d608011610750576107428183613aaa565b61591a565b615a8b6162f1565b80615a97575b506158a0565b610160516101a0516101e05151919350615b0e929190615ab79082613aaa565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101e051820152616363565b5f615a91565b6101e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b615b97903d8061016051833e6117e78183613aaa565b615886565b6101a0516101e05151939493615c0491869190615bb99082613aaa565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101e05182015261625e565b6101e05180519490615c169086613aaa565b600185526101e051601f1901366020870137615c3185613eff565b526101e051519263155adc9160e31b8452610160518480615c5b88858861018051600486016141aa565b03816101605160018060a01b0387165af1801561565a57615c87956080956158b392615cca5750613eff565b61016051919003926001600160a01b03165af1801561565a57615cab575b50615939565b615cc39060803d608011610750576107428183613aaa565b505f615ca5565b615ce0903d8061016051833e6117e78183613aaa565b6148f9565b615cfc91503d8061016051833e612a638183613aaa565b5f6157a7565b6020813d602011615d2d575b81615d1b60209383613aaa565b810103126108cc57516080525f615154565b3d9150615d0e565b54915f516020618a015f395f51905f523b15615e20576101e051516370ca10bb60e01b8152610160516001600160a01b039093166004820152602481019390935260448301528180606481010381610160515f516020618a015f395f51905f525af1801561565a57615e05575b6101e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61016051615e1291613aaa565b61016051615e205780615da2565b6101605180fd5b905060050260a05114155f615109565b615e4660e0518260051b613ef2565b8251811015615e8f57602060ff60f81b91840101511660e05160e05160031b0460081460e0511517156156f25760e05160031b1c60a0511760a052600160e0510160e0526150ef565b634e487b7160e01b61016051526032600452602461016051fd5b610100526150e7565b5f615ebc91613aaa565b5f610160525f61503b565b6101e051513d5f823e3d90fd5b9096506020813d602011615f00575b81615ef060209383613aaa565b810103126108cc57519581614fc0565b3d9150615ee3565b615f128186613ef2565b610100036101008111613d665760ff8111613d66576101e0515163348051d760e11b81526001821b60048201525f816024815f516020618a015f395f51905f525afa918215615ec757615fd2606a6020946001945f91616009575b506101e051519586915f516020618a615f395f51905f52828401525f5160206189c15f395f51905f526101e05184015269030ba32b9103a3430b7160b51b6101a0518401528051918291018484015e81015f838201520301601f198101855284613aaa565b1b836005021015615fe35750614f71565b6101e0515162461bcd60e51b8152602060048201529081906109d6906024830190613b0d565b61601d91503d805f833e6109ef8183613aaa565b5f615f6d565b61602b616794565b50614f0c565b61604591503d805f833e6117e78183613aaa565b5f614b27565b6127106101405104614aa6565b61606c91503d805f833e612a638183613aaa565b5f614a7d565b61608691503d805f833e610d2c8183613aaa565b5f6148f9565b3d156160b6573d9061609d82613dd2565b916160ab6040519384613aaa565b82523d5f602084013e565b606090565b81516160e6926001600160a01b03909216915f91829160200182855af16160e061608c565b91616736565b805190816160f2575050565b602080616103938301019101613f40565b1561610a57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b613dcf9392606092825260208201528160408201520190613b0d565b5f516020618a015f395f51905f523b156108cc576161c6915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613b0d565b03815f516020618a015f395f51905f525afa80156139d3576145725750565b905f516020618a015f395f51905f523b156108cc575f916161c66040519485938493636cd1e26960e11b855260048501616162565b5f61043f616247829360405192839163104c13eb60e21b6020840152602060248401526044830190613b0d565b6020815191016a636f6e736f6c652e6c6f675afa50565b61628d6162475f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613b0d565b90604483015203601f198101835282613aaa565b905f516020618a015f395f51905f523b156108cc575f916161c66040519485938493630389490b60e61b855260048501616162565b5f9060033d116162e257565b905060045f803e5f5160e01c90565b5f60443d10613dcf576040513d600319016004823e8051913d60248401116001600160401b0384111761635d57828201928351916001600160401b038311616355573d840160031901858401602001116163555750613dcf92910160200190613aaa565b949350505050565b92915050565b6163956162475f939261043f8594604051948593634b5c427760e01b6020860152604060248601526064850190613b0d565b83810360231901604485015290613b0d565b60209291908391805192839101825e019081520190565b6163c9601454613c83565b616486576040519081826020600e549283815201600e5f5260205f20925f5b81811061646d5750506163fd92500383613aaa565b81518060051b9080820460201490151715613d665761641b81613dd2565b906164296040519283613aaa565b808252616438601f1991613dd2565b013660208301375f5b8351811015616468578061645760019286613f2c565b5160208260051b8501015201616441565b509150565b84548352600194850194879450602090930192016163e8565b604051613dcf81610fd9816014613cbb565b60078101906164a78254613c83565b61656357600191500190604051808360208295549384815201905f5260205f20925f5b81811061654a5750506164df92500383613aaa565b81518060051b9080820460201490151715613d66576164fd81613dd2565b9061650b6040519283613aaa565b80825261651a601f1991613dd2565b013660208301375f5b8351811015616468578061653960019286613f2c565b5160208260051b8501015201616523565b84548352600194850194879450602090930192016164ca565b50613dcf610fd99160405192838092613cbb565b5f806020600f5460e01b6165c56024616590600d616498565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613aaa565b6011549151916001600160a01b03165afa906165df61608c565b601054909290600581901b906001600160fb1b03811603613d66575f938051602081115f1461666a57506020905b5f925b82841061661f57505050509190565b9091929561662d8783613ef2565b8351811015613c5757830160200151600388901b91906001600160f81b031916881560088a8504141715613d66576001921c179601929190616610565b9061660d565b905f806020600285015460e01b61668b602461659088616498565b60048601549151916001600160a01b03165afa60036166a861608c565b930154600581901b906001600160fb1b03811603613d66575f938051602081115f1461673057506020905b5f925b8284106166e557505050509190565b909192956166f38783613ef2565b8351811015613c5757830160200151600388901b91906001600160f81b031916881560088a8504141715613d66576001921c1796019291906166d6565b906166d3565b9061675a575080511561674b57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061678b575b61676b575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15616763565b601154600f546010546001600160a01b03909216915f9160e01b6167b8600d616498565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906167f18161043f8888866163a7565b5190205f5260205260ff600360405f2001541661701d575f516020618a015f395f51905f523b156108cc5760405163266cf10960e01b81525f81600481835f516020618a015f395f51905f525af180156139d357617008575b50616855600d616670565b90506040516365bc948160e01b81528660048201528581602481835f516020618a015f395f51905f525af1908115610757578691616fa0575b5080516168ff57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015616f985781602061691a8361694b95613f2c565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020618a015f395f51905f525afa928315616f8d578893616f5a575b508215616f02575b61697d8282613f2c565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020618a015f395f51905f525afa908115616ef7578b91616ec6575b506169d8600d616670565b91909382155f14616ebf575f19905b5f516020618a015f395f51905f523b15616ea6576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020618a015f395f51905f525af18015616e2b57908d91616eaa575b5050616a58600d616670565b601154909491506001600160a01b03165f516020618a015f395f51905f523b15616ea6576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020618a015f395f51905f525af18015616e9b57908c91616e82575b505082616e77575b505015616e6d578793889360ff60135416616cf2575b6001868601610100031b5f1901851b16841c8103616ce4575090616b72917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8961043f616b478d6040519283916020830195866163a7565b519020616b548686613f2c565b51906040519283528a602084015260408301526060820152a1613f2c565b51906040519060808201928284106001600160401b038511176139de5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190616bdb8161043f8d8d866163a7565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190616c368161043f8888866163a7565b519020855260205260ff60036040862001541615616c87576040948452600d60205284842090845260205261043f616c7b8585209386519283916020830195866163a7565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01616901565b9450616d3d9350616d038383613f2c565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020618a015f395f51905f525afa94851561259e578a95616e3a575b50616d6986600d617177565b959096616d7781600d617250565b60115490939192906001600160a01b03165f516020618a015f395f51905f523b15616e36576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020618a015f395f51905f525af18015616e2b57908d91616e12575b505087616e0a575b509495616aec575093509150600190616cec565b96505f616df6565b81616e1c91613aaa565b616e27578b5f616dee565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616e65575b81616e5560209383613aaa565b810103126108cc5751935f616d5d565b3d9150616e48565b9150600190616cec565b141590505f80616ad6565b81616e8c91613aaa565b616e97578a5f616ace565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81616eb491613aaa565b616e27578b5f616a4c565b8c906169e7565b90506020813d8211616eef575b81616ee060209383613aaa565b810103126108cc57515f6169cd565b3d9150616ed3565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5616f52616f308484613f2c565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1616973565b9092506020813d8211616f85575b81616f7560209383613aaa565b810103126108cc5751915f61696b565b3d9150616f68565b6040513d8a823e3d90fd5b505050616c09565b90503d8087833e616fb18183613aaa565b8101604082820312610a895781516001600160401b0381116170045781616fd991840161428e565b916020810151906001600160401b03821161700057616ff992910161428e565b505f61688e565b8880fd5b8780fd5b6170159194505f90613aaa565b5f925f61684a565b91939092505f52600d60205260405f20905f5260205261043f61704f60405f20936040519283916020830195866163a7565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580617135575b505f60105560ff19601354166013556170a9601454613c83565b806170b15750565b601f81116001146170c357505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061712a57505060145f525f602081208160145555565b5f8155600101617111565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061716c575061708f565b5f815560010161715f565b91905f5b610100811061718e57505090505f905f90565b8060ff0360ff8111613d66576004850154600190911b906001600160a01b03165f516020618a015f395f51905f523b156108cc576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020618a015f395f51905f525af180156139d357617240575b5061721a84616670565b81617236575b5061722d5760010161717b565b92505060019190565b905015155f617220565b5f61724a91613aaa565b5f617210565b91905f5b610100811061726757505090505f905f90565b60048401546001821b906001600160a01b03165f516020618a015f395f51905f523b156108cc576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020618a015f395f51905f525af180156139d357617303575b506172e684616670565b816172f9575b5061722d57600101617254565b905015155f6172ec565b5f61730d91613aaa565b5f6172dc56fe60a03461009c57601f6116ad38819003918201601f19168301916001600160401b038311848410176100a05780849260209460405283398101031261009c57516001600160a01b0381169081900361009c576080526040516115f890816100b5823960805181818160a10152818161033d01528181610634015281816106a101528181610852015281816109280152818161108e01526112b10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca0114610ae55750806348bd7dfd14610a0e5780638307c6551461054f578063a9270fbe146102fb578063aad6e4881461017a578063ba9285fe14610156578063e357d6f9146101285763ecbbc03314610074575f80fd5b3461012457602036600319011261012457604051631f29a8cd60e31b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610119576100f1915f916100f5575b50604051918291602083526020830190610c6b565b0390f35b61011191503d805f833e6101098183610bf3565b810190610d32565b50505f6100dc565b6040513d5f823e3d90fd5b5f80fd5b3461012457604061014461013b36610c2d565b9291909161115c565b60208251918051835201516020820152f35b3461012457602061017261016936610c2d565b92919091610f07565b604051908152f35b3461012457608036600319011261012457600435610196610b39565b9061019f610b4f565b906064359167ffffffffffffffff83116101245736602384011215610124578260040135926101cd84610c15565b936101db6040519586610bf3565b8085526024602086019160051b8301019136831161012457602401905b8282106102eb5750505082519361020e85610c15565b9461021c6040519687610bf3565b80865261022b601f1991610c15565b015f5b8181106102c85750505f5b8451811015610277578061025b61025260019388610cc4565b5185858861115c565b6102658289610cc4565b526102708188610cc4565b5001610239565b856040518091602082016020835281518091526020604084019201905f5b8181106102a3575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610295565b6020906040516102d781610bbb565b5f81525f8382015282828a0101520161022e565b81358152602091820191016101f8565b346101245761030936610b65565b60405192610318606085610bf3565b60028452602084019060403683376040805163f6c0092760e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929181602481865afa908115610119575f91610507575b505f61039061038a836113a1565b9261140e565b92602460405180968193631f29a8cd60e31b835260048301525afa948515610119575f935f966104e4575b5093956001600160a01b0394851694165f5b84518110156104a057816001600160a01b036103e98388610cc4565b51161461045e575b856001600160a01b036104048388610cc4565b511614610414575b6001016103cd565b61041e8188610cc4565b519060038202918083046003149015171561044a57600a600192046104428b610cb4565b52905061040c565b634e487b7160e01b5f52601160045260245ffd5b808303610475578361046f8a610ca7565b526103f1565b61047f8188610cc4565b5160038102908082046003149015171561044a57600a900461046f8a610ca7565b8789604051918291602083019060208452518091526040830191905f5b8181106104cb575050500390f35b82518452859450602093840193909201916001016104bd565b9095506104fc9193503d805f833e6101098183610bf3565b5092909294886103bb565b90506040813d604011610547575b8161052260409383610bf3565b8101031261012457602061053582610d1e565b91015160ff811603610124578761037c565b3d9150610515565b346101245760a03660031901126101245760043561056b610b39565b90610574610b4f565b60643591600283101561012457604051926060840184811067ffffffffffffffff821117610902576040525f84525f60208501526040516105b481610bbb565b5f81525f602082015260408501526105cb81610cf0565b6109f4575f90608435925f935b6040516323b872dd60e01b6020820152336024820152306044820152606480820183905281526001600160a01b038816919061061f90610619608482610bf3565b836114ba565b604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482015290602082604481865afa918215610119575f926109c0575b50810180911161044a575f8060405192602084019063095ea7b360e01b825260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001660248601526044850152604484526106da606485610bf3565b83519082865af16106e9611525565b81610991575b5080610987575b15610916575b505a936040519160c0830183811067ffffffffffffffff82111761090257604052848352602083019161072e81610cf0565b82526040830190815260018060a01b03841660608401526080830191608435835260209760405161075f8a82610bf3565b5f815260a086019081526040519161077683610b9f565b3083525f8b8401523360408401525f60608401526103e842019182421161044a5761080b610843918d986040519a8b998a996352bbbe2960e01b8b5260e060048c0152825160e48c0152516107ca81610cf0565b6101048b0152516001600160a01b039081166101248b01526060919091015116610144890152516101648801525160c06101848801526101a4870190610cfa565b84516001600160a01b039081166024880152602086015115156044880152604086015116606487015260609094015115156084860152565b60a484015260c483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610119575f916108d5575b5085525a830392831161044a576080956108ac9360208701526084359261115c565b604083015260408051928051845260208101518385015201518051604084015201516060820152f35b90508481813d83116108fb575b6108ec8183610bf3565b8101031261012457518761088a565b503d6108e2565b634e487b7160e01b5f52604160045260245ffd5b60405163095ea7b360e01b60208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201525f6044808301919091528152610981919061097b90610975606482610bf3565b846114ba565b826114ba565b876106fc565b50813b15156106f6565b80518015925082156109a6575b5050896106ef565b6109b992506020809183010191016114a2565b898061099e565b9091506020813d6020116109ec575b816109dc60209383610bf3565b8101031261012457519089610679565b3d91506109cf565b600190610a05608435848784610f07565b5f1993906105d8565b3461012457610a1c36610b65565b505050604051610a2d60a082610bf3565b600481526020810160803682376001610a4583610ca7565b526002610a5183610cb4565b52815160021015610ad15760036060830152815160031015610ad15760086080830152604051906020820192602083525180935260408201905f935b808510610a9a5783830384f35b9091825190600a821015610abd5760208160019382935201930194019390610a8d565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461012457604036600319011261012457631d04569d60e21b815260206004820181905260248201527f42616c616e636572563253776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b038216820361012457565b604435906001600160a01b038216820361012457565b606090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b03811681036101245790565b6080810190811067ffffffffffffffff82111761090257604052565b6040810190811067ffffffffffffffff82111761090257604052565b60a0810190811067ffffffffffffffff82111761090257604052565b90601f8019910116810190811067ffffffffffffffff82111761090257604052565b67ffffffffffffffff81116109025760051b60200190565b608090600319011261012457600435906024356001600160a01b038116810361012457906044356001600160a01b0381168103610124579060643590565b90602080835192838152019201905f5b818110610c885750505090565b82516001600160a01b0316845260209384019390920191600101610c7b565b805115610ad15760200190565b805160011015610ad15760400190565b8051821015610ad15760209160051b010190565b60405190610ce582610bbb565b5f6020838281520152565b60021115610abd57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361012457565b909160608284031261012457815167ffffffffffffffff811161012457820183601f8201121561012457805190610d6882610c15565b91610d766040519384610bf3565b80835260208084019160051b8301019186831161012457602001905b828210610e165750505092602083015167ffffffffffffffff81116101245783019080601f83011215610124578151610dca81610c15565b92610dd86040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610e065750505060409092015190565b8151815260209182019101610df3565b60208091610e2384610d1e565b815201910190610d92565b60408051909190610e3f8382610bf3565b6001815291601f1901825f5b828110610e5757505050565b602090604051610e6681610bd7565b5f81525f838201525f60408201525f60608201526060608082015282828501015201610e4b565b6020818303126101245780519067ffffffffffffffff821161012457019080601f83011215610124578151610ec181610c15565b92610ecf6040519485610bf3565b81845260208085019260051b82010192831161012457602001905b828210610ef75750505090565b8151815260209182019101610eea565b929091610f12610e2e565b9160405194610f2086610bd7565b85525f6020860152600160408601526060850152602093604051610f448682610bf3565b5f81526080820152610f5583610ca7565b52610f5f82610ca7565b50606060405191610f708284610bf3565b60028352601f19820194853688860137610f8984610ca7565b6001600160a01b039091169052610f9f83610cb4565b6001600160a01b03909116905260405193610fb985610b9f565b3385525f868601523360408601525f82860152604051610fd98382610bf3565b600281528636910137604051637c26833760e11b81529460e48601919091869493926001600487015260e0602487015284518092526101048601928161010060048560051b8a0101019601935f915b8483106110f5575050505050509261108961105184935f96600319868303016044870152610c6b565b82516001600160a01b03908116606486015260208401511515608486015260408401511660a4850152606090920151151560c4840152565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610119576110cf915f916110d3575b50610ca7565b5190565b6110ef91503d805f833e6110e78183610bf3565b810190610e8d565b5f6110c9565b9193959692806111476001939582989b60ff19906003199083030101875260a060808d518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b99019301930190928997969593949294611028565b9192611166610cd8565b5061116f610e2e565b906040519361117d85610bd7565b84525f60208501526001604085015260608401526020926040516111a18582610bf3565b5f815260808201526111b282610ca7565b526111bc81610ca7565b506040516060946111cd8683610bf3565b60028252601f198601938436878501376111e683610ca7565b6001600160a01b0390911690526111fc82610cb4565b6001600160a01b0390911690526040519261121684610b9f565b3384525f858501523360408501525f868501526040516112368782610bf3565b600281528536910137604051637c26833760e11b81529460e4860190869392915f600486015260e0602486015283518091526101048501918761010060048460051b890101019501925f915b8984841061133e57505050505050926112ac61105184935f96600319868303016044870152610c6b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610119575f92611322575b506112f382610cb4565b5191600160ff1b831461044a5761130990610ca7565b51906040519261131884610bbb565b5f03835282015290565b6113379192503d805f833e6110e78183610bf3565b905f6112e9565b61138e600193959798829395979a60ff19906003199083030101875260a060808c518051845285810151868501526040810151604085015288810151898501520151918160808201520190610cfa565b9801930193019092899695949293611282565b6040516341343d2b60e11b815290602090829060049082906001600160a01b03165afa5f91816113da575b506113d757505f1990565b90565b9091506020813d602011611406575b816113f660209383610bf3565b810103126101245751905f6113cc565b3d91506113e9565b60405163876f303b60e01b81526001600160a01b039190911690602081600481855afa5f918161146e575b5061146957506020600491604051928380926337a0b34d60e21b82525afa5f91816113da57506113d757505f1990565b905090565b9091506020813d60201161149a575b8161148a60209383610bf3565b810103126101245751905f611439565b3d915061147d565b90816020910312610124575180151581036101245790565b5f806114e29260018060a01b03169360208151910182865af16114db611525565b9083611564565b805190811515918261150a575b50506114f85750565b635274afe760e01b5f5260045260245ffd5b61151d92506020809183010191016114a2565b155f806114ef565b3d1561155f573d9067ffffffffffffffff82116109025760405191611554601f8201601f191660200184610bf3565b82523d5f602084013e565b606090565b90611588575080511561157957805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115b9575b611599575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561159156fea2646970667358221220e3f14a8e559a59d2985f6223d165fe9c31be449a354e673b7d50555a0236e43d64736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772655c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d73746453746f726167652066696e642853746453746f72616765293a20506163a26469706673582212209eca23e322fd34a834ef83680e1ad8a26f403dcb304877d2c940ba77774c579264736f6c634300081b0033","sourceMap":"273:7942:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;893:3;;;-1:-1:-1;;893:3:67;273:7942;893:3;;;;5887:28;;:::i;:::-;5931:13;;5946:19;893:3;5946:19;;;;6613:13;;;6628:23;785:66;6628:23;;;;273:7942;;;6653:3;6681:9;;;;:::i;:::-;;273:7942;6009:1;893:3;;;;;;;;6827:53;6709:13;:30;6818:66;6709:13;;6009:1;6709:13;;;;:::i;:::-;;273:7942;6709:30;;:::i;:::-;6782:21;893:3;6763:9;;;;:::i;:::-;;:17;273:7942;893:3;6782:13;;;;:::i;:::-;;:21;273:7942;6782:21;;:::i;:::-;273:7942;6860:13;6827:9;;;;;:::i;:::-;;:15;;893:3;6860:13;;:::i;:::-;;:19;;6827:53;;:::i;:::-;785:66;;6818;:::i;:::-;893:3;6613:13;;893:3;-1:-1:-1;;;523:5:65;;6854:12:8;273:7942:67;523:5:65;27501:38:3;273:7942:67;523:5:65;5967:3:67;6009:1;893:3;;;;;;;523:5:65;5999:2:67;523:5:65;;5999:2:67;523:5:65;;;;;;;;;;;;6014:8:67;523:5:65;;;;;;;5986:36:67;;;;:::i;:::-;893:3;273:7942;;-1:-1:-1;;;6058:13:67;;273:7942;893:3;273:7942;;;6058:13;-1:-1:-1;;;;;;;;;;;6058:13:67;;;;;;;;;;;5967:3;-1:-1:-1;893:3:67;409:59;273:7942;;;;6110:96;;-1:-1:-1;;;;;273:7942:67;6182:10;;;;:::i;:::-;273:7942;;;1590:14:0;;;;;;;;;6110:96:67;;273:7942;6110:96;;;:::i;:::-;;;;;;;;;;;;;5967:3;6256:48;:10;;:30;:10;;;;:::i;:::-;273:7942;893:3;6269:17;;273:7942;6256:30;;:::i;:::-;273:7942;;6256:48;;:::i;:::-;523:5:65;6009:1:67;523:5:65;;;;;6308:1:67;523:5:65;;;;;;;273:7942:67;;;;893:3;27501:38:3;;1590:14:0;;;;27501:38:3;;6342:4:67;27501:38:3;;;273:7942:67;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;893:3:67;273:7942;;;27568:30:3;;;;;;:::i;:::-;;6854:22:8;;:::i;:::-;27524:10:3;273:7942:67;;7009:9:8;273:7942:67;;;7009:9:8;273:7942:67;7505:10:8;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;6009:1;273:7942;;;7505:10:8;273:7942:67;;:::i;:::-;6342:4;;;;273:7942;;;;;;;;;3489:17;;;273:7942;;;;;;;;;;1048:60;273:7942;;;;6854:12:8;273:7942:67;;7009:9:8;273:7942:67;;1590:14:0;15610:11:8;273:7942:67;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;15703:15:8;;273:7942:67;;;;;;;;893:3;273:7942;;;;;;893:3;15735:37:8;;;;;;;;;;:::i;:::-;;893:3:67;;15735:37:8;;;;;;:::i;:::-;273:7942:67;15725:48:8;;273:7942:67;;893:3;273:7942;;15610:11:8;273:7942:67;;;15703:77:8;273:7942:67;;15702:78:8;15698:126;;5967:3:67;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;;;;893:3;273:7942;15889:37:8;;273:7942:67;;;;;;15889:37:8;;;893:3:67;15889:37:8;;;;;:::i;:::-;273:7942:67;15879:48:8;;273:7942:67;;893:3;273:7942;;;;;15943:15:8;6009:1:67;15943:15:8;;273:7942:67;15961:16:8;6308:1:67;15961:16:8;;273:7942:67;15943:34:8;;;;:::i;:::-;15938:460;;5967:3:67;273:7942;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;273:7942:67;;;16424:32:8;;273:7942:67;893:3;;;273:7942;;;;;;;893:3;273:7942;893:3;273:7942;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5967:3:67;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;273:7942:67;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;273:7942:67;;;16587:43:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;;;;;12656:92:8;;;;12810:59;;;273:7942:67;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5967:3:67;16678:31:8;;;;;:::i;:::-;16724:8;;;273:7942:67;;;16724:29:8;;5967:3:67;16720:176:8;;;;14785:4;;;;893:3:67;6372:47;14785:4:8;;;:::i;:::-;409:59:67;;273:7942;;-1:-1:-1;;;6372:47:67;;-1:-1:-1;;;;;273:7942:67;;;;6372:47;;273:7942;893:3;;;273:7942;;;;;;;;;893:3;;;;;6372:47;;;;-1:-1:-1;;;;;;;;;;;6372:47:67;;;;;;;;5967:3;-1:-1:-1;893:3:67;409:59;-1:-1:-1;;;;;273:7942:67;6445:104;6525:10;;;;:::i;:::-;273:7942;;;-1:-1:-1;;;6445:104:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;6445:104;;273:7942;-1:-1:-1;;;;;;;;;;;27501:38:3;785:66:67;;273:7942;-1:-1:-1;;;;;;;;;;;27501:38:3;785:66:67;;273:7942;6009:1;893:3;785:66;;;;;;273:7942;;;;;;;785:66;;273:7942;;6445:104;;;;;;;;;;;;;5967:3;6433:116;;;;;:::i;:::-;;;;;;:::i;:::-;;273:7942;;1590:14:0;;;;6564:23:67;;273:7942;6564:23;;273:7942;893:3;6564:23;27501:38:3;6564:23:67;;-1:-1:-1;;;;;;;;;;;6564:23:67;;;;;;;6009:1;6564:23;;;5967:3;;893;5931:13;;6564:23;;;893:3;6564:23;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;273:7942;;1590:14:0;273:7942:67;;1590:14:0;;;;6445:104:67;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;273:7942;;1590:14:0;273:7942:67;;1590:14:0;;;;6372:47:67;;;893:3;6372:47;;;;;;;;;:::i;:::-;;;16720:176:8;273:7942:67;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;273:7942:67;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;273:7942:67;;;;;16769:41:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;12810:59:8;;;273:7942:67;;;;;12810:59:8;273:7942:67;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;273:7942:67;;-1:-1:-1;;;16824:61:8;;893:3:67;273:7942;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;273:7942:67;12810:59:8;27501:38:3;273:7942:67;;12810:59:8;-1:-1:-1;;;893:3:67;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;273:7942:67;;16769:41:8;;;273:7942:67;;;16769:41:8;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;16769:41:8;273:7942:67;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;273:7942:67;;16587:43:8;;;;;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;16587:43:8;273:7942:67;;;16424:32:8;;;;;893:3:67;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;1590:14:0;-1:-1:-1;273:7942:67;;16424:32:8;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;785:66:67;16021:3:8;785:66:67;;;;273:7942;;;;;;;-1:-1:-1;;;16314:19:8;;6009:1:67;273:7942;;;;16314:19:8;;273:7942:67;;;16314:19:8;;273:7942:67;27501:38:3;273:7942:67;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;893:3:67;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;273:7942:67;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;273:7942:67;12810:59:8;;;-1:-1:-1;;;785:66:67;12810:59:8;;;273:7942:67;;;;;;12810:59:8;;;273:7942:67;;;;;;;;16170:185:8;;893:3:67;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;273:7942:67;;-1:-1:-1;;;12810:59:8;;893:3:67;273:7942;12810:59:8;;273:7942:67;;;;;;27501:38:3;273:7942:67;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;273:7942:67;;;1590:14:0;;;;;;;;273:7942:67;-1:-1:-1;;;523:5:65;;6854:12:8;273:7942:67;523:5:65;27501:38:3;273:7942:67;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;27501:38:3;273:7942:67;;523:5:65;-1:-1:-1;;;523:5:65;;6854:12:8;273:7942:67;523:5:65;27501:38:3;273:7942:67;523:5:65;6110:96:67;;273:7942;6110:96;;;;;;;;;;:::i;:::-;;;273:7942;;;;;;;;6256:48;273:7942;;;;:::i;:::-;6110:96;;273:7942;;;;6110:96;;;;;6058:13;;;;893:3;6058:13;;;;;;;;;1590:14:0;6058:13:67;;;:::i;:::-;;;1590:14:0;;;;;6058:13:67;;;;;;;-1:-1:-1;6058:13:67;;273:7942;;;;;;;;;;;;;;;1016:26:12;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;1952:7;409:59;273:7942;;-1:-1:-1;;;1952:52:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;1952:52;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;1952:52;273:7942;;1952:52;;;;;;;;;;;273:7942;2015:30;-1:-1:-1;;;;;;;;;;;2015:30:67;;;;273:7942;;-1:-1:-1;;;2015:30:67;;2025:19;273:7942;2015:30;;273:7942;2015:30;273:7942;;;-1:-1:-1;;;;;;;;;;;2015:30:67;;;;;;;;;;;273:7942;2083:9;;;;;:::i;:::-;273:7942;1857:14;2065:27;-1:-1:-1;;;;;;;;;;;2055:38:67;;;;273:7942;;1590:14:0;;;;2055:38:67;;273:7942;2055:38;;273:7942;2055:38;;273:7942;2055:38;-1:-1:-1;;;;;;;;;;;2055:38:67;;;;;;;;273:7942;-1:-1:-1;;273:7942:67;;;-1:-1:-1;;;2128:93:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;2128:93;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;1857:14;1952:52;273:7942;;;;;;;;;;2128:93;;;;;;;;;;;;;273:7942;;1952:7;273:7942;2232:28;2270:30;273:7942;;2232:28;:::i;:::-;2279:17;273:7942;2270:30;:::i;:::-;273:7942;;2128:93;;;273:7942;2128:93;273:7942;2128:93;;;;;;;;:::i;:::-;;;273:7942;;;;;;;;1952:7;273:7942;2270:30;273:7942;;:::i;:::-;2128:93;;;;;;;;;2055:38;;;;;:::i;:::-;273:7942;;2055:38;;;;273:7942;;;;2015:30;;;;;:::i;:::-;273:7942;;2015:30;;;;;273:7942;;1590:14:0;273:7942:67;;1590:14:0;;;;1952:52:67;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;273:7942;;;;;;;;;;;;;;;;;;2421:18:5;273:7942:67;;;;;;;2421:18:5;273:7942:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6992:7;409:59;273:7942;;-1:-1:-1;;;6992:52:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;6992:52;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;;;;;;6992:52;;273:7942;;-1:-1:-1;;;;;273:7942:67;6992:52;;;;;;;7122:21;6992:52;7129:9;6992:52;;;;;273:7942;;7055:26;7079:1;273:7942;;7062:18;7055:26;:::i;:::-;7091:21;7098:9;;;:::i;:::-;273:7942;7098:13;;7091:21;:::i;:::-;7129:9;:::i;6992:52::-;;;;;;;;;;;;;:::i;:::-;;;;273:7942;;;;;;;-1:-1:-1;;273:7942:67;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;273:7942:67;893:3;;;:::i;:::-;273:7942;;;;;;;:::i;:::-;893:3;;;2273:18:5;273:7942:67;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8168:38;273:7942;;;;;;:::i;:::-;8111:1;893:3;;273:7942;;;;;893:3;-1:-1:-1;;;;;;;;;;;8123:35:67;;;:::i;:::-;893:3;273:7942;409:59;-1:-1:-1;;;;;273:7942:67;8168:38;:::i;273:7942::-;;;;;;;-1:-1:-1;;273:7942:67;;;;;;534:59:65;273:7942:67;534:59:65;;;;;;;;:::i;:::-;273:7942:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;7880:23;;;7840:113;;;;;;;;273:7942;7840:113;273:7942;;;;;;;;;;7840:113;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7811:152:67;;;;273:7942;;;;;1590:14:0;;;;;;;7811:152:67;;7840:113;273:7942;7811:152;;273:7942;7840:113;273:7942;;;;:::i;:::-;7811:152;;;-1:-1:-1;;;;;;;;;;;7811:152:67;;;;;;;;273:7942;-1:-1:-1;7840:113:67;409:59;273:7942;;-1:-1:-1;;;7973:28:67;;273:7942;;7973:28;;273:7942;7997:3;7840:113;273:7942;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;7973:28;;;;;;;;273:7942;;;7973:28;;;;;;;;;;:::i;:::-;;;7840:113;273:7942;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;:::i;:::-;;;;;;;;7811:152;;;;;:::i;:::-;273:7942;;7811:152;;;;;273:7942;;;;;;;;;;;;;;;3190:18:5;273:7942:67;893:3;;;:::i;:::-;273:7942;;;;;;;:::i;:::-;893:3;;;3190:18:5;273:7942:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;1048:60;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;893:3;273:7942;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;1590:14:0;273:7942:67;1590:14:0;273:7942:67;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;7635:7;409:59;273:7942;;-1:-1:-1;;;7635:41:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;7635:41;;273:7942;;;;;;;7635:41;;273:7942;;-1:-1:-1;;;;;273:7942:67;7635:41;;;;;;;;;;;273:7942;-1:-1:-1;;;;;;7696:9:67;;;:::i;:::-;273:7942;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;273:7942:67;;1590:14:0;;;;3533:24:1;;273:7942:67;3533:24:1;;273:7942:67;-1:-1:-1;;;;;;;;;;;7635:41:67;273:7942;;;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;;;;273:7942:67;-1:-1:-1;;;;;;273:7942:67;7730:9;;-1:-1:-1;7730:9:67;:::i;:::-;273:7942;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;273:7942:67;;1590:14:0;;;;3533:24:1;;273:7942:67;3533:24:1;;273:7942:67;-1:-1:-1;;;;;;;;;;;7635:41:67;273:7942;;;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;273:7942:67;;3533:24:1;;;;;:::i;:::-;273:7942:67;;3533:24:1;273:7942:67;3533:24:1;;;;;:::i;:::-;273:7942:67;;3533:24:1;;;;;273:7942:67;;;7635:41;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;273:7942;;;;;;;;;;;;;2707:18:5;273:7942:67;893:3;;;:::i;:::-;273:7942;;;;;;;:::i;:::-;893:3;;;2707:18:5;273:7942:67;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1448:1;893:3;;;;;;;;;273:7942;893:3;;1473:4;1460:17;;;:::i;:::-;893:3;1500:4;1487:17;;;:::i;:::-;893:3;;409:59;273:7942;;-1:-1:-1;;;1554:57:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;1554:57;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;1554:57;;;;;;;;;;;;;;273:7942;1627:13;;1661:3;273:7942;;1642:17;;;;;1689:9;1680:32;1689:9;1495:1;1689:9;;;:::i;:::-;;273:7942;1680:32;:::i;:::-;1726:34;893:3;1735:9;;;;:::i;:::-;;:21;273:7942;1726:34;:::i;:::-;893:3;1627:13;;1554:57;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;273:7942;;;;;;;-1:-1:-1;273:7942:67;;-1:-1:-1;893:3:67;273:7942;;;;;;;;1495:1;273:7942;;;;;;;;;;-1:-1:-1;;273:7942:67;;;;;;;;;;;;;;;3072:38;;;273:7942;3072:38;-1:-1:-1;;;;;;;;;;;3120:30:67;;;;273:7942;;-1:-1:-1;;;3120:30:67;;3130:19;;;273:7942;3120:30;;273:7942;;;;;;;-1:-1:-1;;;;;;;;;;;3120:30:67;;;;;;;;3072:38;-1:-1:-1;273:7942:67;409:59;273:7942;;-1:-1:-1;;;3199:52:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;3199:52;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;;;;;3199:52;;273:7942;;-1:-1:-1;;;;;273:7942:67;3199:52;;;;;;;;;;;3072:38;785:66;;;;;;;3266:21;273:7942;3266:21;;3262:519;;;3266:21;;;3331:9;;;:::i;:::-;273:7942;3313:27;;-1:-1:-1;;;;;;;;;;;3303:38:67;;;;273:7942;;1590:14:0;;;;3303:38:67;;273:7942;3303:38;;273:7942;3303:38;;273:7942;3303:38;-1:-1:-1;;;;;;;;;;;3303:38:67;;;;;;;;3262:519;273:7942;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;3482:4:67;273:7942;27501:38:3;;273:7942:67;;27501:38:3;;;273:7942:67;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;273:7942:67;;7009:9:8;273:7942:67;;;7009:9:8;273:7942:67;7505:10:8;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;;;;;7505:10:8;273:7942:67;;:::i;:::-;;;1048:60;273:7942;;;;6854:12:8;273:7942:67;;7009:9:8;273:7942:67;;1590:14:0;15610:11:8;273:7942:67;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;15703:15:8;;273:7942:67;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;273:7942:67;15725:48:8;;273:7942:67;;;;;15610:11:8;273:7942:67;;;15703:77:8;273:7942:67;;15702:78:8;15698:126;;3262:519:67;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;;;;;;15889:37:8;;273:7942:67;;;;;;15889:37:8;;;273:7942:67;15889:37:8;;;;;:::i;:::-;273:7942:67;15879:48:8;;273:7942:67;;;;;;;;15943:15:8;273:7942:67;15943:15:8;;273:7942:67;15961:16:8;785:66:67;15961:16:8;;273:7942:67;15943:34:8;;;;:::i;:::-;15938:460;;273:7942:67;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;273:7942:67;;;16424:32:8;;273:7942:67;893:3;;;273:7942;;;;;;;;;893:3;273:7942;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;3262:519:67;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;273:7942:67;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;273:7942:67;;;16587:43:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;-1:-1:-1;;273:7942:67;;;12656:92:8;12810:59;;;273:7942:67;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;3262:519:67;16678:31:8;;;;:::i;:::-;16724:8;;273:7942:67;;;16724:29:8;;3262:519:67;16720:176:8;;;14785:4;;;;;;:::i;:::-;273:7942:67;409:59;;273:7942;;-1:-1:-1;;;3521:56:67;;-1:-1:-1;;;;;273:7942:67;;;;3521:56;;273:7942;-1:-1:-1;;273:7942:67;893:3;;273:7942;;;;;3521:56;-1:-1:-1;;;;;;;;;;;3521:56:67;;;;;;;;3262:519;;;273:7942;;-1:-1:-1;;;3813:36:67;;3843:4;273:7942;3813:36;;273:7942;;;;;;-1:-1:-1;;;;;;;;;;;3813:36:67;;;;;;;;;;;3262:519;-1:-1:-1;273:7942:67;;-1:-1:-1;;;3882:37:67;;3843:4;273:7942;3882:37;;273:7942;;;;;;-1:-1:-1;;;;;;;;;;;3882:37:67;;;;;;;;;;;3262:519;-1:-1:-1;273:7942:67;409:59;273:7942;;-1:-1:-1;;;3951:92:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;3951:92;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;785:66;;273:7942;-1:-1:-1;;;;;;;;;;;273:7942:67;785:66;;273:7942;3199:52;785:66;;;;;;;;;273:7942;;;785:66;;273:7942;;785:66;;273:7942;;3951:92;;-1:-1:-1;;;;;273:7942:67;3951:92;;;;;;;;;;;3262:519;273:7942;;;4054:749;;273:7942;;;4054:749;4104:21;;;273:7942;;-1:-1:-1;;;4212:37:67;;3843:4;273:7942;4212:37;;273:7942;;;;;-1:-1:-1;;;;;;;;;;;4212:37:67;;;;;;;;;;;4100:693;4212:52;;;;;;:::i;:::-;;;:::i;:::-;273:7942;;;-1:-1:-1;;;4388:36:67;;3843:4;273:7942;4388:36;;273:7942;;;;;-1:-1:-1;;;;;;;;;;;4388:36:67;;;;;;;;;;;4100:693;4374:50;;;;;;:::i;:::-;4054:749;;;;;273:7942;;;4388:36;;;273:7942;4388:36;;273:7942;4388:36;;;;;;1590:14:0;4388:36:67;;;:::i;:::-;;;1590:14:0;;;;;4374:50:67;4388:36;;;;;-1:-1:-1;4388:36:67;;4212:37;;;273:7942;4212:37;;273:7942;4212:37;;;;;;1590:14:0;4212:37:67;;;:::i;:::-;;;1590:14:0;;;;;4212:52:67;:37;;;;;-1:-1:-1;4212:37:67;;4100:693;273:7942;;-1:-1:-1;;;4562:36:67;;3843:4;273:7942;4562:36;;273:7942;;;;;;;;-1:-1:-1;;;;;;;;;;;4562:36:67;;;;;;;;;;;4100:693;4548:50;;;;;;:::i;:::-;273:7942;;;-1:-1:-1;;;4708:37:67;;3843:4;273:7942;4708:37;;273:7942;;;;;-1:-1:-1;;;;;;;;;;;4708:37:67;;;;;;;;;;;4100:693;4708:52;;;;;;:::i;:::-;4100:693;;4708:37;;;273:7942;4708:37;;273:7942;4708:37;;;;;;1590:14:0;4708:37:67;;;:::i;:::-;;;1590:14:0;;;;;4708:52:67;:37;;;;;-1:-1:-1;4708:37:67;;4562:36;;;273:7942;4562:36;;273:7942;4562:36;;;;;;1590:14:0;4562:36:67;;;:::i;:::-;;;1590:14:0;;;;;4548:50:67;4562:36;;;;;-1:-1:-1;4562:36:67;;3951:92;;;;;785:66;3951:92;785:66;3951:92;;;;;;;:::i;:::-;;;;;3882:37;;;;273:7942;3882:37;;273:7942;3882:37;;;;;;1590:14:0;3882:37:67;;;:::i;:::-;;;1590:14:0;;;;;3882:37:67;;;;;;;-1:-1:-1;3882:37:67;;3813:36;;;;273:7942;3813:36;;273:7942;3813:36;;;;;;1590:14:0;3813:36:67;;;:::i;:::-;;;1590:14:0;;;;;3813:36:67;;;;;;;-1:-1:-1;3813:36:67;;3521:56;;;273:7942;3521:56;273:7942;3521:56;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3489:17:67;16724:29:8;;16587:43;;;;;:::i;:::-;273:7942:67;;16587:43:8;;;;16424:32;;;;;273:7942:67;16424:32:8;;273:7942:67;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;785:66:67;16021:3:8;785:66:67;;;;273:7942;;;;;;;-1:-1:-1;;;16314:19:8;;273:7942:67;;;;;16314:19:8;;273:7942:67;16314:19:8;273:7942:67;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;273:7942:67;16314:19:8;;16170:185;16314:19;273:7942:67;16314:19:8;;;;15938:460;273:7942:67;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;273:7942:67;12810:59:8;;;-1:-1:-1;;;273:7942:67;12810:59:8;;;273:7942:67;;;;;;12810:59:8;;;273:7942:67;;;;;;;;16170:185:8;;893:3:67;;16170:185:8;;;;;;:::i;:::-;273:7942:67;;-1:-1:-1;;;12810:59:8;;273:7942:67;;12810:59:8;;273:7942:67;;;;;;;;;:::i;16314:19:8:-;;;;;;;;;;;;;;:::i;:::-;;;;;273:7942:67;-1:-1:-1;;;523:5:65;;6854:12:8;273:7942:67;523:5:65;273:7942:67;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;;3303:38;;;;;:::i;:::-;273:7942;;3303:38;;;;3262:519;3636:9;;;:::i;:::-;273:7942;3618:27;;-1:-1:-1;;;;;;;;;;;3608:38:67;;;;273:7942;;1590:14:0;;;;3608:38:67;;273:7942;3608:38;;273:7942;3608:38;;273:7942;3608:38;-1:-1:-1;;;;;;;;;;;3608:38:67;;;;;;;;3262:519;273:7942;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;3679:4:67;273:7942;27501:38:3;;273:7942:67;;27501:38:3;;;273:7942:67;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;273:7942:67;;7009:9:8;273:7942:67;;;7009:9:8;273:7942:67;7505:10:8;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;;;;;7505:10:8;273:7942:67;;:::i;:::-;;;1048:60;273:7942;;;;6854:12:8;273:7942:67;;7009:9:8;273:7942:67;;1590:14:0;15610:11:8;273:7942:67;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;15703:15:8;;273:7942:67;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;273:7942:67;15725:48:8;;273:7942:67;;;;;15610:11:8;273:7942:67;;;15703:77:8;273:7942:67;;15702:78:8;15698:126;;3262:519:67;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;;;;;;15889:37:8;;273:7942:67;;;;;;15889:37:8;;;273:7942:67;15889:37:8;;;;;:::i;:::-;273:7942:67;15879:48:8;;273:7942:67;;;;;;;;15943:15:8;273:7942:67;15943:15:8;;273:7942:67;15961:16:8;785:66:67;15961:16:8;;273:7942:67;15943:34:8;;;;:::i;:::-;15938:460;;3262:519:67;273:7942;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;273:7942:67;;;16424:32:8;;273:7942:67;893:3;;;273:7942;;;;;;;;;893:3;273:7942;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;3262:519:67;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;273:7942:67;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;273:7942:67;;;16587:43:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;;;;;12656:92:8;;;;12810:59;;;273:7942:67;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;3262:519:67;16678:31:8;;;;;:::i;:::-;16724:8;;;273:7942:67;;;16724:29:8;;3262:519:67;16720:176:8;;;;14785:4;;;;;;:::i;:::-;273:7942:67;409:59;;273:7942;;-1:-1:-1;;;3716:54:67;;-1:-1:-1;;;;;273:7942:67;;;;3716:54;;273:7942;893:3;;;273:7942;;;;;893:3;273:7942;3716:54;-1:-1:-1;;;;;;;;;;;3716:54:67;;;;;;;;3262:519;;;;3716:54;;;273:7942;3716:54;273:7942;3716:54;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;273:7942:67;;16587:43:8;;;;16424:32;;;;;273:7942:67;16424:32:8;;273:7942:67;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;785:66:67;16021:3:8;785:66:67;;;;273:7942;;;;;;;-1:-1:-1;;;16314:19:8;;273:7942:67;;;;;16314:19:8;;273:7942:67;;;16314:19:8;273:7942:67;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;273:7942:67;16314:19:8;;;;;15938:460;273:7942:67;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;273:7942:67;12810:59:8;;;-1:-1:-1;;;273:7942:67;12810:59:8;;;273:7942:67;;;;;;12810:59:8;;;273:7942:67;;;;;;;;16170:185:8;;893:3:67;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;16314:19;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;273:7942:67;-1:-1:-1;;;523:5:65;;6854:12:8;273:7942:67;523:5:65;273:7942:67;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;3608:38:67;;;;;:::i;:::-;273:7942;;3608:38;;;;785:66;-1:-1:-1;;;785:66:67;;;273:7942;785:66;273:7942;;785:66;3199:52;;;;;;;;;;;;;:::i;:::-;;;;3120:30;;;;;:::i;:::-;273:7942;;3120:30;;;;3072:38;;;;273:7942;;;;;;;;;;;;;2883:26:5;273:7942:67;893:3;;;:::i;:::-;273:7942;;;;;;;:::i;:::-;893:3;;;2883:26:5;273:7942:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;1048:60;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;893:3;273:7942;;;;;;;;;;;;;;;;;;;;;;1590:14:0;273:7942:67;1590:14:0;273:7942:67;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;;;;;;1590:14:0;273:7942:67;;;;;;;;;;;;;;;;;;;-1:-1:-1;;273:7942:67;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;409:59;273:7942;;-1:-1:-1;;;7282:37:67;;273:7942;;;7282:37;;;273:7942;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;7282:37;;;;;;;;;;;273:7942;;;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;273:7942:67;;1590:14:0;;;;2349:24:1;;273:7942:67;2349:24:1;;273:7942:67;;;;;;2349:24:1;;273:7942:67;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;273:7942:67;7380:6;;;;;;:::i;:::-;;:::i;:::-;273:7942;;;;;;2349:24:1;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;273:7942:67;;1590:14:0;;;;2349:24:1;;273:7942:67;2349:24:1;;273:7942:67;7397:20;273:7942;;;;2349:24:1;;273:7942:67;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;273:7942:67;7446:6;;;;;;:::i;:::-;273:7942;;;;;;2349:24:1;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;273:7942:67;;1590:14:0;;;;2349:24:1;;273:7942:67;2349:24:1;;273:7942:67;7463:19;273:7942;;;;2349:24:1;;273:7942:67;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;273:7942:67;7511:6;;;;;;:::i;:::-;273:7942;;;;;;2349:24:1;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;273:7942:67;;1590:14:0;;;;2349:24:1;;273:7942:67;2349:24:1;;273:7942:67;7528:24;273:7942;;;;2349:24:1;;273:7942:67;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;273:7942:67;;;-1:-1:-1;;;785:66:67;;;273:7942;785:66;273:7942;;785:66;2349:24:1;;;;;:::i;:::-;273:7942:67;;2349:24:1;;;;273:7942:67;-1:-1:-1;;;785:66:67;;;273:7942;785:66;273:7942;;785:66;2349:24:1;;;;;:::i;:::-;273:7942:67;;2349:24:1;;;;;;;;;:::i;:::-;273:7942:67;;2349:24:1;;;;7282:37:67;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;273:7942;;;;;;;;;;;;;;;;;;;;:::i;:::-;893:3;;;-1:-1:-1;;893:3:67;;;273:7942;893:3;;;;273:7942;;;;;;:::i;:::-;893:3;;;273:7942;;;;;;;2502:13;;;2517:19;893:3;2517:19;;;;2743:13;;;2758:23;785:66;2758:23;;;;273:7942;;;2783:3;2811:9;;;;:::i;:::-;;2582:1;893:3;;;;;;;;;2927:13;2838;2802:54;2811:41;2918:38;2838:13;;2582:1;2838:13;;;;:::i;:::-;;2811:41;;:::i;:::-;785:66;;2802:54;:::i;:::-;2870:34;2879:9;;;;;:::i;2870:34::-;2927:13;;:::i;2918:38::-;893:3;2743:13;;2538:3;2582:1;893:3;;;;;;;523:5:65;2570:4:67;523:5:65;;2570:4:67;523:5:65;;;;;;;;;;;;2587:8:67;523:5:65;;;;;;;2557:38:67;;;;;;;:::i;:::-;893:3;;409:59;273:7942;;2621:96;;-1:-1:-1;;;;;273:7942:67;2693:10;;;;:::i;:::-;273:7942;;;1590:14:0;;;;;;;;;2621:96:67;;273:7942;2621:96;;;:::i;:::-;;;;;;;;;;;;;2538:3;2582:1;2609:108;;;;;;:::i;:::-;;;;;;:::i;:::-;;893:3;2502:13;;2621:96;;273:7942;2621:96;;;;;;;;;;:::i;:::-;;;273:7942;;;;;;;;2582:1;273:7942;;;;:::i;:::-;2621:96;;;;;;;273:7942;893:3;;;273:7942;;;;:::i;:::-;-1:-1:-1;893:3:67;;-1:-1:-1;893:3:67;;;;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;3038:18:5;273:7942:67;;;;;;;3038:18:5;273:7942:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;273:7942:67;;;;;;;3331:16:5;273:7942:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3485:19:5;273:7942:67;893:3;;;:::i;:::-;273:7942;;;;;;:::i;:::-;893:3;;;3485:19:5;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:60;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;1048:60;273:7942;;;;893:3;273:7942;893:3;:::i;:::-;273:7942;;;;;;;:::i;:::-;893:3;;;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:3;273:7942;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:5;273:7942:67;;;;;;;2563:16:5;273:7942:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;893:3;;;-1:-1:-1;;893:3:67;273:7942;893:3;;;;4957:28;;:::i;:::-;5001:13;;5016:19;893:3;5016:19;;;;5452:13;;;5467:23;785:66;5467:23;;;;273:7942;;;5492:3;5520:9;;;;:::i;:::-;;273:7942;5081:1;893:3;;;;;;;;5666:53;5548:13;:30;5657:66;5548:13;;5081:1;5548:13;;;;:::i;5657:66::-;893:3;5452:13;;5037:3;5081:1;893:3;;;;;;;523:5:65;5069:4:67;523:5:65;;5069:4:67;523:5:65;;;;;;;;;;;;5086:8:67;523:5:65;;;;;;;5056:38:67;;;;:::i;:::-;893:3;273:7942;;-1:-1:-1;;;5130:13:67;;273:7942;893:3;273:7942;;;5130:13;-1:-1:-1;;;;;;;;;;;5130:13:67;;;;;;;;;;;5037:3;5183:10;;;;;:::i;:::-;273:7942;;;;;893:3;27501:38:3;;1590:14:0;;;;27501:38:3;;5176:4:67;27501:38:3;;;273:7942:67;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;273:7942:67;;7009:9:8;273:7942:67;;;7009:9:8;273:7942:67;7505:10:8;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;5081:1;273:7942;;;7505:10:8;273:7942:67;;:::i;:::-;;;6854:12:8;273:7942:67;7009:9:8;273:7942:67;15610:11:8;273:7942:67;;;-1:-1:-1;;;;;273:7942:67;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;15703:15:8;;273:7942:67;;;;;;;;893:3;273:7942;;;;;;893:3;15735:37:8;;;;;;;;;;:::i;:::-;273:7942:67;15725:48:8;;273:7942:67;;893:3;273:7942;;15610:11:8;273:7942:67;;;15703:77:8;273:7942:67;;15702:78:8;15698:126;;5037:3:67;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;;;;893:3;273:7942;15889:37:8;;273:7942:67;;;;;;15889:37:8;;;893:3:67;15889:37:8;;;;;:::i;:::-;273:7942:67;15879:48:8;;273:7942:67;;893:3;273:7942;;;;5081:1;15943:15:8;;273:7942:67;15961:16:8;7009:9;15961:16;;273:7942:67;15943:34:8;;;;:::i;:::-;15938:460;;5037:3:67;273:7942;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;273:7942:67;;;16424:32:8;;273:7942:67;893:3;;;273:7942;;;;;;;893:3;273:7942;893:3;273:7942;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5037:3:67;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;273:7942:67;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;273:7942:67;;;16587:43:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;;;;;12656:92:8;;;;12810:59;;;273:7942:67;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5037:3:67;16678:31:8;;;;:::i;:::-;16724:8;;;273:7942:67;;;16724:29:8;;5037:3:67;16720:176:8;;;;14785:4;;;;;;:::i;:::-;893:3:67;409:59;;5208:49;;893:3;-1:-1:-1;;;;;273:7942:67;5246:10;;;;:::i;:::-;273:7942;;;-1:-1:-1;;;5208:49:67;;-1:-1:-1;;;;;273:7942:67;;;;5208:49;;273:7942;893:3;;;273:7942;;;;;;893:3;;;;;5208:49;;;;-1:-1:-1;;;;;;;;;;;5208:49:67;;;;;;;;5037:3;-1:-1:-1;893:3:67;409:59;-1:-1:-1;;;;;273:7942:67;5283:105;5364:10;;;;:::i;:::-;273:7942;;;1590:14:0;;;;;;5283:105:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;5283:105;;273:7942;-1:-1:-1;;;;;;;;;;;27501:38:3;785:66:67;;273:7942;-1:-1:-1;;;;;;;;;;;27501:38:3;785:66:67;;273:7942;785:66;893:3;785:66;;;;;;273:7942;5283:105;;785:66;5283:105;;;;;;;;;;;;;;;;5037:3;5271:117;;;;;:::i;:::-;;;;;;:::i;:::-;;273:7942;;1590:14:0;;;;5403:23:67;;273:7942;5403:23;;273:7942;893:3;5403:23;27501:38:3;5403:23:67;;-1:-1:-1;;;;;;;;;;;5403:23:67;;;;;;;5081:1;5403:23;;;5037:3;;893;5001:13;;5403:23;;;893:3;5403:23;;;;;;;;;:::i;:::-;;;;;5283:105;;;;;;;;;;;;;;:::i;:::-;;;;5208:49;;;893:3;5208:49;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;273:7942:67;;16587:43:8;;;;16424:32;;;;;893:3:67;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;15938:460:8;16028:34;;;;;;;;;:::i;:::-;16021:3;785:66:67;16021:3:8;785:66:67;;;;273:7942;;;;;;;-1:-1:-1;;;16314:19:8;;5081:1:67;273:7942;;;;16314:19:8;;273:7942:67;;;16314:19:8;;273:7942:67;27501:38:3;273:7942:67;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;893:3:67;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;273:7942:67;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;273:7942:67;12810:59:8;;;-1:-1:-1;;;785:66:67;12810:59:8;;;273:7942:67;;;;;;12810:59:8;;;273:7942:67;;;;;;;;16170:185:8;;893:3:67;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;5130:13:67;;;;893:3;5130:13;;;;;;;;;1590:14:0;5130:13:67;;;:::i;:::-;;;1590:14:0;;;;;5130:13:67;;;;;;;-1:-1:-1;5130:13:67;;273:7942;;;;;;;-1:-1:-1;;273:7942:67;;;;;;-1:-1:-1;;;995:20:67;;1590:14:0;273:7942:67;995:20;;1590:14:0;;;;;273:7942:67;-1:-1:-1;;;273:7942:67;;;1590:14:0;-1:-1:-1;273:7942:67;995:20;273:7942;-1:-1:-1;;;;;;;;;;;995:20:67;;;;;;;1590:14:0;995:20:67;1590:14:0;995:20:67;273:7942;995:20;;;273:7942;;;;1590:14:0;;;;;;;975:52:67;;273:7942;;975:52;;1590:14:0;273:7942:67;1590:14:0;;;;:::i;:::-;957:8:67;1590:14:0;;;273:7942:67;975:52;;273:7942;-1:-1:-1;;;;;;;;;;;975:52:67;;;;;;;;273:7942;;;;1048:60;;;;;;;;-1:-1:-1;;;;;1048:60:67;;;;;1590:14:0;1048:60:67;;;;;;424:42;273:7942;;1048:60;;;273:7942;1048:60;;;;;;273:7942;;;;;409:59;;;1590:14:0;409:59:67;;;1590:14:0;409:59:67;-1:-1:-1;;;;;;;;;;;1119:44:67;;;;273:7942;;1590:14:0;;;1119:44:67;;424:42;273:7942;1119:44;;273:7942;;1590:14:0;409:59:67;;;;273:7942;409:59;;273:7942;-1:-1:-1;;;995:20:67;273:7942;;409:59;273:7942;1119:44;;;;-1:-1:-1;;;;;;;;;;;1119:44:67;;;;;;;;273:7942;-1:-1:-1;1590:14:0;409:59:67;273:7942;;-1:-1:-1;;;;;273:7942:67;-1:-1:-1;;;;;;;;;;;1173:51:67;;;;273:7942;;1590:14:0;;;;1173:51:67;;273:7942;1173:51;;273:7942;;1590:14:0;409:59:67;;;;273:7942;409:59;;273:7942;-1:-1:-1;;;995:20:67;273:7942;;409:59;1173:51;;1119:44;1173:51;;-1:-1:-1;;;;;;;;;;;1173:51:67;;;;;;;;273:7942;1234:31;;-1:-1:-1;;;;;;;;;;;1234:31:67;;;;273:7942;;;1590:14:0;;;1234:31:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;1234:31;;273:7942;;1590:14:0;534:42:67;;;273:7942;;534:42;;273:7942;-1:-1:-1;;;995:20:67;273:7942;;534:42;1234:31;;1119:44;1234:31;;-1:-1:-1;;;;;;;;;;;1234:31:67;;;;;;;;273:7942;1275:20;;-1:-1:-1;;;;;;;;;;;1275:20:67;;;;273:7942;;;1590:14:0;;;1275:20:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;1275:20;;273:7942;;1590:14:0;605:42:67;;;;273:7942;605:42;;273:7942;-1:-1:-1;;;995:20:67;273:7942;;605:42;1275:20;;1119:44;1275:20;;-1:-1:-1;;;;;;;;;;;1275:20:67;;;;;;;;273:7942;1305:51;;-1:-1:-1;;;;;;;;;;;1305:51:67;;;;273:7942;;;1590:14:0;;;1305:51:67;;687:42;273:7942;1305:51;;273:7942;;1590:14:0;687:42:67;;;;273:7942;687:42;;273:7942;-1:-1:-1;;;995:20:67;273:7942;;687:42;1305:51;;1119:44;1305:51;;-1:-1:-1;;;;;;;;;;;1305:51:67;;;;;;;;273:7942;;1275:20;;;;;:::i;:::-;273:7942;;1275:20;;;;1234:31;;;;;:::i;:::-;273:7942;;1234:31;;;;1173:51;;;;;:::i;:::-;273:7942;;1173:51;;;;1119:44;;;;273:7942;1119:44;;:::i;:::-;273:7942;1119:44;;;;273:7942;;1590:14:0;273:7942:67;1590:14:0;;;;;1048:60:67;273:7942;;;;;;;;1590:14:0;273:7942:67;;975:52;1590:14:0;975:52:67;;1590:14:0;975:52:67;;;;;;1590:14:0;975:52:67;;;:::i;:::-;;;1590:14:0;;;;;975:52:67;;;;;-1:-1:-1;975:52:67;;995:20;;;;;;273:7942;995:20;;;;;;:::i;:::-;;;;273:7942;;;;;;-1:-1:-1;;273:7942:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;:::o;:::-;893:3;273:7942;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;:::o;:::-;;;893:3;;273:7942;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:7942:67;;;;;;;;-1:-1:-1;;273:7942:67;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1048:60;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7505:10:8;273:7942:67;;;;;;7505:10:8;-1:-1:-1;273:7942:67;;-1:-1:-1;273:7942:67;;;-1:-1:-1;273:7942:67;:::o;:::-;;;;;;;;;;;;;534:59:65;273:7942:67;;;;;;534:59:65;-1:-1:-1;273:7942:67;;-1:-1:-1;273:7942:67;;;-1:-1:-1;273:7942:67;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;273:7942:67;;;;;;;;-1:-1:-1;273:7942:67;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;;;;:::o;523:5:65:-;;;;;;;;;;;;;;;;:::o;:::-;273:7942:67;;;523:5:65;;;;;;;;;;;;;;;:::o;:::-;273:7942:67;;;523:5:65;;;;;;;;8534:180;273:7942:67;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;273:7942:67;8655:52:65;;:::i;:::-;8534:180;:::o;1590:14:0:-;-1:-1:-1;;;;;1590:14:0;;;;273:7942:67;;-1:-1:-1;;273:7942:67;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;273:7942:67;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;273:7942:67;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;409:59:67:-;6854:12:8;409:59:67;;-1:-1:-1;;;;;;409:59:67;-1:-1:-1;;;;;;;;;;;409:59:67;;;:::o;893:3::-;273:7942;;;;;;:::i;:::-;893:3;-1:-1:-1;893:3:67;;-1:-1:-1;893:3:67;;;;273:7942;;;;;;;:::i;:::-;-1:-1:-1;893:3:67;;-1:-1:-1;893:3:67;;;;;;:::o;:::-;273:7942;;;;;;;;;:::i;:::-;893:3;;;;-1:-1:-1;;893:3:67;;-1:-1:-1;893:3:67;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;273:7942;;893:3;;;;;;:::o;:::-;273:7942;;7397:20;893:3;;;;;;;:::o;:::-;273:7942;;7463:19;893:3;;;;;;;:::o;:::-;273:7942;;893:3;;;;;;;;;;;;:::o;:::-;;;;;;;;;;273:7942;;;;;;;893:3;:::o;785:66::-;;;;;;;;;;;273:7942;;;;:::i;:::-;785:66;;;1590:14:0;;;785:66:67;;;1590:14:0;785:66:67;;;:::o;:::-;;;;;;;;;;;273:7942;;;;;;;:::i;:::-;1590:14:0;;785:66:67;;;;;1590:14:0;785:66:67;;;;;;:::i;:::-;273:7942;785:66;;;;:::o;:::-;;;;;;;;;;:::o;273:7942::-;;;;;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;-1:-1:-1;;;;;;;;;;;273:7942:67;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;785:66:67;;;;;-1:-1:-1;785:66:67;273:7942;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;273:7942:67;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1048:60;273:7942;;;;;;;;;1048:60;273:7942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;1243:204:1;1302:7;273:7942:67;;;;;;;1325:14:1;:::o;1298:143::-;273:7942:67;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;273:7942:67;192:59:1;;;;;;273:7942:67;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;273:7942:67;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;935:818:65;-1:-1:-1;;;;;273:7942:67;;;935:818:65;;1126:10;935:818;1126:10;:::i;:::-;273:7942:67;;;-1:-1:-1;;;1102:59:65;;;;;273:7942:67;;;;-1:-1:-1;273:7942:67;;;;;;;;;;;;;;;-1:-1:-1;1102:59:65;;;;;;;1075:134;1102:59;1134:1;1102:59;;;935:818;1075:134;;:::i;:::-;1074:135;1224:13;1134:1;1259:3;273:7942:67;;1239:18:65;;;;;1322:10;;;;:::i;:::-;273:7942:67;;;;1590:14:0;;;;1304:29:65;;1102:59;1304:29;;273:7942:67;1134:1:65;1304:29;;;;;;;;;;;;1708:14;1304:29;1442:1;1304:29;1134:1;1304:29;;;1259:3;273:7942:67;1396:17:65;273:7942:67;;;;;;1354:9:65;;;:::i;:::-;273:7942:67;;1396:17:65;:::i;:::-;1477;273:7942:67;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;273:7942:67;;;;;;1566:9:65;;;:::i;:::-;273:7942:67;;;;;;;1577:9:65;;;:::i;:::-;273:7942:67;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;273:7942:67;;;;;;;1686:9:65;;;:::i;:::-;273:7942:67;;;1697:9:65;273:7942:67;;;;;1697:9:65;;:::i;:::-;273:7942:67;;1708:14:65;;;:::i;:::-;893:3:67;1224:13:65;;1304:29;;;;;;1134:1;1304:29;;;;;;:::i;:::-;;;;1239:18;;;;;;;935:818::o;1102:59::-;;;;;;1134:1;1102:59;;;;;;:::i;:::-;;;;273:7942:67;;;;:::o;:::-;;;;;;;;;;;;14296:110:1;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;273:7942:67;;1590:14:0;;;;14375:24:1;;;;;273:7942:67;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;14375:24::-;-1:-1:-1;14375:24:1;;;:::i;:::-;14296:110::o;426:547:59:-;688:35;426:547;637:17;619:35;273:7942:67;;637:17:59;;;273:7942:67;619:35:59;;:::i;:::-;273:7942:67;;706:17:59;;273:7942:67;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;273:7942:67;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;3489:17:67;957:9:59:o;2866:108:1:-;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;273:7942:67;;1590:14:0;;;;2943:24:1;;;;;273:7942:67;5081:1;273:7942;;;;-1:-1:-1;2943:24:1;;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;2866:108;:::o;13112:110::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;273:7942:67;;1590:14:0;;;;13191:24:1;;;;;273:7942:67;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;2270:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;273:7942:67;;1590:14:0;;;;2349:24:1;;;;;273:7942:67;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;8720:323:65:-;273:7942:67;8906:3:65;273:7942:67;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;273:7942:67;;;;;;1175:24:65;8929:29;8925:79;;893:3:67;;8866:13:65;;8925:79;8978:11;;893:3:67;8978:11:65;:::o;8881:23::-;;;273:7942:67;8720:323:65;:::o;:::-;273:7942:67;8906:3:65;273:7942:67;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;273:7942:67;;;;;;2531:24:65;8929:29;8925:79;;893:3:67;;8866:13:65;;8720:323;273:7942:67;8906:3:65;273:7942:67;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;273:7942:67;;;;;;6005:21:65;8929:29;8925:79;;893:3:67;;8866:13:65;;5926:434:58;273:7942:67;;-1:-1:-1;;;6065:47:58;;;;;;-1:-1:-1;;;;;273:7942:67;;;6065:47:58;;;273:7942:67;;;-1:-1:-1;;893:3:67;;;;273:7942;;;;6065:47:58;;273:7942:67;;;6065:47:58;;893:3:67;273:7942;6065:47:58;:::i;:::-;8511:25;;-1:-1:-1;;;;;273:7942:67;;;-1:-1:-1;;;;;273:7942:67;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;273:7942:67;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;273:7942:67;-1:-1:-1;273:7942:67;;;;;6232:43:58;;;;;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;273:7942:67;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;273:7942:67;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;273:7942:67;;;;;;;;;:::o;1911:4479:65:-;;;;;;;;;;273:7942:67;;-1:-1:-1;;;2117:44:65;;;;;;;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;1911:4479:65;;;2117:44;273:7942:67;;;;;2117:44:65;;;;;273:7942:67;2117:44:65;-1:-1:-1;;;;;273:7942:67;;2117:44:65;;;;;;:47;:44;;;;;1911:4479;2117:47;;:::i;:::-;273:7942:67;;;1590:14:0;273:7942:67;1590:14:0;;;273:7942:67;;2174:61:65;;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;2174:61:65;;;:::i;:::-;1590:14:0;;273:7942:67;2117:44:65;273:7942:67;;44640:78:15;273:7942:67;;;1590:14:0;;273:7942:67;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;273:7942:67;44640:78:15;;;273:7942:67;;;;;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;273:7942:67;;1222:159:15;;591:42;1222:159;;-1:-1:-1;273:7942:67;;-1:-1:-1;;;2467:50:65;;;;2117:44;2467:50;;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;2117:44:65;273:7942:67;;;;;2467:50:65;273:7942:67;;-1:-1:-1;;;;;273:7942:67;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;893:3:67;273:7942;;;;;;;:::i;:::-;2117:44:65;893:3:67;;;;1590:14:0;893:3:67;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;893:3:67;8433:4:65;523:5;;;8412:25;;;:::i;:::-;893:3:67;523:5:65;;8420:1;523:5;8447:22;;;:::i;:::-;893:3:67;273:7942;;8487:1:65;893:3:67;;;;273:7942;893:3;;;;;;273:7942;;1590:14:0;;;2822:49:65;;2117:44;2822:49;;;;;;;;2117:44;2822:49;;;:::i;:::-;;273:7942:67;;-1:-1:-1;;;;;273:7942:67;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;273:7942:67;;-1:-1:-1;;785:66:67;;;3489:17;785:66;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;273:7942:67;;;1590:14:0;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;273:7942:67;;-1:-1:-1;;785:66:67;;;;;;;273:7942;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;1590:14:0;;273:7942:67;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;273:7942:67;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;893:3:67;;12247:66:15;;;;;;:::i;:::-;1222:159;273:7942:67;;1222:159:15;;591:42;1222:159;;-1:-1:-1;1590:14:0;;273:7942:67;;3251:53:65;;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;273:7942:67;;;1590:14:0;;;273:7942:67;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;273:7942:67;;;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;;;273:7942:67;;;;3514:49:65;;273:7942:67;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;273:7942:67;;;3514:49:65;;;;:::i;:::-;893:3:67;;:::i;:::-;-1:-1:-1;273:7942:67;;-1:-1:-1;;785:66:67;;;;;;;3635:27:65;;;;:::i;:::-;273:7942:67;893:3;523:5:65;;;;;;;;2117:44;273:7942:67;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;273:7942:67;44640:78:15;27501:38:3;;;273:7942:67;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;409:59:67;;-1:-1:-1;;;;;;409:59:67;-1:-1:-1;;;;;273:7942:67;;409:59;;;7009:9:8;273:7942:67;;-1:-1:-1;;273:7942:67;27524:10:3;273:7942:67;;;7505:10:8;273:7942:67;-1:-1:-1;;;273:7942:67;;;;;;;8420:1:65;273:7942:67;;;7505:10:8;273:7942:67;;:::i;:::-;;;1048:60;273:7942;;;;6854:12:8;273:7942:67;;7009:9:8;273:7942:67;1590:14:0;;15610:11:8;273:7942:67;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;15703:15:8;;273:7942:67;;;;;;2117:44:65;273:7942:67;1590:14:0;273:7942:67;;;2117:44:65;273:7942:67;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;273:7942:67;15725:48:8;;2117:44:65;273:7942:67;1590:14:0;273:7942:67;;8487:1:65;273:7942:67;;2117:44:65;273:7942:67;15703:77:8;273:7942:67;;15702:78:8;15698:126;;8365:37:65;-1:-1:-1;;;;;273:7942:67;;;;;;27635:8:3;273:7942:67;;;;;;2117:44:65;273:7942:67;1590:14:0;273:7942:67;15889:37:8;;273:7942:67;;2117:44:65;273:7942:67;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;273:7942:67;15879:48:8;;2117:44:65;273:7942:67;1590:14:0;273:7942:67;;;2117:44:65;273:7942:67;8420:1:65;15943:15:8;;273:7942:67;15961:16:8;8468:1:65;15961:16:8;;273:7942:67;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;273:7942:67;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;273:7942:67;;2117:44:65;16424:32:8;;273:7942:67;893:3;;;273:7942;;;;;;;1590:14:0;273:7942:67;893:3;273:7942;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;273:7942:67;;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;273:7942:67;;2117:44:65;16587:43:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;893:3;523:5:65;;273:7942:67;;;12656:92:8;12810:59;;;273:7942:67;-1:-1:-1;273:7942:67;12810:59:8;273:7942:67;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;-1:-1:-1;7009:9:8;273:7942:67;1590:14:0;;;1364:48:8;44640:78:15;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;273:7942:67;;;1364:48:8;;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;-1:-1:-1;;273:7942:67;;;;1364:48:8;;893:3:67;;1364:48:8;;;;;;:::i;:::-;6854:12;273:7942:67;-1:-1:-1;;1458:29:8;;-1:-1:-1;;;;1458:29:8;-1:-1:-1;;;;;273:7942:67;1458:29:8;;;;;;:::i;:::-;15610:11;273:7942:67;-1:-1:-1;;;;;523:5:65;;;;;;-1:-1:-1;;10974:11:8;;;;273:7942:67;;11010:29:8;;;;;1590:14:0;11010:13:8;;1590:14:0;;;11010:29:8;1590:14:0;11010:29:8;;;-1:-1:-1;;11054:13:8;;11069:7;;;;;;;;-1:-1:-1;;1563:24:8;;16724:8;;273:7942:67;;16724:29:8;;11049:106;16720:176;;;14785:4;;;;;:::i;:::-;273:7942:67;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;11049:106:8;-1:-1:-1;8420:1:65;3761:3;273:7942:67;;3741:18:65;;;;;1222:159:15;3878:14:65;273:7942:67;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;273:7942:67;;;;;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;273:7942:67;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;273:7942:67;;;;;;;:::i;:::-;;;;;;12952:65:15;893:3:67;;12952:65:15;;;;;;:::i;:::-;1222:159;273:7942:67;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;273:7942:67;12771:66:15;4051:10:65;;;;:::i;:::-;273:7942:67;;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;273:7942:67;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;273:7942:67;;1222:159:15;;591:42;1222:159;;;4093:97:65;273:7942:67;4166:10:65;;;;:::i;:::-;273:7942:67;;;;-1:-1:-1;;;4093:97:65;;;;2117:44;4093:97;;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;785:66;;;273:7942;;;785:66;;;273:7942;-1:-1:-1;785:66:67;;;;;;;273:7942;;;;;;;;;785:66;;;;;4093:97:65;;2117:44;;;1048:60:67;273:7942;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;273:7942:67;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;273:7942:67;523:5:65;;4244:52;:::i;:::-;273:7942:67;;;4349:11:65;;4335:26;:::i;:::-;273:7942:67;4375:60:65;273:7942:67;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;4375:60:65;:::i;:::-;4449;273:7942:67;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;4449:60:65;:::i;:::-;4523:61;273:7942:67;;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;4523:61:65;:::i;:::-;4599:1176;;;;;1590:14:0;;273:7942:67;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;273:7942:67;-1:-1:-1;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;4637:164:65;;:::i;:::-;1590:14:0;;273:7942:67;;;;1590:14:0;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;273:7942:67;;;;1590:14:0;273:7942:67;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;5013:164:65;;;:::i;:::-;273:7942:67;;;1590:14:0;;;;5789:25:65;;273:7942:67;;2117:44:65;5789:25;;273:7942:67;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;893::67;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;273:7942:67;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;273:7942:67;5216:173:65;5597:163;273:7942:67;;;:::i;:::-;5216:173:65;;;;:::i;:::-;273:7942:67;;:::i;5407:172:65:-;273:7942:67;;;1590:14:0;273:7942:67;1590:14:0;;273:7942:67;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;5597:163:65;;;:::i;:::-;4599:1176;;523:5;273:7942:67;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;273:7942:67;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;273:7942:67;;;-1:-1:-1;;;5941:50:65;;2117:44;;;5941:50;;2117:44;5941:50;;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;;;2117:44:65;;273:7942:67;523:5:65;;;;;;2117:44;;273:7942:67;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;273:7942:67;;;;;1590:14:0;;273:7942:67;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;6590:122:65;:::i;:::-;273:7942:67;;;;;;;;;;:::i;:::-;8420:1:65;893:3:67;;273:7942;;-1:-1:-1;;893:3:67;;1590:14:0;893:3:67;;;6783:37:65;;;:::i;:::-;893:3:67;273:7942;;;1590:14:0;;;6835:57:65;;2117:44;;6835:57;;;;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;1048:60:67;273:7942;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7190:97;6831:346;7259:18;273:7942:67;6831:346:65;7259:18;:::i;:::-;273:7942:67;;;;-1:-1:-1;;;7190:97:65;;;;2117:44;7190:97;;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;785:66;;;273:7942;;;;;785:66;;;273:7942;-1:-1:-1;785:66:67;;;;;;;273:7942;;;;;-1:-1:-1;273:7942:67;;;;785:66;;;;;7190:97:65;2117:44;;7190:97;;;;-1:-1:-1;;;;;273:7942:67;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;273:7942:67;;;;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;273:7942:67;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;273:7942:67;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;273:7942:67;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;273:7942:67;;44640:78:15;273:7942:67;;;;;;;;-1:-1:-1;;;273:7942:67;;;;;;7302:61:65;7190:97;;;273:7942:67;7190:97:65;273:7942:67;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;1590:14:0;;273:7942:67;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;273:7942:67;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;273:7942:67;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;273:7942:67;;44640:78:15;273:7942:67;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;1590:14:0;;273:7942:67;;;-1:-1:-1;;;7738:117:65;;-1:-1:-1;;273:7942:67;;;;;:::i;:::-;;;;;1590:14:0;273:7942:67;;;-1:-1:-1;;;273:7942:67;;;;;7738:117:65;:::i;:::-;273:7942:67;;;;;;;;;;:::i;:::-;8420:1:65;893:3:67;;273:7942;;-1:-1:-1;;893:3:67;;1590:14:0;893:3:67;;;7926:37:65;;;:::i;:::-;893:3:67;273:7942;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;1048:60:67;273:7942;;;;;;7974:57:65;;;;;;8041:97;;273:7942:67;;8110:18:65;;7974:57;;8110:18;;:::i;8041:97::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;273:7942:67;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;273:7942:67;8041:97:65;273:7942:67;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;273:7942:67;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;273:7942:67;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;-1:-1:-1;;;;;273:7942:67;;;2117:44:65;16769:41:8;;273:7942:67;12810:59:8;;;273:7942:67;;;;12810:59:8;;;273:7942:67;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;273:7942:67;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;273:7942:67;44640:78:15;12810:59:8;;273:7942:67;12810:59:8;273:7942:67;;;12810:59:8;-1:-1:-1;;;273:7942:67;12810:59:8;;;273:7942:67;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;273:7942:67;;;;16769:41:8;;;273:7942:67;2117:44:65;;;273:7942:67;16724:29:8;523:5:65;;893:3:67;523:5:65;16736:17:8;;;;16724:29;;;11078:3;11114:10;;;523:5:65;893:3:67;523:5:65;11114:10:8;:::i;:::-;273:7942:67;;;;;;;1590:14:0;273:7942:67;;;;;;;;;523:5:65;;;;8487:1;523:5;;11142:1:8;523:5:65;;;;;;;;;;8487:1;523:5;273:7942:67;11097:47:8;;;;;8420:1:65;11078:3:8;;893::67;11078::8;;11054:13;;273:7942:67;;;;-1:-1:-1;;273:7942:67;;2117:44:65;273:7942:67;44640:78:15;-1:-1:-1;;273:7942:67;11010:29:8;;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;273:7942:67;;16587:43:8;;;;273:7942:67;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;785:66:67;16021:3:8;785:66:67;;;;273:7942;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;273:7942:67;;2117:44:65;16314:19:8;;273:7942:67;-1:-1:-1;273:7942:67;44640:78:15;273:7942:67;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;273:7942:67;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;273:7942:67;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;273:7942:67;;;;;;12810:59:8;;;273:7942:67;;;2117:44:65;273:7942:67;;;;16170:185:8;;893:3:67;;16170:185:8;;;;;;:::i;:::-;273:7942:67;523:5:65;893:3:67;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;273:7942:67;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;273:7942:67;;;;;;44640:78:15;273:7942:67;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;:::-;;;;273:7942:67;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;273:7942:67;;;;:::o;:::-;;;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;273:7942:67;;;;2626:1:33;;;;3256:31;;2626:1;273:7942:67;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;273:7942:67;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;273:7942:67;;;6764:749:58:o;273:7942:67:-;;;-1:-1:-1;;;273:7942:67;;3256:31:33;273:7942:67;;;;;;;;;;;;;;-1:-1:-1;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;273:7942:67;;2117:44:65;273:7942:67;;;1590:14:0;;;;;;;;13326:29:1;;;;;273:7942:67;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;273:7942:67;13326:29:1;273:7942:67;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;273:7942:67;6669:42:15;6598:121;;273:7942:67;;6669:42:15;;;;;;;;;;;;;;273:7942:67;;;;;;:::i;6669:42:15:-;1222:159;273:7942:67;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;1590:14:0;7629:54:15;1222:159;7546:145;;;;273:7942:67;;7629:54:15;;;;;;;;;;273:7942:67;7629:54:15;;;1590:14:0;;;;;;:::i;:::-;;;;;273:7942:67;7629:54:15;893:3:67;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;273:7942:67;15694:29:1;273:7942:67;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;273:7942:67:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;273:7942:67;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;;;-1:-1:-1;;273:7942:67;;;;;;;;;-1:-1:-1;273:7942:67;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;273:7942:67;7935:53:15;1222:159;7846:150;;273:7942:67;7846:150:15;;273:7942:67;;7935:53:15;;;;;;;;;;273:7942:67;7935:53:15;;;273:7942:67;;;;;;:::i;:::-;;;;-1:-1:-1;;273:7942:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;273:7942:67;1052:14:8;273:7942:67;;:::i;:::-;1052:14:8;;273:7942:67;;;;;;1109:10:8;273:7942:67;;;;;;1109:10:8;1077:1;273:7942:67;;1077:1:8;273:7942:67;;1077:1:8;273:7942:67;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;273:7942:67;523:5:65;;;;;;;273:7942:67;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;893:3;;273:7942;;:::i;:::-;;893:3;273:7942;;;893:3;1077:1:8;11360:3;273:7942:67;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;273:7942:67;;11456:84:8;523:5:65;11456:84:8;;;;;893:3:67;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;273:7942:67:-;;;;;1109:10:8;273:7942:67;;;;;;-1:-1:-1;273:7942:67;;;;;;;;1048:135:8;273:7942:67;;;;;;1052:14:8;273:7942:67;:::i;953:236:8:-;1052:14;;;273:7942:67;;;;;:::i;:::-;1052:21:8;;1109:10;;;;273:7942:67;;;;;;;;;;;;;;;1077:1:8;273:7942:67;;1077:1:8;273:7942:67;;1077:1:8;273:7942:67;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;273:7942:67;523:5:65;;;;;;;273:7942:67;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;893:3;;273:7942;;:::i;:::-;;893:3;273:7942;;;893:3;1077:1:8;11360:3;273:7942:67;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;273:7942:67;;11456:84:8;523:5:65;11456:84:8;;;;;893:3:67;11331:13:8;;273:7942:67;;;;;1109:10:8;273:7942:67;;;;;;-1:-1:-1;273:7942:67;;;;;;;;1048:135:8;273:7942:67;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;273:7942:67;1364:48:8;1381:9;273:7942:67;1590:14:0;;1364:48:8;273:7942:67;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;273:7942:67;;1364:48:8;;;;;;273:7942:67;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;893:3:67;;1364:48:8;;;;;;:::i;:::-;1458:12;273:7942:67;1458:29:8;;;-1:-1:-1;;;;;273:7942:67;1458:29:8;;;;;:::i;:::-;1540:11;273:7942:67;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;273:7942:67;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;273:7942:67;;;;;;;;;1364:48:8;273:7942:67;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;273:7942:67;523:5:65;;11142:1:8;523:5:65;;;;;;;;893:3:67;273:7942;;11097:47:8;11078:3;893::67;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;273:7942:67;1590:14:0;;1364:48:8;273:7942:67;1392:19:8;;;:::i;1364:48::-;273:7942:67;1458:12:8;;273:7942:67;1458:29:8;;;-1:-1:-1;;;;;273:7942:67;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;273:7942:67;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;273:7942:67;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;273:7942:67;;;;;;;;;1364:48:8;273:7942:67;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;273:7942:67;523:5:65;;11142:1:8;523:5:65;;;;;;;;893:3:67;273:7942;;11097:47:8;11078:3;893::67;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;273:7942:67;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;273:7942:67;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;273:7942:67;;;;4917:24:33;273:7942:67;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;4249:2493:8;4361:12;273:7942:67;4397:9:8;273:7942:67;4438:11:8;273:7942:67;-1:-1:-1;;;;;273:7942:67;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;273:7942:67;;;27635:8:3;273:7942:67;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;273:7942:67;4573:48:8;;273:7942:67;;;;;4438:11:8;273:7942:67;;;4551:77:8;273:7942:67;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;273:7942:67;;-1:-1:-1;;;4811:11:8;;273:7942:67;;4361:12:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;273:7942:67;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;273:7942:67;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;273:7942:67;;4951:12:8;;4984:74;273:7942:67;;12810:59:8;;;4984:74;;273:7942:67;4361:12:8;4984:74;;643:59;273:7942:67;4911:25:8;643:59;;273:7942:67;643:59:8;273:7942:67;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;273:7942:67;;5109:16:8;;;;;5178:8;273:7942:67;5178:8:8;;5165:22;5178:8;;:::i;:::-;273:7942:67;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;273:7942:67;;4361:12:8;5165:22;;273:7942:67;893:3;;;273:7942;;;;;;;;;893:3;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;273:7942:67;4361:12:8;273:7942:67;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;273:7942:67;;;4361:12:8;1978:27;;273:7942:67;;;893:3;;;273:7942;;;;;;;893:3;273:7942;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;3489:17:67;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;273:7942:67;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;273:7942:67;;;;4361:12:8;2177:37;;273:7942:67;12810:59:8;;;273:7942:67;;;12810:59:8;;;273:7942:67;;;;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;273:7942:67;;;;-1:-1:-1;;;;;;273:7942:67;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;273:7942:67;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;273:7942:67;;;;4361:12:8;2281:43;;273:7942:67;12810:59:8;;;273:7942:67;;;;12810:59:8;;;273:7942:67;;;;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;273:7942:67;;5520:25:8;273:7942:67;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;273:7942:67;;5998:29:8;;5994:84;;273:7942:67;;6319:8:8;273:7942:67;6101:89:8;643:59;273:7942:67;;6132:37:8;;273:7942:67;;;6132:37:8;;;273:7942:67;6132:37:8;;;;;:::i;:::-;273:7942:67;6122:48:8;;6180:8;;;;:::i;:::-;273:7942:67;;;;;;;643:59:8;273:7942:67;643:59:8;;273:7942:67;;643:59:8;;273:7942:67;643:59:8;;;273:7942:67;6101:89:8;6319:8;:::i;:::-;273:7942:67;;;;;643:59:8;273:7942:67;;;;;;-1:-1:-1;;;;;273:7942:67;;;;;4438:11:8;273:7942:67;;;893:3;;273:7942;6302:58:8;;893:3:67;;;273:7942;6302:58:8;;893:3:67;;;643:59:8;6302:58;;643:59;893:3:67;643:59:8;;273:7942:67;;;27635:8:3;273:7942:67;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;273:7942:67;6230:48:8;;273:7942:67;;;;;;;;;643:59:8;;273:7942:67;893:3;643:59:8;;;273:7942:67;4397:9:8;643:59;;;;;;273:7942:67;;;;;643:59:8;;;;;;;;5089:1309;273:7942:67;;;27635:8:3;273:7942:67;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;273:7942:67;6461:48:8;;273:7942:67;;;;;4438:11:8;273:7942:67;;;6439:77:8;273:7942:67;;643:59:8;;;273:7942:67;6664:15:8;273:7942:67;;27635:8:3;273:7942:67;;;;;;;;;;6696:37:8;;273:7942:67;;;;;;6696:37:8;;;273:7942:67;6696:37:8;;;;;:::i;:::-;273:7942:67;6686:48:8;;273:7942:67;;;;;4249:2493:8;:::o;643:59::-;273:7942:67;;-1:-1:-1;;;643:59:8;;273:7942:67;4361:12:8;643:59;;;;4911:25;643:59;;273:7942:67;643:59:8;273:7942:67;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;893:3:67;6051:8:8;5094:13;893:3:67;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;273:7942:67;4361:12:8;273:7942:67;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;273:7942:67;;;4361:12:8;3216:27;;273:7942:67;893:3;;;273:7942;;;;;;;;;;;;;893:3;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;273:7942:67;;;;;;-1:-1:-1;;;;;273:7942:67;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;273:7942:67;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;273:7942:67;;;;4361:12:8;3497:43;;273:7942:67;12810:59:8;;;273:7942:67;;;;12810:59:8;;;273:7942:67;;;;;;12810:59:8;273:7942:67;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;893:3:67;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;273:7942:67;;3497:43:8;;;;273:7942:67;;;;3497:43:8;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;3497:43:8;273:7942:67;;;3216:27:8;;;;273:7942:67;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;893:3:67;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;273:7942:67;;2281:43:8;;;;273:7942:67;;;;2281:43:8;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;2281:43:8;273:7942:67;;;2177:37:8;;;;;:::i;:::-;273:7942:67;;2177:37:8;;;;2102:65;;;;;1978:27;;;273:7942:67;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;273:7942:67;;;;-1:-1:-1;;;;;273:7942:67;;;;893:3;;;273:7942;;;;;;;;893:3;;;;5256:44:8;;;;5205:114;;5165:22;;;;273:7942:67;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;273:7942:67;;1590:14:0;273:7942:67;;1590:14:0;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;273:7942:67;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;273:7942:67;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;273:7942:67;;;643:59:8;273:7942:67;;;4811:11:8;;;;;273:7942:67;4811:11:8;;:::i;:::-;273:7942:67;4811:11:8;;;;4547:255;4720:15;;;;;273:7942:67;;27635:8:3;273:7942:67;;;;;;;;;;4752:37:8;;273:7942:67;;;;;;4752:37:8;;;273:7942:67;4752:37:8;;;;;:::i;:::-;273:7942:67;4742:48:8;;273:7942:67;;;;;;;4713:78:8;:::o;11586:239::-;409:59:67;;;11652:12:8;273:7942:67;;11652:12:8;273:7942:67;;;11681:9:8;273:7942:67;;11681:9:8;273:7942:67;11707:10:8;273:7942:67;11645:19:8;11707:10;273:7942:67;;;;11586:239:8;273:7942:67;11645:19:8;11734:11;273:7942:67;;;11762:25:8;273:7942:67;;11762:25:8;273:7942:67;;11804:14:8;273:7942:67;;:::i;:::-;;;;11586:239:8;:::o;273:7942:67:-;;;;;;;;;11645:19:8;11804:14;273:7942:67;11586:239:8:o;273:7942:67:-;11804:14:8;11645:19;273:7942:67;;;;;;;;;;;;;;;;11804:14:8;11645:19;273:7942:67;11645:19:8;273:7942:67;;;;11804:14:8;273:7942:67;;14296:110:1:o;273:7942:67:-;;;;;;;;;11707:10:8;11645:19;273:7942:67;;;;;;;;;;;;;;;;11645:19:8;273:7942:67;;11707:10:8;273:7942:67;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;785:66:67;2771:3:8;785:66:67;2771:3:8;785:66:67;;;;2824:12:8;;;273:7942:67;893:3;273:7942;;;;-1:-1:-1;;;;;273:7942:67;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;273:7942:67;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;273:7942:67;;;;2824:12:8;2815:49;;273:7942:67;12810:59:8;;;273:7942:67;;;12810:59:8;;;273:7942:67;;;;-1:-1:-1;273:7942:67;12810:59:8;273:7942:67;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;893:3:67;;2678:18:8;;2941:90;2995:21;;;893:3:67;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;273:7942:67;893:3;273:7942;;;-1:-1:-1;;;;;273:7942:67;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;273:7942:67;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;273:7942:67;;;;2824:12:8;2815:49;;273:7942:67;12810:59:8;;;273:7942:67;;;12810:59:8;;;273:7942:67;;;;-1:-1:-1;273:7942:67;12810:59:8;273:7942:67;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;893:3:67;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testBalancerV2PoolBehaviour()":"a2121ee5","testGetCapabilitiesFuzz(bytes32,address,address)":"53e5d760","testGetLimits()":"d3479a01","testGetPoolIds()":"99cef81b","testGetTokens()":"8f1ed4c6","testPrice()":"8335a17f","testPriceDecreasing()":"4a36e372","testPriceSingleFuzz()":"e8651645","testSwapBuyIncreasing()":"fe3ee58b","testSwapFuzz(uint256,bool)":"7f55213e","testSwapSellIncreasing()":"111f3392"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testBalancerV2PoolBehaviour\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pool\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilitiesFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimits\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetPoolIds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceDecreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceSingleFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/BalancerV2SwapAdapter.t.sol\":\"BalancerV2SwapAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v2/BalancerV2SwapAdapter.sol\":{\"keccak256\":\"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb\",\"dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/BalancerV2SwapAdapter.t.sol\":{\"keccak256\":\"0x3691dd98ca66209c2b8895e00657d8c5520b907ff59b9623317efa10088019d8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://6061c59a0790a461309792398da122df3ce69beabe7eb4068254e96e0323c4e0\",\"dweb:/ipfs/QmT3V7Q3oLGN7r6GTSJLUiQA14X8BEYtgfqCJz9BQVEqwr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testBalancerV2PoolBehaviour"},{"inputs":[{"internalType":"bytes32","name":"pool","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesFuzz"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetLimits"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetPoolIds"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceDecreasing"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceSingleFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasing"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasing"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/BalancerV2SwapAdapter.t.sol":"BalancerV2SwapAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v2/BalancerV2SwapAdapter.sol":{"keccak256":"0xc8b253abb798769107197c28c7d17b500387dc57f97fd7d24636ee6b0e15fad7","urls":["bzz-raw://442c535784b211fd8da880a1eb75f5597c618b78e391dc1acfd3358d0fa687eb","dweb:/ipfs/QmeC2r9fvL8FPnoHYss8f16PMaEK44C5UGu8PEvUb1HKAe"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/BalancerV2SwapAdapter.t.sol":{"keccak256":"0x3691dd98ca66209c2b8895e00657d8c5520b907ff59b9623317efa10088019d8","urls":["bzz-raw://6061c59a0790a461309792398da122df3ce69beabe7eb4068254e96e0323c4e0","dweb:/ipfs/QmT3V7Q3oLGN7r6GTSJLUiQA14X8BEYtgfqCJz9BQVEqwr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":67} \ No newline at end of file diff --git a/evm/out/BalancerV3Errors.sol/BalancerV3Errors.json b/evm/out/BalancerV3Errors.sol/BalancerV3Errors.json deleted file mode 100644 index 4ea2194..0000000 --- a/evm/out/BalancerV3Errors.sol/BalancerV3Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"UnorderedNonceInvalidation","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"word","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mask","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AfterAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterInitializeHookFailed","inputs":[]},{"type":"error","name":"AfterRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterSwapHookFailed","inputs":[]},{"type":"error","name":"AllZeroInputs","inputs":[]},{"type":"error","name":"AllowanceExpired","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountGivenZero","inputs":[]},{"type":"error","name":"AmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmpUpdateAlreadyStarted","inputs":[]},{"type":"error","name":"AmpUpdateDurationTooShort","inputs":[]},{"type":"error","name":"AmpUpdateRateTooFast","inputs":[]},{"type":"error","name":"AmplificationFactorTooHigh","inputs":[]},{"type":"error","name":"AmplificationFactorTooLow","inputs":[]},{"type":"error","name":"AssetBoundsExceeded","inputs":[]},{"type":"error","name":"BalanceNotSettled","inputs":[]},{"type":"error","name":"BeforeAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeInitializeHookFailed","inputs":[]},{"type":"error","name":"BeforeRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeSwapHookFailed","inputs":[]},{"type":"error","name":"BptAmountInAboveMax","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BptAmountOutBelowMin","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BufferAlreadyInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferNotInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferSharesInvalidOwner","inputs":[]},{"type":"error","name":"BufferSharesInvalidReceiver","inputs":[]},{"type":"error","name":"BufferTotalSupplyTooLow","inputs":[{"name":"totalSupply","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CallerIsNotPoolCreator","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"CannotReceiveEth","inputs":[]},{"type":"error","name":"CannotSwapSameToken","inputs":[]},{"type":"error","name":"DoesNotSupportAddLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportDonation","inputs":[]},{"type":"error","name":"DoesNotSupportRemoveLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportUnbalancedLiquidity","inputs":[]},{"type":"error","name":"DynamicSwapFeeHookFailed","inputs":[]},{"type":"error","name":"ExcessiveInvalidation","inputs":[]},{"type":"error","name":"FeePrecisionTooHigh","inputs":[]},{"type":"error","name":"HookAdjustedAmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedAmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedSwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookRegistrationFailed","inputs":[{"name":"poolHooksContract","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolFactory","type":"address","internalType":"address"}]},{"type":"error","name":"InputLengthMismatch","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientEth","inputs":[]},{"type":"error","name":"InvalidAddLiquidityKind","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidRemoveLiquidityKind","inputs":[]},{"type":"error","name":"InvalidToken","inputs":[]},{"type":"error","name":"InvalidTokenConfiguration","inputs":[]},{"type":"error","name":"InvalidTokenDecimals","inputs":[]},{"type":"error","name":"InvalidTokenType","inputs":[]},{"type":"error","name":"InvalidUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"IssuedSharesBelowMin","inputs":[{"name":"issuedShares","type":"uint256","internalType":"uint256"},{"name":"minIssuedShares","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"MaxTokens","inputs":[]},{"type":"error","name":"MinTokens","inputs":[]},{"type":"error","name":"MinWeight","inputs":[]},{"type":"error","name":"MultipleNonZeroInputs","inputs":[]},{"type":"error","name":"NormalizedWeightInvariant","inputs":[]},{"type":"error","name":"NotEnoughBufferShares","inputs":[]},{"type":"error","name":"NotEnoughUnderlying","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedUnderlyingAmount","type":"uint256","internalType":"uint256"},{"name":"actualUnderlyingAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotEnoughWrapped","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedWrappedAmount","type":"uint256","internalType":"uint256"},{"name":"actualWrappedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotStaticCall","inputs":[]},{"type":"error","name":"NotVaultDelegateCall","inputs":[]},{"type":"error","name":"OnlyPauseGuardian","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"PauseBufferPeriodDurationTooLarge","inputs":[]},{"type":"error","name":"PercentageAboveMax","inputs":[]},{"type":"error","name":"PoolAddressMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolCreatorFeePercentageTooHigh","inputs":[]},{"type":"error","name":"PoolCreatorNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPauseWindowExpired","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"ProtocolFeesExceedTotalCollected","inputs":[]},{"type":"error","name":"ProtocolSwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"ProtocolYieldFeePercentageTooHigh","inputs":[]},{"type":"error","name":"QueriesDisabled","inputs":[]},{"type":"error","name":"QueriesDisabledPermanently","inputs":[]},{"type":"error","name":"QuoteResultSpoofed","inputs":[]},{"type":"error","name":"RouterNotTrusted","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotVault","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"StandardPoolWithCreator","inputs":[]},{"type":"error","name":"StaticATokenInvalidZeroShares","inputs":[]},{"type":"error","name":"SwapDeadline","inputs":[]},{"type":"error","name":"SwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"SwapFeePercentageTooLow","inputs":[]},{"type":"error","name":"SwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TokenAlreadyRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokenNotRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokensMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"expectedToken","type":"address","internalType":"address"},{"name":"actualToken","type":"address","internalType":"address"}]},{"type":"error","name":"TokensNotSorted","inputs":[]},{"type":"error","name":"TradeAmountTooSmall","inputs":[]},{"type":"error","name":"VaultBuffersArePaused","inputs":[]},{"type":"error","name":"VaultIsNotUnlocked","inputs":[]},{"type":"error","name":"VaultNotPaused","inputs":[]},{"type":"error","name":"VaultPauseWindowDurationTooLarge","inputs":[]},{"type":"error","name":"VaultPauseWindowExpired","inputs":[]},{"type":"error","name":"VaultPaused","inputs":[]},{"type":"error","name":"VaultQueriesDisabled","inputs":[]},{"type":"error","name":"WeightedPoolBptRateUnsupported","inputs":[]},{"type":"error","name":"WrapAmountTooSmall","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"WrongProtocolFeeControllerDeployment","inputs":[]},{"type":"error","name":"WrongUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"underlyingToken","type":"address","internalType":"address"}]},{"type":"error","name":"WrongVaultAdminDeployment","inputs":[]},{"type":"error","name":"WrongVaultExtensionDeployment","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AfterAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllZeroInputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"AllowanceExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountGivenZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"AmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"AmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateAlreadyStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateRateTooFast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssetBoundsExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceNotSettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"BptAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"BptAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"BufferTotalSupplyTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"CallerIsNotPoolCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReceiveEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSwapSameToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportAddLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportDonation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportRemoveLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportUnbalancedLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DynamicSwapFeeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExcessiveInvalidation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeePrecisionTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedSwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolHooksContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"poolFactory\",\"type\":\"address\"}],\"name\":\"HookRegistrationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputLengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddLiquidityKind\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRemoveLiquidityKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenConfiguration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenDecimals\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"InvalidUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minIssuedShares\",\"type\":\"uint256\"}],\"name\":\"IssuedSharesBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinWeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultipleNonZeroInputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NormalizedWeightInvariant\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBufferShares\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedUnderlyingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualUnderlyingAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughUnderlying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedWrappedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualWrappedAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughWrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStaticCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultDelegateCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlyPauseGuardian\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PauseBufferPeriodDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentageAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAddressMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolCreatorFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreatorNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolFeesExceedTotalCollected\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolSwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolYieldFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabledPermanently\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteResultSpoofed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterNotTrusted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderIsNotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StandardPoolWithCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaticATokenInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapDeadline\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualToken\",\"type\":\"address\"}],\"name\":\"TokensMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TradeAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultBuffersArePaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultIsNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultNotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultQueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WeightedPoolBptRateUnsupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"WrapAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongProtocolFeeControllerDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"}],\"name\":\"WrongUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultAdminDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultExtensionDeployment\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"word\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mask\",\"type\":\"uint256\"}],\"name\":\"UnorderedNonceInvalidation\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"AllZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have one non-zero value, corresponding to the token being added or removed. This error results if all entries are zero.\"}],\"AllowanceExpired(uint256)\":[{\"params\":{\"deadline\":\"The timestamp at which the allowed amount is no longer valid\"}}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total BPT amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\"}}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\"}}],\"BufferAlreadyInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferNotInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferTotalSupplyTooLow(uint256)\":[{\"params\":{\"totalSupply\":\"The total supply value that was below the minimum\"}}],\"CallerIsNotPoolCreator(address,address)\":[{\"params\":{\"caller\":\"The account attempting to withdraw pool creator fees\",\"pool\":\"The pool the caller tried to withdraw from\"}}],\"FeePrecisionTooHigh()\":[{\"details\":\"Primary fee percentages are 18-decimal values, stored here in 64 bits, and calculated with full 256-bit precision. However, the resulting aggregate fees are stored in the Vault with 24-bit precision, which corresponds to 0.00001% resolution (i.e., a fee can be 1%, 1.00001%, 1.00002%, but not 1.000005%). Disallow setting fees such that there would be precision loss in the Vault, leading to a discrepancy between the aggregate fee calculated here and that stored in the Vault.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"HookRegistrationFailed(address,address,address)\":[{\"params\":{\"pool\":\"Address of the rejected pool\",\"poolFactory\":\"Address of the pool factory\",\"poolHooksContract\":\"Address of the hook contract that rejected the pool registration\"}}],\"InsufficientAllowance(uint256)\":[{\"params\":{\"amount\":\"The maximum amount allowed\"}}],\"InvalidUnderlyingToken(address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might do this (e.g., in an attempt to re-initialize the buffer).\",\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"IssuedSharesBelowMin(uint256,uint256)\":[{\"details\":\"Shares issued during initialization are below the requested amount.\"}],\"LengthMismatch()\":[{\"details\":\"If the spender does not need to transfer the number of tokens permitted, the spender can request amount 0 to be transferred\"}],\"MultipleNonZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have only one non-zero value, corresponding to the token being added or removed. This error results if there are multiple non-zero entries.\"}],\"NotEnoughUnderlying(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less underlying tokens than it should.\"}],\"NotEnoughWrapped(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less wrapped tokens than it should.\"}],\"NotVaultDelegateCall()\":[{\"details\":\"It can only be called by the Vault via delegatecall.\"}],\"PoolAlreadyInitialized(address)\":[{\"params\":{\"pool\":\"The already initialized pool\"}}],\"PoolAlreadyRegistered(address)\":[{\"params\":{\"pool\":\"The already registered pool\"}}],\"PoolCreatorNotRegistered(address)\":[{\"params\":{\"pool\":\"The pool with no creator\"}}],\"PoolInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInitialized(address)\":[{\"params\":{\"pool\":\"The uninitialized pool\"}}],\"PoolNotPaused(address)\":[{\"params\":{\"pool\":\"The unpaused pool\"}}],\"PoolNotRegistered(address)\":[{\"params\":{\"pool\":\"The unregistered pool\"}}],\"PoolPauseWindowExpired(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolPaused(address)\":[{\"params\":{\"pool\":\"The paused pool\"}}],\"ProtocolFeesExceedTotalCollected()\":[{\"details\":\"This occurs when the sum of the parts (aggregate swap or yield fee) is greater than the whole (total swap or yield fee). Also validated when the protocol fee controller updates aggregate fee percentages in the Vault.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol swap fee percentages.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol yield fee percentages.\"}],\"SenderIsNotVault(address)\":[{\"params\":{\"sender\":\"The account attempting to call a permissioned function\"}}],\"SwapFeePercentageTooHigh()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is above the maximum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapFeePercentageTooLow()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is below the minimum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"TokenAlreadyRegistered(address)\":[{\"params\":{\"token\":\"The duplicate token\"}}],\"TokenNotRegistered(address)\":[{\"params\":{\"token\":\"The unregistered token\"}}],\"TokensMismatch(address,address,address)\":[{\"params\":{\"actualToken\":\"The actual token found at that index\",\"expectedToken\":\"The correct token at a given index in the pool\",\"pool\":\"Address of the pool\"}}],\"TokensNotSorted()\":[{\"details\":\"Tokens are not sorted by address on registration. This is an optimization so that off-chain processes can predict the token order without having to query the Vault. (It is also legacy v2 behavior.)\"}],\"WrapAmountTooSmall(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"WrongUnderlyingToken(address,address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might not return the correct address. Legitimate wrapper contracts should make the asset a constant or immutable value.\",\"params\":{\"underlyingToken\":\"The underlying token returned by `asset`\",\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"AfterAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterAddLiquidity hook, indicating the transaction should revert.\"}],\"AfterInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the afterInitialize hook, indicating the transaction should revert.\"}],\"AfterRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterRemoveLiquidity hook, indicating the transaction should revert.\"}],\"AfterSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the afterSwap hook, indicating the transaction should revert.\"}],\"AllZeroInputs()\":[{\"notice\":\"No valid input was given for a single token operation.\"}],\"AllowanceExpired(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has expired.\"}],\"AmountGivenZero()\":[{\"notice\":\"The user tried to swap zero tokens.\"}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A required amountIn exceeds the maximum limit specified for the operation.\"}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The actual amount out is below the minimum limit specified for the operation.\"}],\"AmpUpdateAlreadyStarted()\":[{\"notice\":\"Amplification update operations must be done one at a time.\"}],\"AmpUpdateDurationTooShort()\":[{\"notice\":\"The amplification change duration is too short.\"}],\"AmpUpdateRateTooFast()\":[{\"notice\":\"The amplification change rate is too fast.\"}],\"AmplificationFactorTooHigh()\":[{\"notice\":\"The amplification factor is above the maximum of the range (1 - 5000).\"}],\"AmplificationFactorTooLow()\":[{\"notice\":\"The amplification factor is below the minimum of the range (1 - 5000).\"}],\"BalanceNotSettled()\":[{\"notice\":\"A transient accounting operation completed with outstanding token deltas.\"}],\"BeforeAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeAddLiquidity hook, indicating the transaction should revert.\"}],\"BeforeInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeInitialize hook, indicating the transaction should revert.\"}],\"BeforeRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeRemoveLiquidity hook, indicating the transaction should revert.\"}],\"BeforeSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"notice\":\"The required BPT amount in exceeds the maximum limit specified for the operation.\"}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"notice\":\"The BPT amount received from adding liquidity is below the minimum specified for the operation.\"}],\"BufferAlreadyInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was already initialized.\"}],\"BufferNotInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was not initialized.\"}],\"BufferSharesInvalidOwner()\":[{\"notice\":\"Buffer shares were burned from the zero address.\"}],\"BufferSharesInvalidReceiver()\":[{\"notice\":\"Buffer shares were minted to the zero address.\"}],\"BufferTotalSupplyTooLow(uint256)\":[{\"notice\":\"The total supply of a buffer can't be lower than the absolute minimum.\"}],\"CallerIsNotPoolCreator(address,address)\":[{\"notice\":\"Error raised if the wrong account attempts to withdraw pool creator fees.\"}],\"CannotReceiveEth()\":[{\"notice\":\"The contract should not receive ETH.\"}],\"CannotSwapSameToken()\":[{\"notice\":\"The user attempted to swap a token for itself.\"}],\"DoesNotSupportAddLiquidityCustom()\":[{\"notice\":\"Pool does not support adding liquidity with a customized input.\"}],\"DoesNotSupportDonation()\":[{\"notice\":\"Pool does not support adding liquidity through donation.\"}],\"DoesNotSupportRemoveLiquidityCustom()\":[{\"notice\":\"Pool does not support removing liquidity with a customized input.\"}],\"DoesNotSupportUnbalancedLiquidity()\":[{\"notice\":\"Pool does not support adding / removing liquidity with an unbalanced input.\"}],\"DynamicSwapFeeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"FeePrecisionTooHigh()\":[{\"notice\":\"Primary fee percentages result in an aggregate fee that cannot be stored with the required precision.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A hook adjusted amountIn exceeds the maximum limit specified for the operation.\"}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The hook adjusted amount out is below the minimum limit specified for the operation.\"}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"notice\":\"A hook adjusted amount in or out has exceeded the limit specified in the swap request.\"}],\"HookRegistrationFailed(address,address,address)\":[{\"notice\":\"A hook contract rejected a pool on registration.\"}],\"InputLengthMismatch()\":[{\"notice\":\"Arrays passed to a function and intended to be parallel have different lengths.\"}],\"InsufficientAllowance(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has been depleted.\"}],\"InvalidAddLiquidityKind()\":[{\"notice\":\"Add liquidity kind not supported.\"}],\"InvalidRemoveLiquidityKind()\":[{\"notice\":\"Remove liquidity kind not supported.\"}],\"InvalidToken()\":[{\"notice\":\"Invalid tokens (e.g., zero) cannot be registered.\"}],\"InvalidTokenConfiguration()\":[{\"notice\":\"The data in a TokenConfig struct is inconsistent or unsupported.\"}],\"InvalidTokenDecimals()\":[{\"notice\":\"Tokens with more than 18 decimals are not supported.\"}],\"InvalidTokenType()\":[{\"notice\":\"The token type given in a TokenConfig during pool registration is invalid.\"}],\"InvalidUnderlyingToken(address)\":[{\"notice\":\"A wrapped token reported the zero address as its underlying token asset.\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the number of tokens permissioned to a spender does not match the number of tokens being transferred\"}],\"MaxTokens()\":[{\"notice\":\"The token count is above the maximum allowed.\"}],\"MinTokens()\":[{\"notice\":\"The token count is below the minimum allowed.\"}],\"MinWeight()\":[{\"notice\":\"Indicates that one of the pool tokens' weight is below the minimum allowed.\"}],\"MultipleNonZeroInputs()\":[{\"notice\":\"More than one non-zero value was given for a single token operation.\"}],\"NormalizedWeightInvariant()\":[{\"notice\":\"Indicates that the sum of the pool tokens' weights is not FixedPoint.ONE.\"}],\"NotEnoughBufferShares()\":[{\"notice\":\"The user is trying to remove more than their allocated shares from the buffer.\"}],\"NotVaultDelegateCall()\":[{\"notice\":\"The `VaultExtension` contract was called by an account directly.\"}],\"PauseBufferPeriodDurationTooLarge()\":[{\"notice\":\"The caller specified a buffer period longer than the maximum.\"}],\"PercentageAboveMax()\":[{\"notice\":\"A given percentage is above the maximum (usually a value close to FixedPoint.ONE, or 1e18 wei).\"}],\"PoolAlreadyInitialized(address)\":[{\"notice\":\"A pool has already been initialized. `initialize` may only be called once.\"}],\"PoolAlreadyRegistered(address)\":[{\"notice\":\"A pool has already been registered. `registerPool` may only be called once.\"}],\"PoolCreatorFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the pool creator swap or yield fee percentage exceeds the maximum allowed value.\"}],\"PoolCreatorNotRegistered(address)\":[{\"notice\":\"Error raised if there is no pool creator on a withdrawal attempt from the given pool.\"}],\"PoolInRecoveryMode(address)\":[{\"notice\":\"Cannot enable recovery mode when already enabled.\"}],\"PoolNotInRecoveryMode(address)\":[{\"notice\":\"Cannot disable recovery mode when not enabled.\"}],\"PoolNotInitialized(address)\":[{\"notice\":\"A referenced pool has not been initialized.\"}],\"PoolNotPaused(address)\":[{\"notice\":\"Governance tried to unpause the Pool when it was not paused.\"}],\"PoolNotRegistered(address)\":[{\"notice\":\"A pool has not been registered.\"}],\"PoolPauseWindowExpired(address)\":[{\"notice\":\"Governance tried to pause a Pool after the pause period expired.\"}],\"PoolPaused(address)\":[{\"notice\":\"A user tried to perform an operation involving a paused Pool.\"}],\"ProtocolFeesExceedTotalCollected()\":[{\"notice\":\"Error raised when there is an overflow in the fee calculation.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol swap fee percentage exceeds the maximum allowed value.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol yield fee percentage exceeds the maximum allowed value.\"}],\"QueriesDisabled()\":[{\"notice\":\"A user tried to execute a query operation when they were disabled.\"}],\"QueriesDisabledPermanently()\":[{\"notice\":\"An admin tried to re-enable queries, but they were disabled permanently.\"}],\"QuoteResultSpoofed()\":[{\"notice\":\"Quote reverted with a reserved error code.\"}],\"RouterNotTrusted()\":[{\"notice\":\"An unauthorized Router tried to call a permissioned function (i.e., using the Vault's token allowance).\"}],\"SenderIsNotVault(address)\":[{\"notice\":\"Error indicating the sender is not the Vault (e.g., someone is trying to call a permissioned function).\"}],\"SwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the swap fee percentage is greater than the maximum allowed value.\"}],\"SwapFeePercentageTooLow()\":[{\"notice\":\"Error raised when the swap fee percentage is less than the minimum allowed value.\"}],\"SwapLimit(uint256,uint256)\":[{\"notice\":\"An amount in or out has exceeded the limit specified in the swap request.\"}],\"TokenAlreadyRegistered(address)\":[{\"notice\":\"A token was already registered (i.e., it is a duplicate in the pool).\"}],\"TokenNotRegistered(address)\":[{\"notice\":\"The user attempted to operate with a token that is not in the pool.\"}],\"TokensMismatch(address,address,address)\":[{\"notice\":\"The token list passed into an operation does not match the pool tokens in the pool.\"}],\"TokensNotSorted()\":[{\"notice\":\"The tokens supplied to an array argument were not sorted in numerical order.\"}],\"TradeAmountTooSmall()\":[{\"notice\":\"The amount given or calculated for an operation is below the minimum limit.\"}],\"VaultBuffersArePaused()\":[{\"notice\":\"Buffer operation attempted while vault buffers are paused.\"}],\"VaultIsNotUnlocked()\":[{\"notice\":\"A user called a Vault function (swap, add/remove liquidity) outside the lock context.\"}],\"VaultNotPaused()\":[{\"notice\":\"Governance tried to unpause the Vault when it was not paused.\"}],\"VaultPauseWindowDurationTooLarge()\":[{\"notice\":\"The caller specified a pause window period longer than the maximum.\"}],\"VaultPauseWindowExpired()\":[{\"notice\":\"Governance tried to pause the Vault after the pause period expired.\"}],\"VaultPaused()\":[{\"notice\":\"A user tried to perform an operation while the Vault was paused.\"}],\"WrapAmountTooSmall(address)\":[{\"notice\":\"The amount given to wrap/unwrap was too small, which can introduce rounding issues.\"}],\"WrongProtocolFeeControllerDeployment()\":[{\"notice\":\"The `ProtocolFeeController` contract was configured with an incorrect Vault address.\"}],\"WrongUnderlyingToken(address,address)\":[{\"notice\":\"The wrapped token asset does not match the underlying token.\"}],\"WrongVaultAdminDeployment()\":[{\"notice\":\"The `VaultAdmin` contract was configured with an incorrect Vault address.\"}],\"WrongVaultExtensionDeployment()\":[{\"notice\":\"The `VaultExtension` contract was configured with an incorrect Vault address.\"}]},\"events\":{\"UnorderedNonceInvalidation(address,uint256,uint256)\":{\"notice\":\"Emits an event when the owner successfully invalidates an unordered nonce.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerV3Errors.sol\":\"BalancerV3Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/BalancerV3SwapAdapter.sol\":{\"keccak256\":\"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a\",\"dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":{\"keccak256\":\"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76\",\"dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP\"]},\"src/balancer-v3/lib/BalancerV3Errors.sol\":{\"keccak256\":\"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9\",\"dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AfterAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterInitializeHookFailed"},{"inputs":[],"type":"error","name":"AfterRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterSwapHookFailed"},{"inputs":[],"type":"error","name":"AllZeroInputs"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"AllowanceExpired"},{"inputs":[],"type":"error","name":"AmountGivenZero"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"AmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"AmountOutBelowMin"},{"inputs":[],"type":"error","name":"AmpUpdateAlreadyStarted"},{"inputs":[],"type":"error","name":"AmpUpdateDurationTooShort"},{"inputs":[],"type":"error","name":"AmpUpdateRateTooFast"},{"inputs":[],"type":"error","name":"AmplificationFactorTooHigh"},{"inputs":[],"type":"error","name":"AmplificationFactorTooLow"},{"inputs":[],"type":"error","name":"AssetBoundsExceeded"},{"inputs":[],"type":"error","name":"BalanceNotSettled"},{"inputs":[],"type":"error","name":"BeforeAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeInitializeHookFailed"},{"inputs":[],"type":"error","name":"BeforeRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeSwapHookFailed"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"BptAmountInAboveMax"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"BptAmountOutBelowMin"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferAlreadyInitialized"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferNotInitialized"},{"inputs":[],"type":"error","name":"BufferSharesInvalidOwner"},{"inputs":[],"type":"error","name":"BufferSharesInvalidReceiver"},{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"}],"type":"error","name":"BufferTotalSupplyTooLow"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"CallerIsNotPoolCreator"},{"inputs":[],"type":"error","name":"CannotReceiveEth"},{"inputs":[],"type":"error","name":"CannotSwapSameToken"},{"inputs":[],"type":"error","name":"DoesNotSupportAddLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportDonation"},{"inputs":[],"type":"error","name":"DoesNotSupportRemoveLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportUnbalancedLiquidity"},{"inputs":[],"type":"error","name":"DynamicSwapFeeHookFailed"},{"inputs":[],"type":"error","name":"ExcessiveInvalidation"},{"inputs":[],"type":"error","name":"FeePrecisionTooHigh"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"HookAdjustedAmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"HookAdjustedAmountOutBelowMin"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"HookAdjustedSwapLimit"},{"inputs":[{"internalType":"address","name":"poolHooksContract","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"poolFactory","type":"address"}],"type":"error","name":"HookRegistrationFailed"},{"inputs":[],"type":"error","name":"InputLengthMismatch"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientEth"},{"inputs":[],"type":"error","name":"InvalidAddLiquidityKind"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"type":"error","name":"InvalidAmount"},{"inputs":[],"type":"error","name":"InvalidRemoveLiquidityKind"},{"inputs":[],"type":"error","name":"InvalidToken"},{"inputs":[],"type":"error","name":"InvalidTokenConfiguration"},{"inputs":[],"type":"error","name":"InvalidTokenDecimals"},{"inputs":[],"type":"error","name":"InvalidTokenType"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"InvalidUnderlyingToken"},{"inputs":[{"internalType":"uint256","name":"issuedShares","type":"uint256"},{"internalType":"uint256","name":"minIssuedShares","type":"uint256"}],"type":"error","name":"IssuedSharesBelowMin"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"MaxTokens"},{"inputs":[],"type":"error","name":"MinTokens"},{"inputs":[],"type":"error","name":"MinWeight"},{"inputs":[],"type":"error","name":"MultipleNonZeroInputs"},{"inputs":[],"type":"error","name":"NormalizedWeightInvariant"},{"inputs":[],"type":"error","name":"NotEnoughBufferShares"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedUnderlyingAmount","type":"uint256"},{"internalType":"uint256","name":"actualUnderlyingAmount","type":"uint256"}],"type":"error","name":"NotEnoughUnderlying"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedWrappedAmount","type":"uint256"},{"internalType":"uint256","name":"actualWrappedAmount","type":"uint256"}],"type":"error","name":"NotEnoughWrapped"},{"inputs":[],"type":"error","name":"NotStaticCall"},{"inputs":[],"type":"error","name":"NotVaultDelegateCall"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"OnlyPauseGuardian"},{"inputs":[],"type":"error","name":"PauseBufferPeriodDurationTooLarge"},{"inputs":[],"type":"error","name":"PercentageAboveMax"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAddressMismatch"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyRegistered"},{"inputs":[],"type":"error","name":"PoolCreatorFeePercentageTooHigh"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolCreatorNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotPaused"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPauseWindowExpired"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPaused"},{"inputs":[],"type":"error","name":"ProtocolFeesExceedTotalCollected"},{"inputs":[],"type":"error","name":"ProtocolSwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"ProtocolYieldFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"QueriesDisabled"},{"inputs":[],"type":"error","name":"QueriesDisabledPermanently"},{"inputs":[],"type":"error","name":"QuoteResultSpoofed"},{"inputs":[],"type":"error","name":"RouterNotTrusted"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderIsNotVault"},{"inputs":[],"type":"error","name":"StandardPoolWithCreator"},{"inputs":[],"type":"error","name":"StaticATokenInvalidZeroShares"},{"inputs":[],"type":"error","name":"SwapDeadline"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooLow"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"SwapLimit"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenAlreadyRegistered"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"expectedToken","type":"address"},{"internalType":"address","name":"actualToken","type":"address"}],"type":"error","name":"TokensMismatch"},{"inputs":[],"type":"error","name":"TokensNotSorted"},{"inputs":[],"type":"error","name":"TradeAmountTooSmall"},{"inputs":[],"type":"error","name":"VaultBuffersArePaused"},{"inputs":[],"type":"error","name":"VaultIsNotUnlocked"},{"inputs":[],"type":"error","name":"VaultNotPaused"},{"inputs":[],"type":"error","name":"VaultPauseWindowDurationTooLarge"},{"inputs":[],"type":"error","name":"VaultPauseWindowExpired"},{"inputs":[],"type":"error","name":"VaultPaused"},{"inputs":[],"type":"error","name":"VaultQueriesDisabled"},{"inputs":[],"type":"error","name":"WeightedPoolBptRateUnsupported"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"WrapAmountTooSmall"},{"inputs":[],"type":"error","name":"WrongProtocolFeeControllerDeployment"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"}],"type":"error","name":"WrongUnderlyingToken"},{"inputs":[],"type":"error","name":"WrongVaultAdminDeployment"},{"inputs":[],"type":"error","name":"WrongVaultExtensionDeployment"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"word","type":"uint256","indexed":false},{"internalType":"uint256","name":"mask","type":"uint256","indexed":false}],"type":"event","name":"UnorderedNonceInvalidation","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerV3Errors.sol":"BalancerV3Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/BalancerV3SwapAdapter.sol":{"keccak256":"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc","urls":["bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a","dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerSwapHelpers.sol":{"keccak256":"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88","urls":["bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76","dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerV3Errors.sol":{"keccak256":"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb","urls":["bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9","dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file diff --git a/evm/out/BalancerV3SwapAdapter.sol/BalancerV3SwapAdapter.json b/evm/out/BalancerV3SwapAdapter.sol/BalancerV3SwapAdapter.json deleted file mode 100644 index 2f5de5b..0000000 --- a/evm/out/BalancerV3SwapAdapter.sol/BalancerV3SwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vault_","type":"address","internalType":"address payable"},{"name":"_router","type":"address","internalType":"address"},{"name":"_permit2","type":"address","internalType":"address"},{"name":"_WETH_ADDRESS","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"_poolId","type":"bytes32","internalType":"bytes32"},{"name":"_sellToken","type":"address","internalType":"address"},{"name":"_buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x610100346101b757601f6150b538819003918201601f19168301916001600160401b038311848410176101bb578084926080946040528339810103126101b75780516001600160a01b03811691908290036101b757610060602082016101cf565b6100786060610071604085016101cf565b93016101cf565b6080939093526001600160a01b031660a05260e05260c052604051614ed190816101e48239608051818181609a01528181610810015281816122cb01528181612ba00152818161327f0152818161394b0152613dc8015260a0518181816109ba01528181610b1701528181610b9201528181610e5301528181610f2e015281816110030152818161113d015281816112f201528181611656015281816118a70152818161197b01528181611dd801528181611eea0152613ebb015260c05181818161095501528181610c6601528181610ded0152818161107801528181611599015281816115ca015281816116bf015281816116f701528181611c3001528181611c6401528181613fc101528181613ff7015261432e015260e051818181610bc601528181610fa901528181611109015281816112bf01526115f90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101b75756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146104c45750806348bd7dfd146104175780638307c655146103b1578063a9270fbe14610356578063aad6e488146101b75763ecbbc0331461006a575f61000f565b346101b35760203660031901126101b35760405163ca4f280360e01b81526004803560601c908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101a8575f91610186575b508051906100f86100e283610604565b926100f060405194856105e3565b808452610604565b602083019190601f19013683375f5b8151811015610138576001906001600160a01b03610125828561065c565b5116610131828761065c565b5201610107565b505090604051918291602083019060208452518091526040830191905f5b818110610164575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610156565b6101a291503d805f833e61019a81836105e3565b8101906107bb565b5f6100d2565b6040513d5f823e3d90fd5b5f80fd5b346101b35760803660031901126101b3576004356101d3610518565b906101dc61052e565b91606435916001600160401b0383116101b357366023840112156101b35782600401359261020984610604565b9361021760405195866105e3565b8085526024602086019160051b830101913683116101b357602401905b8282106103465750505082519361024a85610604565b9461025860405196876105e3565b808652610267601f1991610604565b015f5b8181106103235750505f5b84518110156102d2578061028b6001928761065c565b51610294610670565b506102a181858888613d9d565b90604051916102af8361057e565b825260208201526102c0828961065c565b526102cb818861065c565b5001610275565b856040518091602082016020835281518091526020604084019201905f5b8181106102fe575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102f0565b6020906040516103328161057e565b5f81525f8382015282828a0101520161026a565b8135815260209182019101610234565b346101b35761036d61036736610544565b916122ab565b6040518091602082016020835281518091526020604084019201905f5b818110610398575050500390f35b825184528594506020938401939092019160010161038a565b346101b35760a03660031901126101b3576103ca610518565b6103d261052e565b6064359160028310156101b3576080926103f292608435926004356106a9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101b35761042536610544565b5050506040516104366080826105e3565b60038152602081016060368237600161044e8361061b565b52600261045a8361063c565b5260086104668361064c565b52604051906020820192602083525180935260408201905f935b80851061048d5783830384f35b9091825190600a8210156104b05760208160019382935201930194019390610480565b634e487b7160e01b5f52602160045260245ffd5b346101b35760403660031901126101b357631d04569d60e21b815260206004820181905260248201527f42616c616e636572563353776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b03821682036101b357565b604435906001600160a01b03821682036101b357565b60609060031901126101b357600435906024356001600160a01b03811681036101b357906044356001600160a01b03811681036101b35790565b604081019081106001600160401b0382111761059957604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761059957604052565b608081019081106001600160401b0382111761059957604052565b90601f801991011681019081106001600160401b0382111761059957604052565b6001600160401b0381116105995760051b60200190565b8051156106285760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156106285760400190565b8051600210156106285760600190565b80518210156106285760209160051b010190565b6040519061067d8261057e565b5f6020838281520152565b9190820391821161069557565b634e487b7160e01b5f52601160045260245ffd5b919493929094604051956106bc876105ad565b5f87525f602088015260408701966040516106d68161057e565b5f81525f602082015288528097861561072957505061070693926106fd9286925a956107ed565b85525a90610688565b60208401528251906040519161071b8361057e565b825260208201526040830152565b9550959650505050506040519061073f8261057e565b5f8252600160208301525290565b9080601f830112156101b35781519061076582610604565b9261077360405194856105e3565b82845260208085019360051b8201019182116101b357602001915b81831061079b5750505090565b82516001600160a01b03811681036101b35781526020928301920161078e565b906020828203126101b35781516001600160401b0381116101b3576107e0920161074d565b90565b600211156104b057565b60405163ca4f280360e01b8152606082901c600482015291945f949385846024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101a8575f9461228f575b506001600160a01b038716968715958615959091905f9081898961227e575b1561220a575050506001805b8180612203575b156110bf5750505060019061088e816107e3565b03610d95576001600160a01b03168015928515610d21578647955b8781610d1a575b6108b8613777565b506108c1613777565b506108ca613699565b50479015610cad575b604051936108e0856105ad565b60601c84528460208501528260408501526108f9613737565b936109038561061b565b5261090d8461061b565b506040519361091b856105c8565b8b85526020850152604084015284606084015261093661379b565b926109408461061b565b5261094a8361061b565b50858815610b7c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109868461061b565b51525b8715610aed576109b5928891610ae5575b604051634758db2f60e11b815293849283926004840161303b565b0381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610ab5575b50935b15610aa9575090808080610a1d94335af1610a176130b9565b506130f7565b61061b565b5193849215610a92575082610a3981938293610688565b335af1610a446130b9565b5015610a4d5790565b60405162461bcd60e51b815260206004820152601960248201527f4661696c656420746f207472616e7366657220455448283229000000000000006044820152606490fd5b916107e09350610aa191610688565b90339061468c565b610a1d9250339061468c565b610ad191503d8086833e610ac981836105e3565b810190612e51565b9150505f6109fb565b6040513d89823e3d90fd5b86915061099a565b610b12928291610ae557604051634758db2f60e11b815293849283926004840161303b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610b5f575b50936109fe565b610b7391503d8086833e610ac981836105e3565b9150505f610b58565b909150610c64575b610b908630338c614648565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc4818b614419565b7f0000000000000000000000000000000000000000000000000000000000000000610bef818c614419565b6001600160a01b0316803b15610c6057610c23918a918c836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991610c3c575b5090610989565b81610c46916105e3565b610c5157875f610c35565b8780fd5b6040513d8b823e3d90fd5b8980fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020610ca581610c9d8661061b565b51015161061b565b510152610b84565b506040516370a0823160e01b81523360048201529091506020816024818d5afa908115610c5557908992918391610ce5575b506108d3565b9250506020823d602011610d12575b81610d01602093836105e3565b810103126101b3578891515f610cdf565b3d9150610cf4565b50856108b0565b6040516370a0823160e01b81523360048201526020816024818c5afa908115610d8a579088918291610d55575b50956108a9565b9150506020813d602011610d82575b81610d71602093836105e3565b810103126101b3578790515f610d4e565b3d9150610d64565b6040513d8a823e3d90fd5b9596956001600160a01b031680159594909392610dc2908290849087908c90886110b7575b60601c614aaf565b505097610dcd61379b565b98610dd78a61061b565b52610de18961061b565b50868215610f965750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1e8961061b565b51525b8015610eff5790610e4f978593610ef7575b60405180998194829363286f580d60e01b8452600484016131c6565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610ecf575b50925b15610eb85750808080610a1d93610ea88661061b565b51335af1610a176130b9565b5190565b610a1d9150610ec68361061b565b5190339061468c565b610ee391503d8085833e610ac981836105e3565b9150505f610e8f565b6040513d84823e3d90fd5b869250610e33565b50508290610f29968291610f8e575b60405163286f580d60e01b81529788928392600484016131c6565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610f71575b5092610e92565b610f8591503d8085833e610ac981836105e3565b9150505f610f6a565b859150610f0e565b611076575b610fa783303384614648565b7f0000000000000000000000000000000000000000000000000000000000000000610fd384828461458c565b6001600160a01b031690813b15611072576040516387517c4560e01b8152918791839190829084908290611035907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060048401612dc8565b03925af180156110675790869161104e575b5050610e21565b81611058916105e3565b61106357845f611047565b8480fd5b6040513d88823e3d90fd5b8680fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660206110af81610c9d8d61061b565b510152610f9b565b8b9450610dba565b819a98939695949a9792971590816121fa575b5015611564575050506110e98260601c8886613251565b95919390946110f7816107e3565b611272576111078330338a614648565b7f000000000000000000000000000000000000000000000000000000000000000061113384828a61458c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811698911690813b15610c60578861118d928b92836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c555791899796959493918b9361124d575b50916111bd9593916111ed9997959360601c614c68565b90604051916111cd6020846105e3565b8383528360405180968195829463286f580d60e01b845260048401613194565b03925af1918215611241579161120f91836107e09492611223575b505061061b565b5191829033906001600160a01b031661468c565b61123792503d8091833e610ac981836105e3565b9150505f80611208565b604051903d90823e3d90fd5b61126091935097809294959697986105e3565b610c515787959493929189915f6111a6565b929094879492989697506112846136b7565b92604051966370a0823160e01b88523360048901526020886024818d5afa978815610ada578798611530575b506112bd8830338d614648565b7f00000000000000000000000000000000000000000000000000000000000000006112e8818c614419565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116959116803b1561152c578886611341928e836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991611517575b505060038110156115035791879594939160018d94145f146114a25750906113b5838361145599611388836113d19897614816565b9150506113948a61061b565b5261139e8961061b565b506001600160a01b0385811692169060601c6149e1565b9150506113c18661063c565b526113cb8561063c565b506146c8565b9150506113dd8361064c565b526113e78261064c565b506113f061379b565b91604051906113fe826105c8565b898252602082015286604082015289606082015261141b8361061b565b526114258261061b565b50604051916114356020846105e3565b83835283604051809681958294634758db2f60e11b845260048401612fc1565b03925af19182156112415761147f6107e0969593611498959383611493949261122357505061061b565b5196879333906001600160a01b031661468c565b610688565b9033903090614648565b9683926114b56114e2956114559a6146c8565b9150506114c18861061b565b526114cb8761061b565b506001600160a01b0390811692169060601c6149e1565b9150506114ee8361063c565b526114f88261063c565b506113d18988614816565b634e487b7160e01b88526021600452602488fd5b81611521916105e3565b610c5157875f611353565b8880fd5b9097506020813d60201161155c575b8161154c602093836105e3565b810103126101b35751965f6112b0565b3d915061153f565b89975061157f9060019a888760609a98999596979a1c612b73565b99909161158b816107e3565b14908694845f146121f457507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389166121ed577f0000000000000000000000000000000000000000000000000000000000000000935b8381156121e057612171575b7f000000000000000000000000000000000000000000000000000000000000000061162c83826001600160a01b038b1661458c565b6001600160a01b0316803b156101b3576040516387517c4560e01b8152905f9082908183816116887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f60048401612dc8565b03925af180156101a85761215c575b505b83611c0957611bee575b506060998a956001600160a01b0381161591908215611be857507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0381169c8d15918215611be257507f0000000000000000000000000000000000000000000000000000000000000000945b6005811015611bce57918d93918360018e95145f14611aad5750505050505061173f6136f7565b6040516338d52e0f60e01b81529097906020816004816001600160a01b0388165afa908115611aa257918a93918d9695938791611a4a575b506117af94939261179d92909185916001600160a01b03918216918b169060601c614aaf565b9150506117a98a61061b565b52614816565b9150506117bb8761063c565b525b156119fa57506117cb61379b565b6040516370a0823160e01b815230600482015290916001600160a01b031690602081602481855afa908115610c55579089959493929186916119bd575b5061183e939495966040519261181d846105c8565b8352602083015260408201528660608201526118388261061b565b5261061b565b505b15611944576118a3926118836040519261185b6020856105e3565b84845260405163286f580d60e01b81526080600482015295869485938493608485019061313c565b5f1960248501526001604485015283810360031901606485015290612f9d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575b5061061b565b519283916001600160a01b031615611908576107e09250339061468c565b50908080806107e094335af1610a176130b9565b61193091503d8086833e610ac981836105e3565b9150505f6118e4565b6040513d85823e3d90fd5b6119769250604051906119586020836105e3565b82825260405163286f580d60e01b8152938492839260048401613194565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575061061b565b93949550506020833d6020116119f2575b816119db602093836105e3565b810103126101b3579151889493929061183e611808565b3d91506119ce565b939250611a0561379b565b9260405191611a13836105c8565b6001600160a01b0316825260208201526040810185905260016060820152611a3a8361061b565b52611a448261061b565b50611840565b92945050919394506020813d602011611a9a575b81611a6b602093836105e3565b81010312611a96579261179d6117af938b80948f9897611a8a90612b13565b92949596509250611777565b8b80fd5b3d9150611a5e565b6040513d8e823e3d90fd5b859897939596949650600281145f14611b13575050505090611aef8392611b0194611ad66136f7565b9b6001600160a01b0385811691908b169060601c614aaf565b915050611afb8a61061b565b52614908565b915050611b0d8761063c565b526117bd565b929b9195949350909160038103611b6357505090611b01939291611b356136f7565b9a611b408484614816565b915050611b4c8d61061b565b526001600160a01b0390811692169060601c614aaf565b6004919b9594935014611b7a575b505050506117bd565b611bb8939950611b886136f7565b99611b938389614908565b915050611b9f8c61061b565b526001600160a01b03908116919088169060601c614aaf565b915050611bc48761063c565b525f808881611b71565b634e487b7160e01b8e52602160045260248efd5b94611718565b946116e0565b611c039030336001600160a01b038916614648565b5f6116a3565b9794918897919496999a9b935047986120db575b6060936001600160a01b038b166120d4577f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389161580156120cd577f0000000000000000000000000000000000000000000000000000000000000000935b60058110156120b857918f91838f959360018d96145f14611fcf5750505050505050611caf6136f7565b6040516338d52e0f60e01b815290926020826004816001600160a01b0387165afa918215611fc257908c8f928a94611f72575b50611d169492611d0a926001600160a01b0392831615928692811691908b169060601c614aaf565b9150506117a98561061b565b915050611d228261063c565b525b611d2c61379b565b6040516370a0823160e01b815230600482015290936001600160a01b031691602082602481865afa918215611f6757908d95949392918692611f30575b5060405192611d77846105c8565b835260208301526040820152856060820152611d928361061b565b52611d9c8261061b565b5015611eb357611dd49260405191611db56020846105e3565b838352604051809581948293634758db2f60e11b845260048401612fc1565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b519788976001600160a01b031615611e865750611e459133906001600160a01b031661468c565b15611e6957506107e092611e5891610688565b9033906001600160a01b031661468c565b80809350611e7b6107e0958294610688565b335af1610a176130b9565b611e9a925080808093335af1610a176130b9565b611e45565b61193091503d8088833e610ac981836105e3565b611ee5925060405190611ec76020836105e3565b828252604051634758db2f60e11b8152938492839260048401612fc1565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b955090506020853d602011611f5f575b81611f4d602093836105e3565b810103126101b3578c9451905f611d69565b3d9150611f40565b6040513d8f823e3d90fd5b92505091506020813d602011611fba575b81611f90602093836105e3565b81010312611fb65791611d0a8c898094611fac611d1697612b13565b9496509250611ce2565b8d80fd5b3d9150611f83565b8e604051903d90823e3d90fd5b95969495939492936002820361203057505050505061201261201e939483611ff56136f7565b966001600160a01b039081161592858216918b169060601c614aaf565b915050611afb8561061b565b91505061202a8261063c565b52611d24565b9397929650909493926003820361206857505061201e9495506120516136f7565b9561205c8484614816565b915050611b4c8861061b565b6004929350501461207d575b50505050611d24565b6120a293945061208b6136f7565b946120968389614908565b915050611b9f8761061b565b9150506120ae8261063c565b525f808681612074565b50634e487b7160e01b8f52602160045260248ffd5b8993611c85565b8a94611c51565b6040516370a0823160e01b81523360048201526001600160a01b038b1699506020816024818d5afa8015611f675786908e90612126575b61212192509a30903390614648565b611c1d565b50506020813d602011612154575b81612141602093836105e3565b810103126101b357856121219151612112565b3d9150612134565b612169919b505f906105e3565b5f995f611697565b6040516370a0823160e01b81523360048201529091506020816024816001600160a01b038b165afa9081156101a8575f916121ae575b50906115f7565b90506020813d6020116121d8575b816121c9602093836105e3565b810103126101b357515f6121a7565b3d91506121bc565b1561169957479150611699565b88936115eb565b946115ba565b9050155f6110d2565b508061087a565b5f9b9a9794929b999693919895995b895181101561226c576001600160a01b03612234828c61065c565b51168c810361224b57509050600180915b01612219565b6001600160a01b038c1614612263575b600190612245565b60019c5061225b565b50919396999a90929598949750610873565b506001600160a01b03861615610867565b6122a49194503d805f833e61019a81836105e3565b925f610848565b60405163ca4f280360e01b8152606082811c6004830181905295949391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290915f85602481875afa9485156101a8575f95612af7575b506001600160a01b038216945f908187158015612ae6575b15612a76575050506001805b8180612a6f575b156124725750505050505f604051956123516060886105e3565b6002875260403660208901376024604051809481936333f0703b60e11b835260048301525afa9283156101a8575f915f94612449575b506001600160a01b0316915f5b825181101561244257816001600160a01b036123b0838661065c565b511614612411575b836001600160a01b036123cb838661065c565b5116146123db575b600101612394565b6123e5818661065c565b519060038202918083046003149015171561069557600a600192046124098961063c565b5290506123d3565b61241b818661065c565b5160038102908082046003149015171561069557600a900461243c8861061b565b526123b8565b5050505050565b90935061246891503d805f833e61246081836105e3565b8101906137e8565b509390505f612387565b8196949695929395159081612a66575b50156124a5575050505061249b6107e094958483613251565b949192909361390d565b889550865f9893956124b99395989a612b73565b969094604051946124ca81876105e3565b60028652601f19013660208701376024604051809581936333f0703b60e11b835260048301525afa9586156101a8575f925f97612a41575b505f9460058110156104b0576001810361268e575093966001600160a01b031693505f5b825181101561261b576001600160a01b03612541828561065c565b51168681146125ea575b6040516338d52e0f60e01b81526020816004818a5afa9081156101a8575f916125b1575b506001600160a01b031614612587575b600101612526565b9650612593878761065c565b5160038102908082046003149015171561069557600a90049661257f565b90506020813d82116125e2575b816125cb602093836105e3565b810103126101b3576125dc90612b13565b5f61256f565b3d91506125be565b6125f4828961065c565b5160038102908082046003149015171561069557600a90046126158661061b565b5261254b565b509591945050602091925060246040518094819363ef8b30f760e01b835260048301525afa9081156101a8575f9161265c575b506126588261063c565b5290565b90506020813d602011612686575b81612677602093836105e3565b810103126101b357515f61264e565b3d915061266a565b9397949695949093600281036127875750505f5b825181101561273f576001600160a01b036126bd828561065c565b51168581036126fd57506126d1818761065c565b519060038202918083046003149015171561069557600a600192046126f58a61061b565b525b016126a2565b6001600160a01b03851614612715575b6001906126f7565b9550612721868661065c565b5160038102908082046003149015171561069557600a90049561270d565b5060405163266d6a8360e11b81526004810196909652959493506020925083916024915082906001600160a01b03165afa9081156101a8575f9161265c57506126588261063c565b93965090939092600381036128ab575092946001600160a01b03928316935091909116905f5b815181101561244257836001600160a01b036127c9838561065c565b5116848114612817575b146127e1575b6001016127ad565b6127eb818661065c565b519060038202918083046003149015171561069557600a6001920461280f8961063c565b5290506127d9565b9050612823828761065c565b51906003820291808304600314901517156106955760405163266d6a8360e11b8152600a9092046004830152602082602481885afa80156101a85786925f91612877575b506128718a61061b565b526127d3565b9250506020823d82116128a3575b81612892602093836105e3565b810103126101b3578591515f612867565b3d9150612885565b600491959394979650146128c1575b5050505090565b9294939290916001600160a01b0316905f5b8151811015612a31576001600160a01b036128ee828461065c565b5116838114612a00575b6040516338d52e0f60e01b81526020816004818c5afa9081156101a8575f916129c7575b506001600160a01b031614612934575b6001016128d3565b61293e818561065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818b5afa80156101a8575f90612995575b6001925061298d8761061b565b52905061292c565b506020823d82116129bf575b816129ae602093836105e3565b810103126101b35760019151612980565b3d91506129a1565b90506020813d82116129f8575b816129e1602093836105e3565b810103126101b3576129f290612b13565b5f61291c565b3d91506129d4565b612a0a828661065c565b5160038102908082046003149015171561069557600a9004612a2b8761063c565b526128f8565b505050509091505f8080806128ba565b909650612a599192503d805f833e61246081836105e3565b509291905091955f612502565b9050155f612482565b5080612337565b5f99959391969492999897985b8751811015612ad6576001600160a01b03612a9e828a61065c565b51168a8103612ab557509050600180915b01612a83565b6001600160a01b038a1614612acd575b600190612aaf565b60019a50612ac5565b5091939550919397969596612330565b506001600160a01b03891615612324565b612b0c9195503d805f833e61019a81836105e3565b935f61230c565b51906001600160a01b03821682036101b357565b15612b2e57565b60405162461bcd60e51b815260206004820152601760248201527f546f6b656e206e6f7420666f756e6420696e20706f6f6c0000000000000000006044820152606490fd5b60405163ca4f280360e01b81526001600160a01b0391821660048201525f949092918590849060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9283156101a8575f93612dac575b5015612cc15750612be082614320565b15612bed5750506001915b565b5f5b8151811015612cb9576001600160a01b03612c0a828461065c565b5116612c1581614320565b80612c47575b612c285750600101612bef565b93505050505b612c426001600160a01b0382161515612b27565b600291565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612c80575b506001600160a01b03858116911614612c1b565b90506020813d8211612cb1575b81612c9a602093836105e3565b810103126101b357612cab90612b13565b5f612c6c565b3d9150612c8d565b505050612c2e565b9150612ccc82614320565b15612cd8575050600491565b5f5b8151811015612da4576001600160a01b03612cf5828461065c565b5116612d0081614320565b80612d32575b612d135750600101612cda565b93505050505b612d2d6001600160a01b0382161515612b27565b600391565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612d6b575b506001600160a01b03858116911614612d06565b90506020813d8211612d9c575b81612d85602093836105e3565b810103126101b357612d9690612b13565b5f612d57565b3d9150612d78565b505050612d19565b612dc19193503d805f833e61019a81836105e3565b915f612bd0565b6001600160a01b0391821681529181166020830152604082015265ffffffffffff606082015260800190565b9080601f830112156101b3578151612e0b81610604565b92612e1960405194856105e3565b81845260208085019260051b8201019283116101b357602001905b828210612e415750505090565b8151815260209182019101612e34565b916060838303126101b35782516001600160401b0381116101b35782612e78918501612df4565b9260208101516001600160401b0381116101b357810183601f820112156101b357805190612ea582610604565b91612eb360405193846105e3565b80835260208084019160051b830101918683116101b357602001905b828210612ef7575050509260408201516001600160401b0381116101b3576107e09201612df4565b60208091612f0484612b13565b815201910190612ecf565b90608081019160018060a01b038151168252602081015192608060208401528351809152602060a084019401905f5b818110612f5e575050506060816040829301516040850152015191015290565b825180516001600160a01b0390811688526020828101519091168189015260409182015115159188019190915260609096019590920191600101612f3e565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9291608084019360808152825180955260a0810194602060a08260051b8401019401905f5b818110613010575050506107e09394505f1960208201525f60408201526060818403910152612f9d565b90919460208061302c600193609f19888203018c528951612f0f565b97019801910196919096612fe6565b9291926080810160808252825180915260a0820190602060a08260051b8501019401915f905b82821061308e57505050506107e092935f1960208301521515604082015260608183039101526060612f9d565b909192946020806130ab600193609f198982030186528951612f0f565b970192019201909291613061565b3d156130f2573d906001600160401b03821161059957604051916130e7601f8201601f1916602001846105e3565b82523d5f602084013e565b606090565b156130fe57565b60405162461bcd60e51b815260206004820152601660248201527508cc2d2d8cac840e8de40e8e4c2dce6cccae4408aa8960531b6044820152606490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061316757505050505090565b9091929394602080613185600193601f198682030187528951612f0f565b97019301930191939290613158565b90916131ab6107e09360808452608084019061313c565b915f1960208201525f60408201526060818403910152612f9d565b6131dc6107e0939260808352608083019061313c565b5f1960208301529115156040820152808203606091820152612f9d565b1561320057565b60405162461bcd60e51b8152602060048201526024808201527f435553544f4d5f5752415028343632362d34363236293a20496e76616c696420604482015263141bdbdb60e21b6064820152608490fd5b60405163ca4f280360e01b81526001600160a01b039384166004820152925f929183918290869060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f9561367d575b506132b981614320565b8061366e575b1561346c576040516338d52e0f60e01b81529190602090839060049082906001600160a01b03165afa9182156101a8575f9261342b575b506040516338d52e0f60e01b815292602090849060049082906001600160a01b03165afa9283156101a8575f936133ef575b505f5b85518110156133e5576001600160a01b03613346828861065c565b51166001600160a01b0383161515806133d3575b61339a576001600160a01b0384168114613392575b6001600160a01b0385168114613389575b5060010161332b565b94506001613380565b91508161336f565b5050935050505b6001600160a01b0382161515806133c1575b6133bc906131f9565b600292565b506001600160a01b03811615156133b3565b506001600160a01b038616151561335a565b50935050506133a1565b9092506020813d602011613423575b8161340b602093836105e3565b810103126101b35761341c90612b13565b915f613328565b3d91506133fe565b9291506020833d602011613464575b81613447602093836105e3565b810103126101b357602061345c600494612b13565b9293506132f6565b3d915061343a565b91949061347883614320565b158061365e575b15613619575f5b855181101561360e576001600160a01b036134a1828861065c565b51166134ac81614320565b6134ba575b50600101613486565b6001600160a01b0383161515806135fc575b6135c2576040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613589575b506001600160a01b03868116911614613581575b6040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613548575b506001600160a01b038981169116036134b157945060016134b1565b90506020813d8211613579575b81613562602093836105e3565b810103126101b35761357390612b13565b5f61352c565b3d9150613555565b915081613508565b90506020813d82116135ba575b816135a3602093836105e3565b810103126101b3576135b490612b13565b5f6134f4565b3d9150613596565b505093509350505b6001600160a01b0382161515806135ea575b6135e5906131f9565b600192565b506001600160a01b03811615156135dc565b506001600160a01b03861615156134cc565b5093509350506135ca565b60405162461bcd60e51b815260206004820152601b60248201527f435553544f4d5f575241503a20496e76616c696420746f6b656e7300000000006044820152606490fd5b5061366886614320565b1561347f565b5061367883614320565b6132bf565b6136929195503d805f833e61019a81836105e3565b935f6132af565b604051906136a6826105ad565b5f6040838281528260208201520152565b604051608091906136c883826105e3565b6003815291601f1901825f5b8281106136e057505050565b6020906136eb613699565b828285010152016136d4565b6040516060919061370883826105e3565b6002815291601f1901825f5b82811061372057505050565b60209061372b613699565b82828501015201613714565b6040805190919061374883826105e3565b6001815291601f1901825f5b82811061376057505050565b60209061376b613699565b82828501015201613754565b60405190613784826105c8565b5f6060838281528160208201528260408201520152565b604080519091906137ac83826105e3565b6001815291601f1901825f5b8281106137c457505050565b6020906137cf613777565b828285010152016137b8565b519081151582036101b357565b906080828203126101b35781516001600160401b0381116101b3578161380f91840161074d565b9260208301516001600160401b0381116101b357830182601f820112156101b357805161383b81610604565b9161384960405193846105e3565b818352602060608185019302820101908582116101b357602001915b8183106138ad575050509260408101516001600160401b0381116101b3578361388f918301612df4565b9260608201516001600160401b0381116101b3576107e09201612df4565b6060838703126101b357604051906138c4826105ad565b835160028110156101b35782526020840151906001600160a01b03821682036101b357826020928360609501526138fd604087016137db565b6040820152815201920191613865565b959460405161391d6060826105e3565b6002815260403660208301376040516333f0703b60e11b815260609890981c60048901529485905f896024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9586156101a8575f995f97613d78575b5060038110156104b057600114613bf55750506040516338d52e0f60e01b81526001600160a01b0392909216969190506020816004818a5afa9081156101a8575f91613bbb575b506040516338d52e0f60e01b81526001600160a01b039384169791909316926020816004818b5afa9081156101a8575f91613b81575b506001600160a01b0316925f5b8351811015613b7657816001600160a01b03613a2b838761065c565b511614613ae9575b846001600160a01b03613a46838761065c565b511614613a56575b600101613a0f565b613a60818761065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818d5afa80156101a8575f90613ab7575b60019250613aaf8961063c565b529050613a4e565b506020823d8211613ae1575b81613ad0602093836105e3565b810103126101b35760019151613aa2565b3d9150613ac3565b613af3818761065c565b516003810290808204600314901517156106955760405163ef8b30f760e01b8152600a9091046004820152602081602481875afa9081156101a8575f91613b45575b50613b3f8861061b565b52613a33565b90506020813d8211613b6e575b81613b5f602093836105e3565b810103126101b357515f613b35565b3d9150613b52565b509496505050505050565b90506020813d602011613bb3575b81613b9c602093836105e3565b810103126101b357613bad90612b13565b5f613a02565b3d9150613b8f565b90506020813d602011613bed575b81613bd6602093836105e3565b810103126101b357613be790612b13565b5f6139cc565b3d9150613bc9565b935094509590505f5b8151811015613d6f576001600160a01b03613c19828461065c565b516001600160a01b038516929116828103613cc25750613c39818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613c90575b60019250613c888761061b565b525b01613bfe565b506020823d8211613cba575b81613ca9602093836105e3565b810103126101b35760019151613c7b565b3d9150613c9c565b6001600160a01b03891692508214613cde575b60019150613c8a565b613ce8818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613d3d575b60019250613d378761063c565b52613cd5565b506020823d8211613d67575b81613d56602093836105e3565b810103126101b35760019151613d2a565b3d9150613d49565b50929450505050565b909650613d909199503d805f833e61246081836105e3565b509991905098955f613985565b909392935f9160601c6040519363ca4f280360e01b85528160048601525f8560248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f95614304575b506001600160a01b038316801580159690959194905f9081888a6142f3575b15614283575050506001805b818061427c575b15613f1857509798613eb698505f97613e9d97613e5b97909692956001600160a01b031694509250613f0f57614aaf565b5050613e6561379b565b90613e6f8261061b565b52613e798161061b565b506040516338ed77fd60e21b8152606060048201529384928392606484019061313c565b3060248401528281036003190160448401526060612f9d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101a857610eb4915f91613efb575061061b565b61193091503d805f833e610ac981836105e3565b82159450614aaf565b9195508092999496939750159081614273575b5015613f83575050613eb69495509181613f5693613f4c83875f9896613251565b9591939094614c68565b60405190613f656020836105e3565b8282526040516338ed77fd60e21b8152938492839260048401614d9f565b613f9290868587989497612b73565b909160058310156104b05782613fab5750505050505050565b909192939495969750606094865f1461426d57507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0382161591821561426757507f0000000000000000000000000000000000000000000000000000000000000000935b60018103614152575050505061402c6136f7565b6040516338d52e0f60e01b8152959094906020876004816001600160a01b0387165afa9687156101a8575f976140f9575b50613eb6965f96959493614096938593919261408a9285916001600160a01b0390811691908a1690614aaf565b9150506117a98761061b565b9150506140a28461063c565b525b6140ac61379b565b92604051926140ba846105c8565b6001600160a01b0316835260208301526040820152600160608201526140df8261061b565b526140e98161061b565b5060405190613f656020836105e3565b909594939296506020813d60201161414a575b81614119602093836105e3565b810103126101b357613eb69661408a61409693855f996141398296612b13565b9b509450509350509293949561405d565b3d915061410c565b91613eb698969594915f9893600281148a146141b257505050506141a09161419484928361417e6136f7565b986001600160a01b0385811691908a1690614aaf565b915050611afb8761061b565b9150506141ac8461063c565b526140a4565b92979194935090916003811489146142005750506141a0929184916141d56136f7565b976141e08484614816565b9150506141ec8a61061b565b526001600160a01b03908116921690614aaf565b6004919794935014614215575b5050506140a4565b61425292955083906142256136f7565b966142308388614908565b91505061423c8961061b565b526001600160a01b039081169190871690614aaf565b91505061425e8461063c565b525f808061420d565b93614018565b94613fe2565b9050155f613f2b565b5080613e2a565b5f9a9693919799959894929a5b88518110156142e3576001600160a01b036142ab828b61065c565b51168b81036142c257509050600180915b01614290565b6001600160a01b038b16146142da575b6001906142bc565b60019b506142d2565b5091939794989650919498613e23565b506001600160a01b03861615613e17565b6143199195503d805f833e61019a81836105e3565b935f613df8565b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168114614414576040516338d52e0f60e01b8152602081600481855afa90816143dd575b5061437b57505f90565b602060249160405192838092636c82bbbf60e11b82523360048301525afa90816143ae575b506143a9575f90565b600190565b6020813d6020116143d5575b816143c7602093836105e3565b810103126101b357516143a0565b3d91506143ba565b6020813d60201161440c575b816143f6602093836105e3565b810103126101b35761440790612b13565b614371565b3d91506143e9565b505f90565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529391929190821690602084604481855afa9384156101a8575f94614558575b505f1984018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481015b03601f1981018852876105e3565b85519082855af1906144be6130b9565b8261451e575b5081614513575b50156144d657505050565b61450e612beb936040519063095ea7b360e01b602083015260248201525f6044820152604481526145086064826105e3565b82614dca565b614dca565b90503b15155f6144cb565b80519192508115918215614536575b5050905f6144c4565b81925090602091810103126101b357602061455191016137db565b5f8061452d565b9093506020813d602011614584575b81614574602093836105e3565b810103126101b35751925f61445d565b3d9150614567565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156101a8575f95614614575b5084018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481016144a0565b9094506020813d602011614640575b81614630602093836105e3565b810103126101b35751935f6145cf565b3d9150614623565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152612beb9161450e6084836105e3565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612beb9161450e6064836105e3565b91906146d2613777565b926146db613777565b506146e4613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916147dc575b5060405192906001600160a01b031661472e846105ad565b82845260208401526001604084015282614746613737565b906147508261061b565b5261475a8161061b565b506040516370a0823160e01b815230600482015290602082602481875afa9182156101a8575f926147a8575b5060405193614794856105c8565b845260208401526040830152606082015291565b9091506020813d6020116147d4575b816147c4602093836105e3565b810103126101b35751905f614786565b3d91506147b7565b90506020813d60201161480e575b816147f7602093836105e3565b810103126101b35761480890612b13565b5f614716565b3d91506147ea565b9061481f613777565b50614828613777565b91614831613699565b506040516001600160a01b03919091169161484b826105ad565b828252826020830152600160408301528192614865613737565b9261486f8461061b565b526148798361061b565b506020600491604051928380926338d52e0f60e01b82525afa9081156101a8575f916148ce575b5060405192906001600160a01b03166148b8846105c8565b8352602083015260408201526001606082015292565b90506020813d602011614900575b816148e9602093836105e3565b810103126101b3576148fa90612b13565b5f6148a0565b3d91506148dc565b90614911613777565b5061491a613777565b91614923613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916149a7575b5060405192906001600160a01b031661496d846105ad565b82845260208401526001604084015282614985613737565b9061498f8261061b565b526149998161061b565b50604051926148b8846105c8565b90506020813d6020116149d9575b816149c2602093836105e3565b810103126101b3576149d390612b13565b5f614955565b3d91506149b5565b919093926149ed613777565b946149f6613777565b506149ff613699565b506040516370a0823160e01b81523360048201526001600160a01b039190911692602082602481875afa9182156101a8575f92614a7b575b5060405194614a45866105ad565b6001600160a01b0390811686521660208501525f604085015283614a67613737565b90614a718261061b565b526147868161061b565b9091506020813d602011614aa7575b81614a97602093836105e3565b810103126101b35751905f614a37565b3d9150614a8a565b929091614aba613777565b50614ac3613777565b94614acc613699565b5015614b43575b60405193614ae0856105ad565b6001600160a01b0390811685521660208401525f604084015282614b02613737565b90614b0c8261061b565b52614b168161061b565b5060405192614b24846105c8565b6001600160a01b03168352602083015260408201526001606082015292565b6040516370a0823160e01b81523360048201526020816024816001600160a01b0388165afa9081156101a8575f91614b7d575b5050614ad3565b90506020813d602011614ba7575b81614b98602093836105e3565b810103126101b357515f614b76565b3d9150614b8b565b919092614bba613777565b50614bc3613777565b93614bcc613699565b506040516370a0823160e01b81523360048201526001600160a01b03919091169290602081602481875afa9081156101a8575f91614c36575b505060405193614c14856105ad565b6001600160a01b0390811685521660208401525f604084015282614985613737565b90506020813d602011614c60575b81614c51602093836105e3565b810103126101b357515f614c05565b3d9150614c44565b9695909492939196614c786136b7565b9760038410156104b0578593600103614d4457508284614cc992614c9f83614ce598614816565b915050614cab8c61061b565b52614cb58b61061b565b506001600160a01b03858116921690614baf565b915050614cd58861063c565b52614cdf8761063c565b50614908565b915050614cf18561064c565b52614cfb8461064c565b50614d0461379b565b9360405192614d12846105c8565b6001600160a01b031683526020830152604082015260016060820152614d378361061b565b52614d418261061b565b50565b91614ce594614d83928592614d59848b614908565b915050614d658d61061b565b52614d6f8c61061b565b506001600160a01b03908116921690614baf565b915050614d8f8861063c565b52614d998761063c565b50614816565b9091614db66107e09360608452606084019061313c565b915f60208201526040818403910152612f9d565b5f80614df29260018060a01b03169360208151910182865af1614deb6130b9565b9083614e3d565b8051908115159182614e1a575b5050614e085750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101b3576020614e3591016137db565b155f80614dff565b90614e615750805115614e5257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580614e92575b614e72575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614e6a56fea2646970667358221220e323e5fa26c6abf091be22f35678640537c279bbf3c0177d321594dfa3820d9b64736f6c634300081b0033","sourceMap":"746:3925:42:-:0;;;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;948:22;;;;-1:-1:-1;;;;;746:3925:42;;980:30;1020:18;;1048:28;;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;980:30;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:28;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:18;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;-1:-1:-1;746:3925:42;;;;;-1:-1:-1;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146104c45750806348bd7dfd146104175780638307c655146103b1578063a9270fbe14610356578063aad6e488146101b75763ecbbc0331461006a575f61000f565b346101b35760203660031901126101b35760405163ca4f280360e01b81526004803560601c908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101a8575f91610186575b508051906100f86100e283610604565b926100f060405194856105e3565b808452610604565b602083019190601f19013683375f5b8151811015610138576001906001600160a01b03610125828561065c565b5116610131828761065c565b5201610107565b505090604051918291602083019060208452518091526040830191905f5b818110610164575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610156565b6101a291503d805f833e61019a81836105e3565b8101906107bb565b5f6100d2565b6040513d5f823e3d90fd5b5f80fd5b346101b35760803660031901126101b3576004356101d3610518565b906101dc61052e565b91606435916001600160401b0383116101b357366023840112156101b35782600401359261020984610604565b9361021760405195866105e3565b8085526024602086019160051b830101913683116101b357602401905b8282106103465750505082519361024a85610604565b9461025860405196876105e3565b808652610267601f1991610604565b015f5b8181106103235750505f5b84518110156102d2578061028b6001928761065c565b51610294610670565b506102a181858888613d9d565b90604051916102af8361057e565b825260208201526102c0828961065c565b526102cb818861065c565b5001610275565b856040518091602082016020835281518091526020604084019201905f5b8181106102fe575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102f0565b6020906040516103328161057e565b5f81525f8382015282828a0101520161026a565b8135815260209182019101610234565b346101b35761036d61036736610544565b916122ab565b6040518091602082016020835281518091526020604084019201905f5b818110610398575050500390f35b825184528594506020938401939092019160010161038a565b346101b35760a03660031901126101b3576103ca610518565b6103d261052e565b6064359160028310156101b3576080926103f292608435926004356106a9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101b35761042536610544565b5050506040516104366080826105e3565b60038152602081016060368237600161044e8361061b565b52600261045a8361063c565b5260086104668361064c565b52604051906020820192602083525180935260408201905f935b80851061048d5783830384f35b9091825190600a8210156104b05760208160019382935201930194019390610480565b634e487b7160e01b5f52602160045260245ffd5b346101b35760403660031901126101b357631d04569d60e21b815260206004820181905260248201527f42616c616e636572563353776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b03821682036101b357565b604435906001600160a01b03821682036101b357565b60609060031901126101b357600435906024356001600160a01b03811681036101b357906044356001600160a01b03811681036101b35790565b604081019081106001600160401b0382111761059957604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761059957604052565b608081019081106001600160401b0382111761059957604052565b90601f801991011681019081106001600160401b0382111761059957604052565b6001600160401b0381116105995760051b60200190565b8051156106285760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156106285760400190565b8051600210156106285760600190565b80518210156106285760209160051b010190565b6040519061067d8261057e565b5f6020838281520152565b9190820391821161069557565b634e487b7160e01b5f52601160045260245ffd5b919493929094604051956106bc876105ad565b5f87525f602088015260408701966040516106d68161057e565b5f81525f602082015288528097861561072957505061070693926106fd9286925a956107ed565b85525a90610688565b60208401528251906040519161071b8361057e565b825260208201526040830152565b9550959650505050506040519061073f8261057e565b5f8252600160208301525290565b9080601f830112156101b35781519061076582610604565b9261077360405194856105e3565b82845260208085019360051b8201019182116101b357602001915b81831061079b5750505090565b82516001600160a01b03811681036101b35781526020928301920161078e565b906020828203126101b35781516001600160401b0381116101b3576107e0920161074d565b90565b600211156104b057565b60405163ca4f280360e01b8152606082901c600482015291945f949385846024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101a8575f9461228f575b506001600160a01b038716968715958615959091905f9081898961227e575b1561220a575050506001805b8180612203575b156110bf5750505060019061088e816107e3565b03610d95576001600160a01b03168015928515610d21578647955b8781610d1a575b6108b8613777565b506108c1613777565b506108ca613699565b50479015610cad575b604051936108e0856105ad565b60601c84528460208501528260408501526108f9613737565b936109038561061b565b5261090d8461061b565b506040519361091b856105c8565b8b85526020850152604084015284606084015261093661379b565b926109408461061b565b5261094a8361061b565b50858815610b7c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109868461061b565b51525b8715610aed576109b5928891610ae5575b604051634758db2f60e11b815293849283926004840161303b565b0381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610ab5575b50935b15610aa9575090808080610a1d94335af1610a176130b9565b506130f7565b61061b565b5193849215610a92575082610a3981938293610688565b335af1610a446130b9565b5015610a4d5790565b60405162461bcd60e51b815260206004820152601960248201527f4661696c656420746f207472616e7366657220455448283229000000000000006044820152606490fd5b916107e09350610aa191610688565b90339061468c565b610a1d9250339061468c565b610ad191503d8086833e610ac981836105e3565b810190612e51565b9150505f6109fb565b6040513d89823e3d90fd5b86915061099a565b610b12928291610ae557604051634758db2f60e11b815293849283926004840161303b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610b5f575b50936109fe565b610b7391503d8086833e610ac981836105e3565b9150505f610b58565b909150610c64575b610b908630338c614648565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc4818b614419565b7f0000000000000000000000000000000000000000000000000000000000000000610bef818c614419565b6001600160a01b0316803b15610c6057610c23918a918c836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991610c3c575b5090610989565b81610c46916105e3565b610c5157875f610c35565b8780fd5b6040513d8b823e3d90fd5b8980fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020610ca581610c9d8661061b565b51015161061b565b510152610b84565b506040516370a0823160e01b81523360048201529091506020816024818d5afa908115610c5557908992918391610ce5575b506108d3565b9250506020823d602011610d12575b81610d01602093836105e3565b810103126101b3578891515f610cdf565b3d9150610cf4565b50856108b0565b6040516370a0823160e01b81523360048201526020816024818c5afa908115610d8a579088918291610d55575b50956108a9565b9150506020813d602011610d82575b81610d71602093836105e3565b810103126101b3578790515f610d4e565b3d9150610d64565b6040513d8a823e3d90fd5b9596956001600160a01b031680159594909392610dc2908290849087908c90886110b7575b60601c614aaf565b505097610dcd61379b565b98610dd78a61061b565b52610de18961061b565b50868215610f965750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1e8961061b565b51525b8015610eff5790610e4f978593610ef7575b60405180998194829363286f580d60e01b8452600484016131c6565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610ecf575b50925b15610eb85750808080610a1d93610ea88661061b565b51335af1610a176130b9565b5190565b610a1d9150610ec68361061b565b5190339061468c565b610ee391503d8085833e610ac981836105e3565b9150505f610e8f565b6040513d84823e3d90fd5b869250610e33565b50508290610f29968291610f8e575b60405163286f580d60e01b81529788928392600484016131c6565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610f71575b5092610e92565b610f8591503d8085833e610ac981836105e3565b9150505f610f6a565b859150610f0e565b611076575b610fa783303384614648565b7f0000000000000000000000000000000000000000000000000000000000000000610fd384828461458c565b6001600160a01b031690813b15611072576040516387517c4560e01b8152918791839190829084908290611035907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060048401612dc8565b03925af180156110675790869161104e575b5050610e21565b81611058916105e3565b61106357845f611047565b8480fd5b6040513d88823e3d90fd5b8680fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660206110af81610c9d8d61061b565b510152610f9b565b8b9450610dba565b819a98939695949a9792971590816121fa575b5015611564575050506110e98260601c8886613251565b95919390946110f7816107e3565b611272576111078330338a614648565b7f000000000000000000000000000000000000000000000000000000000000000061113384828a61458c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811698911690813b15610c60578861118d928b92836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c555791899796959493918b9361124d575b50916111bd9593916111ed9997959360601c614c68565b90604051916111cd6020846105e3565b8383528360405180968195829463286f580d60e01b845260048401613194565b03925af1918215611241579161120f91836107e09492611223575b505061061b565b5191829033906001600160a01b031661468c565b61123792503d8091833e610ac981836105e3565b9150505f80611208565b604051903d90823e3d90fd5b61126091935097809294959697986105e3565b610c515787959493929189915f6111a6565b929094879492989697506112846136b7565b92604051966370a0823160e01b88523360048901526020886024818d5afa978815610ada578798611530575b506112bd8830338d614648565b7f00000000000000000000000000000000000000000000000000000000000000006112e8818c614419565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116959116803b1561152c578886611341928e836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991611517575b505060038110156115035791879594939160018d94145f146114a25750906113b5838361145599611388836113d19897614816565b9150506113948a61061b565b5261139e8961061b565b506001600160a01b0385811692169060601c6149e1565b9150506113c18661063c565b526113cb8561063c565b506146c8565b9150506113dd8361064c565b526113e78261064c565b506113f061379b565b91604051906113fe826105c8565b898252602082015286604082015289606082015261141b8361061b565b526114258261061b565b50604051916114356020846105e3565b83835283604051809681958294634758db2f60e11b845260048401612fc1565b03925af19182156112415761147f6107e0969593611498959383611493949261122357505061061b565b5196879333906001600160a01b031661468c565b610688565b9033903090614648565b9683926114b56114e2956114559a6146c8565b9150506114c18861061b565b526114cb8761061b565b506001600160a01b0390811692169060601c6149e1565b9150506114ee8361063c565b526114f88261063c565b506113d18988614816565b634e487b7160e01b88526021600452602488fd5b81611521916105e3565b610c5157875f611353565b8880fd5b9097506020813d60201161155c575b8161154c602093836105e3565b810103126101b35751965f6112b0565b3d915061153f565b89975061157f9060019a888760609a98999596979a1c612b73565b99909161158b816107e3565b14908694845f146121f457507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389166121ed577f0000000000000000000000000000000000000000000000000000000000000000935b8381156121e057612171575b7f000000000000000000000000000000000000000000000000000000000000000061162c83826001600160a01b038b1661458c565b6001600160a01b0316803b156101b3576040516387517c4560e01b8152905f9082908183816116887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f60048401612dc8565b03925af180156101a85761215c575b505b83611c0957611bee575b506060998a956001600160a01b0381161591908215611be857507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0381169c8d15918215611be257507f0000000000000000000000000000000000000000000000000000000000000000945b6005811015611bce57918d93918360018e95145f14611aad5750505050505061173f6136f7565b6040516338d52e0f60e01b81529097906020816004816001600160a01b0388165afa908115611aa257918a93918d9695938791611a4a575b506117af94939261179d92909185916001600160a01b03918216918b169060601c614aaf565b9150506117a98a61061b565b52614816565b9150506117bb8761063c565b525b156119fa57506117cb61379b565b6040516370a0823160e01b815230600482015290916001600160a01b031690602081602481855afa908115610c55579089959493929186916119bd575b5061183e939495966040519261181d846105c8565b8352602083015260408201528660608201526118388261061b565b5261061b565b505b15611944576118a3926118836040519261185b6020856105e3565b84845260405163286f580d60e01b81526080600482015295869485938493608485019061313c565b5f1960248501526001604485015283810360031901606485015290612f9d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575b5061061b565b519283916001600160a01b031615611908576107e09250339061468c565b50908080806107e094335af1610a176130b9565b61193091503d8086833e610ac981836105e3565b9150505f6118e4565b6040513d85823e3d90fd5b6119769250604051906119586020836105e3565b82825260405163286f580d60e01b8152938492839260048401613194565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575061061b565b93949550506020833d6020116119f2575b816119db602093836105e3565b810103126101b3579151889493929061183e611808565b3d91506119ce565b939250611a0561379b565b9260405191611a13836105c8565b6001600160a01b0316825260208201526040810185905260016060820152611a3a8361061b565b52611a448261061b565b50611840565b92945050919394506020813d602011611a9a575b81611a6b602093836105e3565b81010312611a96579261179d6117af938b80948f9897611a8a90612b13565b92949596509250611777565b8b80fd5b3d9150611a5e565b6040513d8e823e3d90fd5b859897939596949650600281145f14611b13575050505090611aef8392611b0194611ad66136f7565b9b6001600160a01b0385811691908b169060601c614aaf565b915050611afb8a61061b565b52614908565b915050611b0d8761063c565b526117bd565b929b9195949350909160038103611b6357505090611b01939291611b356136f7565b9a611b408484614816565b915050611b4c8d61061b565b526001600160a01b0390811692169060601c614aaf565b6004919b9594935014611b7a575b505050506117bd565b611bb8939950611b886136f7565b99611b938389614908565b915050611b9f8c61061b565b526001600160a01b03908116919088169060601c614aaf565b915050611bc48761063c565b525f808881611b71565b634e487b7160e01b8e52602160045260248efd5b94611718565b946116e0565b611c039030336001600160a01b038916614648565b5f6116a3565b9794918897919496999a9b935047986120db575b6060936001600160a01b038b166120d4577f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389161580156120cd577f0000000000000000000000000000000000000000000000000000000000000000935b60058110156120b857918f91838f959360018d96145f14611fcf5750505050505050611caf6136f7565b6040516338d52e0f60e01b815290926020826004816001600160a01b0387165afa918215611fc257908c8f928a94611f72575b50611d169492611d0a926001600160a01b0392831615928692811691908b169060601c614aaf565b9150506117a98561061b565b915050611d228261063c565b525b611d2c61379b565b6040516370a0823160e01b815230600482015290936001600160a01b031691602082602481865afa918215611f6757908d95949392918692611f30575b5060405192611d77846105c8565b835260208301526040820152856060820152611d928361061b565b52611d9c8261061b565b5015611eb357611dd49260405191611db56020846105e3565b838352604051809581948293634758db2f60e11b845260048401612fc1565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b519788976001600160a01b031615611e865750611e459133906001600160a01b031661468c565b15611e6957506107e092611e5891610688565b9033906001600160a01b031661468c565b80809350611e7b6107e0958294610688565b335af1610a176130b9565b611e9a925080808093335af1610a176130b9565b611e45565b61193091503d8088833e610ac981836105e3565b611ee5925060405190611ec76020836105e3565b828252604051634758db2f60e11b8152938492839260048401612fc1565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b955090506020853d602011611f5f575b81611f4d602093836105e3565b810103126101b3578c9451905f611d69565b3d9150611f40565b6040513d8f823e3d90fd5b92505091506020813d602011611fba575b81611f90602093836105e3565b81010312611fb65791611d0a8c898094611fac611d1697612b13565b9496509250611ce2565b8d80fd5b3d9150611f83565b8e604051903d90823e3d90fd5b95969495939492936002820361203057505050505061201261201e939483611ff56136f7565b966001600160a01b039081161592858216918b169060601c614aaf565b915050611afb8561061b565b91505061202a8261063c565b52611d24565b9397929650909493926003820361206857505061201e9495506120516136f7565b9561205c8484614816565b915050611b4c8861061b565b6004929350501461207d575b50505050611d24565b6120a293945061208b6136f7565b946120968389614908565b915050611b9f8761061b565b9150506120ae8261063c565b525f808681612074565b50634e487b7160e01b8f52602160045260248ffd5b8993611c85565b8a94611c51565b6040516370a0823160e01b81523360048201526001600160a01b038b1699506020816024818d5afa8015611f675786908e90612126575b61212192509a30903390614648565b611c1d565b50506020813d602011612154575b81612141602093836105e3565b810103126101b357856121219151612112565b3d9150612134565b612169919b505f906105e3565b5f995f611697565b6040516370a0823160e01b81523360048201529091506020816024816001600160a01b038b165afa9081156101a8575f916121ae575b50906115f7565b90506020813d6020116121d8575b816121c9602093836105e3565b810103126101b357515f6121a7565b3d91506121bc565b1561169957479150611699565b88936115eb565b946115ba565b9050155f6110d2565b508061087a565b5f9b9a9794929b999693919895995b895181101561226c576001600160a01b03612234828c61065c565b51168c810361224b57509050600180915b01612219565b6001600160a01b038c1614612263575b600190612245565b60019c5061225b565b50919396999a90929598949750610873565b506001600160a01b03861615610867565b6122a49194503d805f833e61019a81836105e3565b925f610848565b60405163ca4f280360e01b8152606082811c6004830181905295949391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290915f85602481875afa9485156101a8575f95612af7575b506001600160a01b038216945f908187158015612ae6575b15612a76575050506001805b8180612a6f575b156124725750505050505f604051956123516060886105e3565b6002875260403660208901376024604051809481936333f0703b60e11b835260048301525afa9283156101a8575f915f94612449575b506001600160a01b0316915f5b825181101561244257816001600160a01b036123b0838661065c565b511614612411575b836001600160a01b036123cb838661065c565b5116146123db575b600101612394565b6123e5818661065c565b519060038202918083046003149015171561069557600a600192046124098961063c565b5290506123d3565b61241b818661065c565b5160038102908082046003149015171561069557600a900461243c8861061b565b526123b8565b5050505050565b90935061246891503d805f833e61246081836105e3565b8101906137e8565b509390505f612387565b8196949695929395159081612a66575b50156124a5575050505061249b6107e094958483613251565b949192909361390d565b889550865f9893956124b99395989a612b73565b969094604051946124ca81876105e3565b60028652601f19013660208701376024604051809581936333f0703b60e11b835260048301525afa9586156101a8575f925f97612a41575b505f9460058110156104b0576001810361268e575093966001600160a01b031693505f5b825181101561261b576001600160a01b03612541828561065c565b51168681146125ea575b6040516338d52e0f60e01b81526020816004818a5afa9081156101a8575f916125b1575b506001600160a01b031614612587575b600101612526565b9650612593878761065c565b5160038102908082046003149015171561069557600a90049661257f565b90506020813d82116125e2575b816125cb602093836105e3565b810103126101b3576125dc90612b13565b5f61256f565b3d91506125be565b6125f4828961065c565b5160038102908082046003149015171561069557600a90046126158661061b565b5261254b565b509591945050602091925060246040518094819363ef8b30f760e01b835260048301525afa9081156101a8575f9161265c575b506126588261063c565b5290565b90506020813d602011612686575b81612677602093836105e3565b810103126101b357515f61264e565b3d915061266a565b9397949695949093600281036127875750505f5b825181101561273f576001600160a01b036126bd828561065c565b51168581036126fd57506126d1818761065c565b519060038202918083046003149015171561069557600a600192046126f58a61061b565b525b016126a2565b6001600160a01b03851614612715575b6001906126f7565b9550612721868661065c565b5160038102908082046003149015171561069557600a90049561270d565b5060405163266d6a8360e11b81526004810196909652959493506020925083916024915082906001600160a01b03165afa9081156101a8575f9161265c57506126588261063c565b93965090939092600381036128ab575092946001600160a01b03928316935091909116905f5b815181101561244257836001600160a01b036127c9838561065c565b5116848114612817575b146127e1575b6001016127ad565b6127eb818661065c565b519060038202918083046003149015171561069557600a6001920461280f8961063c565b5290506127d9565b9050612823828761065c565b51906003820291808304600314901517156106955760405163266d6a8360e11b8152600a9092046004830152602082602481885afa80156101a85786925f91612877575b506128718a61061b565b526127d3565b9250506020823d82116128a3575b81612892602093836105e3565b810103126101b3578591515f612867565b3d9150612885565b600491959394979650146128c1575b5050505090565b9294939290916001600160a01b0316905f5b8151811015612a31576001600160a01b036128ee828461065c565b5116838114612a00575b6040516338d52e0f60e01b81526020816004818c5afa9081156101a8575f916129c7575b506001600160a01b031614612934575b6001016128d3565b61293e818561065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818b5afa80156101a8575f90612995575b6001925061298d8761061b565b52905061292c565b506020823d82116129bf575b816129ae602093836105e3565b810103126101b35760019151612980565b3d91506129a1565b90506020813d82116129f8575b816129e1602093836105e3565b810103126101b3576129f290612b13565b5f61291c565b3d91506129d4565b612a0a828661065c565b5160038102908082046003149015171561069557600a9004612a2b8761063c565b526128f8565b505050509091505f8080806128ba565b909650612a599192503d805f833e61246081836105e3565b509291905091955f612502565b9050155f612482565b5080612337565b5f99959391969492999897985b8751811015612ad6576001600160a01b03612a9e828a61065c565b51168a8103612ab557509050600180915b01612a83565b6001600160a01b038a1614612acd575b600190612aaf565b60019a50612ac5565b5091939550919397969596612330565b506001600160a01b03891615612324565b612b0c9195503d805f833e61019a81836105e3565b935f61230c565b51906001600160a01b03821682036101b357565b15612b2e57565b60405162461bcd60e51b815260206004820152601760248201527f546f6b656e206e6f7420666f756e6420696e20706f6f6c0000000000000000006044820152606490fd5b60405163ca4f280360e01b81526001600160a01b0391821660048201525f949092918590849060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9283156101a8575f93612dac575b5015612cc15750612be082614320565b15612bed5750506001915b565b5f5b8151811015612cb9576001600160a01b03612c0a828461065c565b5116612c1581614320565b80612c47575b612c285750600101612bef565b93505050505b612c426001600160a01b0382161515612b27565b600291565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612c80575b506001600160a01b03858116911614612c1b565b90506020813d8211612cb1575b81612c9a602093836105e3565b810103126101b357612cab90612b13565b5f612c6c565b3d9150612c8d565b505050612c2e565b9150612ccc82614320565b15612cd8575050600491565b5f5b8151811015612da4576001600160a01b03612cf5828461065c565b5116612d0081614320565b80612d32575b612d135750600101612cda565b93505050505b612d2d6001600160a01b0382161515612b27565b600391565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612d6b575b506001600160a01b03858116911614612d06565b90506020813d8211612d9c575b81612d85602093836105e3565b810103126101b357612d9690612b13565b5f612d57565b3d9150612d78565b505050612d19565b612dc19193503d805f833e61019a81836105e3565b915f612bd0565b6001600160a01b0391821681529181166020830152604082015265ffffffffffff606082015260800190565b9080601f830112156101b3578151612e0b81610604565b92612e1960405194856105e3565b81845260208085019260051b8201019283116101b357602001905b828210612e415750505090565b8151815260209182019101612e34565b916060838303126101b35782516001600160401b0381116101b35782612e78918501612df4565b9260208101516001600160401b0381116101b357810183601f820112156101b357805190612ea582610604565b91612eb360405193846105e3565b80835260208084019160051b830101918683116101b357602001905b828210612ef7575050509260408201516001600160401b0381116101b3576107e09201612df4565b60208091612f0484612b13565b815201910190612ecf565b90608081019160018060a01b038151168252602081015192608060208401528351809152602060a084019401905f5b818110612f5e575050506060816040829301516040850152015191015290565b825180516001600160a01b0390811688526020828101519091168189015260409182015115159188019190915260609096019590920191600101612f3e565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9291608084019360808152825180955260a0810194602060a08260051b8401019401905f5b818110613010575050506107e09394505f1960208201525f60408201526060818403910152612f9d565b90919460208061302c600193609f19888203018c528951612f0f565b97019801910196919096612fe6565b9291926080810160808252825180915260a0820190602060a08260051b8501019401915f905b82821061308e57505050506107e092935f1960208301521515604082015260608183039101526060612f9d565b909192946020806130ab600193609f198982030186528951612f0f565b970192019201909291613061565b3d156130f2573d906001600160401b03821161059957604051916130e7601f8201601f1916602001846105e3565b82523d5f602084013e565b606090565b156130fe57565b60405162461bcd60e51b815260206004820152601660248201527508cc2d2d8cac840e8de40e8e4c2dce6cccae4408aa8960531b6044820152606490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061316757505050505090565b9091929394602080613185600193601f198682030187528951612f0f565b97019301930191939290613158565b90916131ab6107e09360808452608084019061313c565b915f1960208201525f60408201526060818403910152612f9d565b6131dc6107e0939260808352608083019061313c565b5f1960208301529115156040820152808203606091820152612f9d565b1561320057565b60405162461bcd60e51b8152602060048201526024808201527f435553544f4d5f5752415028343632362d34363236293a20496e76616c696420604482015263141bdbdb60e21b6064820152608490fd5b60405163ca4f280360e01b81526001600160a01b039384166004820152925f929183918290869060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f9561367d575b506132b981614320565b8061366e575b1561346c576040516338d52e0f60e01b81529190602090839060049082906001600160a01b03165afa9182156101a8575f9261342b575b506040516338d52e0f60e01b815292602090849060049082906001600160a01b03165afa9283156101a8575f936133ef575b505f5b85518110156133e5576001600160a01b03613346828861065c565b51166001600160a01b0383161515806133d3575b61339a576001600160a01b0384168114613392575b6001600160a01b0385168114613389575b5060010161332b565b94506001613380565b91508161336f565b5050935050505b6001600160a01b0382161515806133c1575b6133bc906131f9565b600292565b506001600160a01b03811615156133b3565b506001600160a01b038616151561335a565b50935050506133a1565b9092506020813d602011613423575b8161340b602093836105e3565b810103126101b35761341c90612b13565b915f613328565b3d91506133fe565b9291506020833d602011613464575b81613447602093836105e3565b810103126101b357602061345c600494612b13565b9293506132f6565b3d915061343a565b91949061347883614320565b158061365e575b15613619575f5b855181101561360e576001600160a01b036134a1828861065c565b51166134ac81614320565b6134ba575b50600101613486565b6001600160a01b0383161515806135fc575b6135c2576040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613589575b506001600160a01b03868116911614613581575b6040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613548575b506001600160a01b038981169116036134b157945060016134b1565b90506020813d8211613579575b81613562602093836105e3565b810103126101b35761357390612b13565b5f61352c565b3d9150613555565b915081613508565b90506020813d82116135ba575b816135a3602093836105e3565b810103126101b3576135b490612b13565b5f6134f4565b3d9150613596565b505093509350505b6001600160a01b0382161515806135ea575b6135e5906131f9565b600192565b506001600160a01b03811615156135dc565b506001600160a01b03861615156134cc565b5093509350506135ca565b60405162461bcd60e51b815260206004820152601b60248201527f435553544f4d5f575241503a20496e76616c696420746f6b656e7300000000006044820152606490fd5b5061366886614320565b1561347f565b5061367883614320565b6132bf565b6136929195503d805f833e61019a81836105e3565b935f6132af565b604051906136a6826105ad565b5f6040838281528260208201520152565b604051608091906136c883826105e3565b6003815291601f1901825f5b8281106136e057505050565b6020906136eb613699565b828285010152016136d4565b6040516060919061370883826105e3565b6002815291601f1901825f5b82811061372057505050565b60209061372b613699565b82828501015201613714565b6040805190919061374883826105e3565b6001815291601f1901825f5b82811061376057505050565b60209061376b613699565b82828501015201613754565b60405190613784826105c8565b5f6060838281528160208201528260408201520152565b604080519091906137ac83826105e3565b6001815291601f1901825f5b8281106137c457505050565b6020906137cf613777565b828285010152016137b8565b519081151582036101b357565b906080828203126101b35781516001600160401b0381116101b3578161380f91840161074d565b9260208301516001600160401b0381116101b357830182601f820112156101b357805161383b81610604565b9161384960405193846105e3565b818352602060608185019302820101908582116101b357602001915b8183106138ad575050509260408101516001600160401b0381116101b3578361388f918301612df4565b9260608201516001600160401b0381116101b3576107e09201612df4565b6060838703126101b357604051906138c4826105ad565b835160028110156101b35782526020840151906001600160a01b03821682036101b357826020928360609501526138fd604087016137db565b6040820152815201920191613865565b959460405161391d6060826105e3565b6002815260403660208301376040516333f0703b60e11b815260609890981c60048901529485905f896024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9586156101a8575f995f97613d78575b5060038110156104b057600114613bf55750506040516338d52e0f60e01b81526001600160a01b0392909216969190506020816004818a5afa9081156101a8575f91613bbb575b506040516338d52e0f60e01b81526001600160a01b039384169791909316926020816004818b5afa9081156101a8575f91613b81575b506001600160a01b0316925f5b8351811015613b7657816001600160a01b03613a2b838761065c565b511614613ae9575b846001600160a01b03613a46838761065c565b511614613a56575b600101613a0f565b613a60818761065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818d5afa80156101a8575f90613ab7575b60019250613aaf8961063c565b529050613a4e565b506020823d8211613ae1575b81613ad0602093836105e3565b810103126101b35760019151613aa2565b3d9150613ac3565b613af3818761065c565b516003810290808204600314901517156106955760405163ef8b30f760e01b8152600a9091046004820152602081602481875afa9081156101a8575f91613b45575b50613b3f8861061b565b52613a33565b90506020813d8211613b6e575b81613b5f602093836105e3565b810103126101b357515f613b35565b3d9150613b52565b509496505050505050565b90506020813d602011613bb3575b81613b9c602093836105e3565b810103126101b357613bad90612b13565b5f613a02565b3d9150613b8f565b90506020813d602011613bed575b81613bd6602093836105e3565b810103126101b357613be790612b13565b5f6139cc565b3d9150613bc9565b935094509590505f5b8151811015613d6f576001600160a01b03613c19828461065c565b516001600160a01b038516929116828103613cc25750613c39818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613c90575b60019250613c888761061b565b525b01613bfe565b506020823d8211613cba575b81613ca9602093836105e3565b810103126101b35760019151613c7b565b3d9150613c9c565b6001600160a01b03891692508214613cde575b60019150613c8a565b613ce8818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613d3d575b60019250613d378761063c565b52613cd5565b506020823d8211613d67575b81613d56602093836105e3565b810103126101b35760019151613d2a565b3d9150613d49565b50929450505050565b909650613d909199503d805f833e61246081836105e3565b509991905098955f613985565b909392935f9160601c6040519363ca4f280360e01b85528160048601525f8560248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f95614304575b506001600160a01b038316801580159690959194905f9081888a6142f3575b15614283575050506001805b818061427c575b15613f1857509798613eb698505f97613e9d97613e5b97909692956001600160a01b031694509250613f0f57614aaf565b5050613e6561379b565b90613e6f8261061b565b52613e798161061b565b506040516338ed77fd60e21b8152606060048201529384928392606484019061313c565b3060248401528281036003190160448401526060612f9d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101a857610eb4915f91613efb575061061b565b61193091503d805f833e610ac981836105e3565b82159450614aaf565b9195508092999496939750159081614273575b5015613f83575050613eb69495509181613f5693613f4c83875f9896613251565b9591939094614c68565b60405190613f656020836105e3565b8282526040516338ed77fd60e21b8152938492839260048401614d9f565b613f9290868587989497612b73565b909160058310156104b05782613fab5750505050505050565b909192939495969750606094865f1461426d57507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0382161591821561426757507f0000000000000000000000000000000000000000000000000000000000000000935b60018103614152575050505061402c6136f7565b6040516338d52e0f60e01b8152959094906020876004816001600160a01b0387165afa9687156101a8575f976140f9575b50613eb6965f96959493614096938593919261408a9285916001600160a01b0390811691908a1690614aaf565b9150506117a98761061b565b9150506140a28461063c565b525b6140ac61379b565b92604051926140ba846105c8565b6001600160a01b0316835260208301526040820152600160608201526140df8261061b565b526140e98161061b565b5060405190613f656020836105e3565b909594939296506020813d60201161414a575b81614119602093836105e3565b810103126101b357613eb69661408a61409693855f996141398296612b13565b9b509450509350509293949561405d565b3d915061410c565b91613eb698969594915f9893600281148a146141b257505050506141a09161419484928361417e6136f7565b986001600160a01b0385811691908a1690614aaf565b915050611afb8761061b565b9150506141ac8461063c565b526140a4565b92979194935090916003811489146142005750506141a0929184916141d56136f7565b976141e08484614816565b9150506141ec8a61061b565b526001600160a01b03908116921690614aaf565b6004919794935014614215575b5050506140a4565b61425292955083906142256136f7565b966142308388614908565b91505061423c8961061b565b526001600160a01b039081169190871690614aaf565b91505061425e8461063c565b525f808061420d565b93614018565b94613fe2565b9050155f613f2b565b5080613e2a565b5f9a9693919799959894929a5b88518110156142e3576001600160a01b036142ab828b61065c565b51168b81036142c257509050600180915b01614290565b6001600160a01b038b16146142da575b6001906142bc565b60019b506142d2565b5091939794989650919498613e23565b506001600160a01b03861615613e17565b6143199195503d805f833e61019a81836105e3565b935f613df8565b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168114614414576040516338d52e0f60e01b8152602081600481855afa90816143dd575b5061437b57505f90565b602060249160405192838092636c82bbbf60e11b82523360048301525afa90816143ae575b506143a9575f90565b600190565b6020813d6020116143d5575b816143c7602093836105e3565b810103126101b357516143a0565b3d91506143ba565b6020813d60201161440c575b816143f6602093836105e3565b810103126101b35761440790612b13565b614371565b3d91506143e9565b505f90565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529391929190821690602084604481855afa9384156101a8575f94614558575b505f1984018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481015b03601f1981018852876105e3565b85519082855af1906144be6130b9565b8261451e575b5081614513575b50156144d657505050565b61450e612beb936040519063095ea7b360e01b602083015260248201525f6044820152604481526145086064826105e3565b82614dca565b614dca565b90503b15155f6144cb565b80519192508115918215614536575b5050905f6144c4565b81925090602091810103126101b357602061455191016137db565b5f8061452d565b9093506020813d602011614584575b81614574602093836105e3565b810103126101b35751925f61445d565b3d9150614567565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156101a8575f95614614575b5084018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481016144a0565b9094506020813d602011614640575b81614630602093836105e3565b810103126101b35751935f6145cf565b3d9150614623565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152612beb9161450e6084836105e3565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612beb9161450e6064836105e3565b91906146d2613777565b926146db613777565b506146e4613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916147dc575b5060405192906001600160a01b031661472e846105ad565b82845260208401526001604084015282614746613737565b906147508261061b565b5261475a8161061b565b506040516370a0823160e01b815230600482015290602082602481875afa9182156101a8575f926147a8575b5060405193614794856105c8565b845260208401526040830152606082015291565b9091506020813d6020116147d4575b816147c4602093836105e3565b810103126101b35751905f614786565b3d91506147b7565b90506020813d60201161480e575b816147f7602093836105e3565b810103126101b35761480890612b13565b5f614716565b3d91506147ea565b9061481f613777565b50614828613777565b91614831613699565b506040516001600160a01b03919091169161484b826105ad565b828252826020830152600160408301528192614865613737565b9261486f8461061b565b526148798361061b565b506020600491604051928380926338d52e0f60e01b82525afa9081156101a8575f916148ce575b5060405192906001600160a01b03166148b8846105c8565b8352602083015260408201526001606082015292565b90506020813d602011614900575b816148e9602093836105e3565b810103126101b3576148fa90612b13565b5f6148a0565b3d91506148dc565b90614911613777565b5061491a613777565b91614923613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916149a7575b5060405192906001600160a01b031661496d846105ad565b82845260208401526001604084015282614985613737565b9061498f8261061b565b526149998161061b565b50604051926148b8846105c8565b90506020813d6020116149d9575b816149c2602093836105e3565b810103126101b3576149d390612b13565b5f614955565b3d91506149b5565b919093926149ed613777565b946149f6613777565b506149ff613699565b506040516370a0823160e01b81523360048201526001600160a01b039190911692602082602481875afa9182156101a8575f92614a7b575b5060405194614a45866105ad565b6001600160a01b0390811686521660208501525f604085015283614a67613737565b90614a718261061b565b526147868161061b565b9091506020813d602011614aa7575b81614a97602093836105e3565b810103126101b35751905f614a37565b3d9150614a8a565b929091614aba613777565b50614ac3613777565b94614acc613699565b5015614b43575b60405193614ae0856105ad565b6001600160a01b0390811685521660208401525f604084015282614b02613737565b90614b0c8261061b565b52614b168161061b565b5060405192614b24846105c8565b6001600160a01b03168352602083015260408201526001606082015292565b6040516370a0823160e01b81523360048201526020816024816001600160a01b0388165afa9081156101a8575f91614b7d575b5050614ad3565b90506020813d602011614ba7575b81614b98602093836105e3565b810103126101b357515f614b76565b3d9150614b8b565b919092614bba613777565b50614bc3613777565b93614bcc613699565b506040516370a0823160e01b81523360048201526001600160a01b03919091169290602081602481875afa9081156101a8575f91614c36575b505060405193614c14856105ad565b6001600160a01b0390811685521660208401525f604084015282614985613737565b90506020813d602011614c60575b81614c51602093836105e3565b810103126101b357515f614c05565b3d9150614c44565b9695909492939196614c786136b7565b9760038410156104b0578593600103614d4457508284614cc992614c9f83614ce598614816565b915050614cab8c61061b565b52614cb58b61061b565b506001600160a01b03858116921690614baf565b915050614cd58861063c565b52614cdf8761063c565b50614908565b915050614cf18561064c565b52614cfb8461064c565b50614d0461379b565b9360405192614d12846105c8565b6001600160a01b031683526020830152604082015260016060820152614d378361061b565b52614d418261061b565b50565b91614ce594614d83928592614d59848b614908565b915050614d658d61061b565b52614d6f8c61061b565b506001600160a01b03908116921690614baf565b915050614d8f8861063c565b52614d998761063c565b50614816565b9091614db66107e09360608452606084019061313c565b915f60208201526040818403910152612f9d565b5f80614df29260018060a01b03169360208151910182865af1614deb6130b9565b9083614e3d565b8051908115159182614e1a575b5050614e085750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101b3576020614e3591016137db565b155f80614dff565b90614e615750805115614e5257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580614e92575b614e72575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614e6a56fea2646970667358221220e323e5fa26c6abf091be22f35678640537c279bbf3c0177d321594dfa3820d9b64736f6c634300081b0033","sourceMap":"746:3925:42:-:0;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;;;;;;;;;3948:50;;746:3925;3948:50;;;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;;;-1:-1:-1;;;3603:32:42;;746:3925;;;;;3603:32;;;746:3925;-1:-1:-1;746:3925:42;3603:32;746:3925;3603:5;-1:-1:-1;;;;;746:3925:42;3603:32;;;;;;;746:3925;3603:32;;;746:3925;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;746:3925:42;;;;;3734:3;746:3925;;3714:18;;;;;746:3925;;-1:-1:-1;;;;;3773:10:42;746:3925;3773:10;;:::i;:::-;746:3925;;3753:31;;;;:::i;:::-;746:3925;;3699:13;;3714:18;;;;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;3603:32;;;;;;746:3925;3603:32;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;746:3925;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;1466:13;;746:3925;1511:3;746:3925;;1481:28;;;;;1602:20;;746:3925;1602:20;;;:::i;:::-;746:3925;;;:::i;:::-;;4557:66;;;;;;:::i;:::-;746:3925;;;;;;;:::i;:::-;;;;4535:127;;746:3925;1530:93;;;;:::i;:::-;;;;;;:::i;:::-;;746:3925;1466:13;;1481:28;;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2781:48;746:3925;;;:::i;:::-;2781:48;;:::i;:::-;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3071:1;746:3925;;;;;;;;;3101:20;3083:38;;;:::i;:::-;746:3925;3149:19;3131:37;;;:::i;:::-;746:3925;3196:21;3178:39;;;:::i;:::-;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:20;746:3925;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;-1:-1:-1;;;3948:50:42;;746:3925;;3948:50;;746:3925;;;;;;;;;;;;3948:50;;;746:3925;;;;-1:-1:-1;;;;;746:3925:42;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;746:3925:42;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;:::o;:::-;;;;-1:-1:-1;746:3925:42;;;;;-1:-1:-1;746:3925:42;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;:::o;:::-;-1:-1:-1;;;;;746:3925:42;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;3101:20;746:3925;;;;;;;:::o;:::-;;;3149:19;746:3925;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1679:879;;;;;;;746:3925;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;1860:18;1894:20;;;1890:223;;2143:9;;2341:21;2143:9;;2248:66;2143:9;;;;2248:66;;:::i;:::-;746:3925;;2353:9;2341:21;;:::i;:::-;746:3925;2325:13;;746:3925;;;;;;;;;;:::i;:::-;;;;2502:49;;746:3925;;2488:11;;:63;1679:879::o;1890:223::-;746:3925;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;2074:1;746:3925;2062:14;;746:3925;2048:28;2090:12;:::o;746:3925::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;746:3925:42;;;:::o;2936:3143:48:-;746:3925:42;;-1:-1:-1;;;3327:32:48;;746:3925:42;;;;3327:32:48;;;746:3925:42;2936:3143:48;;746:3925:42;;2936:3143:48;746:3925:42;;3327:32:48;746:3925:42;3327:5:48;-1:-1:-1;;;;;746:3925:42;3327:32:48;;;;;;;746:3925:42;3327:32:48;;;2936:3143;-1:-1:-1;;;;;;746:3925:42;;;3431:23:48;;;:49;;;3399:18;;746:3925:42;;;;3431:23:48;:49;;;2936:3143;3427:469;;;3496:21;;;3513:4;3531:20;3427:469;3910:31;;;;3427:469;3906:2167;;;746:3925:42;;;4122:13:48;746:3925:42;;;;:::i;:::-;4114:21:48;4122:13;;-1:-1:-1;;;;;746:3925:42;5189:31:44;;;5269:67;;;;5281:21;;5269:67;;5576:21;;;;5269:67;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;8593:21:44;8628:6;;8624:91;;5269:67;746:3925:42;;;;;;:::i;:::-;;;;;8757:122:44;746:3925:42;8757:122:44;;746:3925:42;8757:122:44;746:3925:42;8757:122:44;;746:3925:42;8944:34:44;;:::i;:::-;8988:15;;;;:::i;:::-;;;;;:::i;:::-;;746:3925:42;;;;;;:::i;:::-;;;;;9049:209:44;;746:3925:42;;9049:209:44;;746:3925:42;9049:209:44;746:3925:42;9049:209:44;;746:3925:42;5682:44:44;;:::i;:::-;5736:18;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;5825:799:44;;;;;-1:-1:-1;5916:12:44;-1:-1:-1;;;;;746:3925:42;5890:8:44;;;:::i;:::-;;746:3925:42;5825:799:44;6658:346;;;;6704:133;6792:21;;;;;6658:346;746:3925:42;;-1:-1:-1;;;6704:133:44;;746:3925:42;;;;;3327:32:48;6704:133:44;;;:::i;:::-;;746:3925:42;;6704:6:44;-1:-1:-1;;;;;746:3925:42;6704:133:44;;;;;;;746:3925:42;7425:12:44;746:3925:42;;;;;;6704:133:44;;;6658:346;6687:150;6658:346;;7081:280;;;7156:10;;;;;7218:39;7156:10;;7148:52;;;;:::i;:::-;;7218:39;:::i;:::-;7425:12;:::i;:::-;746:3925:42;;;;7496:347:44;;;7590:35;;;;;;;;:::i;:::-;7549:10;7541:102;;;;:::i;:::-;;746:3925:42;;;4155:215:48;:::o;746:3925:42:-;;;-1:-1:-1;;;746:3925:42;;;3327:32:48;746:3925:42;;;;3327:32:48;746:3925:42;;;;;;;;;;;7496:347:44;7783:35;;;;;;;:::i;:::-;7771:10;;7783:35;;:::i;7081:280::-;7330:15;7318:10;;;7330:15;;:::i;6704:133::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;746:3925:42;;;;;;;;;6792:21:44;;;-1:-1:-1;6792:21:44;;6658:346;6885:108;6948:21;;;;;746:3925:42;;-1:-1:-1;;;6885:108:44;;746:3925:42;;;;;3327:32:48;6885:108:44;;;:::i;:::-;;746:3925:42;;6885:6:44;-1:-1:-1;;;;;746:3925:42;6885:108:44;;;;;;;746:3925:42;7425:12:44;746:3925:42;;;;;;6885:108:44;;;6658:346;6868:125;6658:346;;;6885:108;;;;;;;;;;;;;:::i;:::-;;;;;;;5825:799;5960:145;;;;;5825:799;6238:16;6231:4;;6211:10;6238:16;;:::i;:::-;6322:6;-1:-1:-1;;;;;746:3925:42;6331:17:44;746:3925:42;6331:17:44;;:::i;:::-;6395:7;6404:17;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;6436:177:44;;;;;;746:3925:42;;;;;;;;;;;;;;;;6436:177:44;;3327:32:48;6436:177:44;;;:::i;:::-;;;;;;;;;;;;;;5825:799;;;;;6436:177;;;;;:::i;:::-;746:3925:42;;6436:177:44;;;;746:3925:42;;;;6436:177:44;746:3925:42;;;;;;;;;6436:177:44;746:3925:42;;;5960:145:44;6077:12;-1:-1:-1;;;;;746:3925:42;;6041:17:44;746:3925:42;6041:8:44;;;:::i;:::-;;:14;;:17;:::i;:::-;;:26;746:3925:42;5960:145:44;;8624:91;-1:-1:-1;746:3925:42;;-1:-1:-1;;;8665:39:44;;8693:10;3327:32:48;8665:39:44;;746:3925:42;;;-1:-1:-1;746:3925:42;;3327:32:48;746:3925:42;8665:39:44;;;;;;;;;;;;;;;;8624:91;8650:54;8624:91;;8665:39;;;;746:3925:42;8665:39:44;;746:3925:42;8665:39:44;;;;;;746:3925:42;8665:39:44;;;:::i;:::-;;;746:3925:42;;;;;;;8665:39:44;;;;;;-1:-1:-1;8665:39:44;;5576:21;;;;;5269:67;746:3925:42;;-1:-1:-1;;;5305:31:44;;5325:10;3327:32:48;5305:31:44;;746:3925:42;;;3327:32:48;746:3925:42;5305:31:44;;;;;;;;;;;;;;;5269:67;;;;;5305:31;;;;746:3925:42;5305:31:44;;746:3925:42;5305:31:44;;;;;;746:3925:42;5305:31:44;;;:::i;:::-;;;746:3925:42;;;;;;;5305:31:44;;;;;;-1:-1:-1;5305:31:44;;;746:3925:42;;;;;;;;;4110:529:48;746:3925:42;;;-1:-1:-1;;;;;746:3925:42;2361:31:44;;;746:3925:42;;;;2484:171:44;;746:3925:42;;2361:31:44;;746:3925:42;;;;;2624:21:44;;4110:529:48;746:3925:42;;2484:171:44;:::i;:::-;2729:43;;;;;:::i;:::-;2782:19;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;2873:679:44;;;;;-1:-1:-1;;2928:12:44;-1:-1:-1;;;;;746:3925:42;2902:8:44;;;:::i;:::-;;746:3925:42;2873:679:44;3591:345;;;;3724:21;3638:131;3724:21;;;;;3591:345;746:3925:42;;;;;;;;;;;3638:131:44;;3327:32:48;3638:131:44;;;:::i;:::-;;;:6;-1:-1:-1;;;;;746:3925:42;3638:131:44;;;;;;4353:13;746:3925:42;;;3638:131:44;;;3591:345;3620:149;3591:345;;4013:276;;;4112:13;;;;4148:39;4112:13;;;;:::i;:::-;746:3925:42;4088:10:44;4080:50;;;;:::i;4353:13::-;746:3925:42;4409:215:48;:::o;4013:276:44:-;4260:13;;;;;;:::i;:::-;746:3925:42;4248:10:44;;4260:13;;:::i;3638:131::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;746:3925:42;;;;;;;;;3724:21:44;;;-1:-1:-1;3724:21:44;;3591:345;3880:21;;;;3818:107;3880:21;;;;;3591:345;746:3925:42;;-1:-1:-1;;;3818:107:44;;746:3925:42;;;;;3327:32:48;3818:107:44;;;:::i;:::-;;746:3925:42;;3818:6:44;-1:-1:-1;;;;;746:3925:42;3818:107:44;;;;;;4353:13;746:3925:42;;;3818:107:44;;;3591:345;3800:125;3591:345;;;3818:107;;;;;;;;;;;;;:::i;:::-;;;;;;;3880:21;;;-1:-1:-1;3880:21:44;;2873:679;2972:145;;2873:679;3249:15;3242:4;;3222:10;3249:15;;:::i;:::-;3325:7;3334:15;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;3364:177:44;;;;;746:3925:42;;-1:-1:-1;;;3364:177:44;;746:3925:42;;;;;;;;;;;;3364:177:44;;3451:6;-1:-1:-1;;;;;746:3925:42;;3327:32:48;3364:177:44;;;:::i;:::-;;;;;;;;;;;;;;2873:679;;;;;3364:177;;;;;:::i;:::-;746:3925:42;;3364:177:44;;;;746:3925:42;;;;3364:177:44;746:3925:42;;;;;;;;;3364:177:44;746:3925:42;;;2972:145:44;3089:12;-1:-1:-1;;;;;746:3925:42;;3053:17:44;746:3925:42;3053:8:44;;;:::i;:17::-;;:26;746:3925:42;2972:145:44;;2624:21;;;-1:-1:-1;2624:21:44;;3906:2167:48;4659:15;;;;;;;;;;;;:33;;;;3906:2167;-1:-1:-1;4655:1418:48;;;746:3925:42;;;4882:47:48;746:3925:42;;;4882:47:48;;;:::i;:::-;746:3925:42;;;;;;;;:::i;:::-;4948:22:48;;8402:15:43;8395:4;;8375:10;8402:15;;:::i;:::-;8469:7;8478:15;;;;;:::i;:::-;-1:-1:-1;;;;;8583:6:43;746:3925:42;;;;;;8504:157:43;;;;;746:3925:42;8504:157:43;746:3925:42;;;;;;;;;;;;;;;8504:157:43;;3327:32:48;8504:157:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4944:645:48;746:3925:42;;8732:200:43;746:3925:42;;;8990:62:43;746:3925:42;;;;;;8732:200:43;:::i;:::-;746:3925:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8990:62:43;;3327:32:48;8990:62:43;;;:::i;:::-;;;;;;;;;;746:3925:42;9082:13:43;746:3925:42;;9149:16:43;746:3925:42;8990:62:43;;;4944:645:48;9082:13:43;;;:::i;:::-;746:3925:42;;;;8375:10:43;;-1:-1:-1;;;;;746:3925:42;9149:16:43;:::i;8990:62::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;746:3925:42;;;;;;;;;;8504:157:43;;;;;;;;;;;;;;:::i;:::-;746:3925:42;;8504:157:43;;;;;;;;;;;4944:645:48;5309:265;;;;;;;;;9624:24:43;9715:34;;:::i;:::-;746:3925:42;;;;;;;9871:39:43;;9899:10;3327:32:48;9871:39:43;;746:3925:42;;9871:39:43;3327:32:48;9871:39:43;;;;;;;;;;;;;4944:645:48;10021:4:43;10028:20;10021:4;;9899:10;10028:20;;:::i;:::-;10100:7;10109:17;;;;:::i;:::-;-1:-1:-1;;;;;10216:6:43;746:3925:42;;;;;10137:157:43;;;;;746:3925:42;;10137:157:43;746:3925:42;;;;;;;;;;;;;;10137:157:43;;3327:32:48;10137:157:43;;;:::i;:::-;;;;;;;;;;;;;;4944:645:48;746:3925:42;;9747:1:43;746:3925:42;;;;;10309:39:43;;;;;;746:3925:42;10309:39:43;;;10305:3331;746:3925:42;;;10473:172:43;;10799:214;10473:172;;11811:63;10473:172;;;11165;10473;;;:::i;:::-;10659:16;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;;;;;;746:3925:42;;;;;;;;10799:214:43;:::i;:::-;11027:16;;;;;;:::i;:::-;;;;;:::i;:::-;;11165:172;:::i;:::-;11351:16;;;;;;:::i;:::-;;;;;:::i;:::-;;11451:44;;:::i;:::-;746:3925:42;;;;;;;:::i;:::-;;;;;11520:226:43;;746:3925:42;11520:226:43;746:3925:42;11520:226:43;;746:3925:42;11520:226:43;746:3925:42;11520:226:43;;746:3925:42;11509:237:43;;;:::i;:::-;;;;;:::i;:::-;;746:3925:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11811:63:43;;3327:32:48;11811:63:43;;;:::i;:::-;;;;;;;;;;11908:12;13766:39;746:3925:42;;;13766:39:43;746:3925:42;;;11978:15:43;746:3925:42;11811:63:43;;;11908:12;;;:::i;:::-;746:3925:42;;;;9899:10:43;;-1:-1:-1;;;;;746:3925:42;11978:15:43;:::i;:::-;13766:39;:::i;:::-;9899:10;;10021:4;;13766:39;;:::i;10305:3331::-;12168:168;;;;12488:210;12168:168;13442:63;12168:168;;:::i;:::-;12350:16;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;;;;;;746:3925:42;;;;;;;;12488:210:43;:::i;:::-;12712:16;;;;;;:::i;:::-;;;;;:::i;:::-;;12850:118;;;;:::i;746:3925:42:-;-1:-1:-1;;;746:3925:42;;;3327:32:48;746:3925:42;3327:32:48;746:3925:42;;10137:157:43;;;;;:::i;:::-;746:3925:42;;10137:157:43;;;;;746:3925:42;;;9871:39:43;;;;746:3925:42;9871:39:43;;746:3925:42;9871:39:43;;;;;;746:3925:42;9871:39:43;;;:::i;:::-;;;746:3925:42;;;;;9871:39:43;;;;;;;-1:-1:-1;9871:39:43;;4655:1418:48;746:3925:42;;;5702:98:48;746:3925:42;6035:13:48;746:3925:42;;;;;;;;;;;;5702:98:48;:::i;:::-;746:3925:42;;;;;;:::i;:::-;6027:21:48;5822:240;6608:40:45;6679:52;;;;;;6706:12;;6679:52;;-1:-1:-1;;;;;746:3925:42;;;;6786:12:45;6760:50;;6821:535;;;;;6865:100;;6821:535;7018:7;7027:14;746:3925:42;7018:7:45;-1:-1:-1;;;;;746:3925:42;;7027:14:45;:::i;:::-;-1:-1:-1;;;;;746:3925:42;7056:177:45;;;;;746:3925:42;;-1:-1:-1;;;7056:177:45;;746:3925:42;;;;;;;;7056:177:45;7143:6;-1:-1:-1;;;;;746:3925:42;;3327:32:48;7056:177:45;;;:::i;:::-;;;;;;;;;;;6821:535;;;7370:6;;;7392:178;;7366:3222;-1:-1:-1;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;2490:24:45;;746:3925:42;2490:52:45;;;;2517:12;;2490:52;;-1:-1:-1;;;;;746:3925:42;;;2571:23:45;;;:50;;;;2597:12;;2571:50;;746:3925:42;;;;;;2636:35:45;;;;;6035:13:48;2636:35:45;;;2632:2971;6035:13:48;;;2818:34:45;;;;;;;;:::i;:::-;746:3925:42;;-1:-1:-1;;;3031:26:45;;746:3925:42;;;;;3327:32:48;746:3925:42;-1:-1:-1;;;;;746:3925:42;;3031:26:45;;;;;;;;;;;;;;;;;;;2632:2971;-1:-1:-1;3260:117:45;;746:3925:42;;2934:236:45;;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;2934:236:45;:::i;:::-;2918:252;;;;;;:::i;:::-;;3260:117;:::i;:::-;3244:133;;;;;;:::i;:::-;;2632:2971;5613:682;;;5648:44;;;:::i;:::-;746:3925:42;;-1:-1:-1;;;5860:42:45;;5896:4;3327:32:48;5860:42:45;;746:3925:42;;;-1:-1:-1;;;;;746:3925:42;;;;3327:32:48;746:3925:42;;5860:42:45;;;;;;;;;;;;;;;;;;5613:682;746:3925:42;5706:260:45;746:3925:42;;;;;;;;;;:::i;:::-;;;;5719:247:45;;746:3925:42;;5719:247:45;;746:3925:42;5719:247:45;746:3925:42;5719:247:45;;746:3925:42;5706:260:45;;;:::i;:::-;;;:::i;:::-;;5613:682;7931:367;;;746:3925:42;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;7997:126:45;;746:3925:42;3327:32:48;7997:126:45;;746:3925:42;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3327:32:48;746:3925:42;;;6035:13:48;746:3925:42;;;;;;;-1:-1:-1;;746:3925:42;;;;;8071:17:45;746:3925:42;:::i;:::-;7997:126:45;;:6;-1:-1:-1;;;;;746:3925:42;7997:126:45;;;;;;;746:3925:42;8331:13:45;746:3925:42;;7997:126:45;;;7931:367;7979:144;8331:13;:::i;:::-;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;6760:23:45;746:3925:42;;8448:16:45;8436:10;;;8448:16;;:::i;8359:305::-;8547:10;;;;;8610:39;8547:10;;8539:53;;;;:::i;7997:126::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;746:3925:42;;;;;;;;;7931:367:45;8180:103;746:3925:42;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;8180:103:45;;746:3925:42;;;;;3327:32:48;8180:103:45;;;:::i;:::-;;746:3925:42;;8180:6:45;-1:-1:-1;;;;;746:3925:42;8180:103:45;;;;;;;746:3925:42;8331:13:45;746:3925:42;;8180:103:45;;;8162:121;8331:13;:::i;5860:42::-;;;;;;746:3925:42;5860:42:45;;746:3925:42;5860:42:45;;;;;;746:3925:42;5860:42:45;;;:::i;:::-;;;746:3925:42;;;;;;;;5860:42:45;;-1:-1:-1;5706:260:45;5860:42;;;;;-1:-1:-1;5860:42:45;;5613:682;6008:43;;;;;:::i;:::-;746:3925:42;;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;;6079:205:45;;746:3925:42;;6079:205:45;;746:3925:42;;;;;6079:205:45;;746:3925:42;6065:219:45;;;:::i;:::-;;;;;:::i;:::-;;5613:682;;3031:26;;;;;;;;;746:3925:42;3031:26:45;;746:3925:42;3031:26:45;;;;;;746:3925:42;3031:26:45;;;:::i;:::-;;;746:3925:42;;;;;2934:236:45;3260:117;746:3925:42;;;;;;;;;;:::i;:::-;3031:26:45;;;;;;;;;746:3925:42;;;;3031:26:45;;;-1:-1:-1;3031:26:45;;;746:3925:42;;;;;;;;;2632:2971:45;746:3925:42;;;;;;;;3398:37:45;746:3925:42;3398:37:45;;3394:2209;746:3925:42;;;3584:34:45;;;;;3701:223;3584:34;;4016:172;3584:34;;;:::i;:::-;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;3701:223:45;:::i;:::-;3685:239;;;;;;:::i;:::-;;4016:172;:::i;:::-;4000:188;;;;;;:::i;:::-;;2632:2971;;3394:2209;746:3925:42;;;;;;-1:-1:-1;746:3925:42;;4217:27:45;4209:35;;4217:27;;4317:34;;;4694:221;4317:34;;;;;:::i;:::-;4443:170;;;;;:::i;:::-;4427:186;;;;;;:::i;:::-;;-1:-1:-1;;;;;746:3925:42;;;;;;;;4694:221:45;:::i;4205:1398::-;3327:32:48;746:3925:42;;;;;;4936:37:45;4932:671;;4205:1398;;;;;2632:2971;;4932:671;5375:217;4997:34;;;;;:::i;:::-;5125:168;;;;;:::i;:::-;5109:184;;;;;;:::i;:::-;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;5375:217:45;:::i;:::-;5359:233;;;;;;:::i;:::-;;4932:671;;;;;;746:3925:42;-1:-1:-1;;;746:3925:42;;;3327:32:48;746:3925:42;3327:32:48;746:3925:42;;2571:50:45;;;;2490:52;;;;7392:178;7523:14;;7516:4;7496:10;-1:-1:-1;;;;;746:3925:42;;7523:14:45;:::i;:::-;7392:178;;;7366:3222;8725:21;;;;;;;;;;;;;;8760:258;;;7366:3222;746:3925:42;;-1:-1:-1;;;;;746:3925:42;;;;2517:12:45;2490:52;;-1:-1:-1;;;;;746:3925:42;;2571:23:45;:50;;;;2597:12;2571:50;;746:3925:42;;;;;;2636:35:45;;;;;;;6035:13:48;2636:35:45;;;2632:2971;6035:13:48;;;2818:34:45;;;;;;;;;:::i;:::-;746:3925:42;;-1:-1:-1;;;3031:26:45;;746:3925:42;;;;3327:32:48;746:3925:42;-1:-1:-1;;;;;746:3925:42;;3031:26:45;;;;;;;;;;;;;;;2632:2971;-1:-1:-1;3260:117:45;;746:3925:42;2934:236:45;;-1:-1:-1;;;;;746:3925:42;;;2490:24:45;;746:3925:42;;;;;;;;;;;2934:236:45;:::i;:::-;2918:252;;;;;;:::i;3260:117::-;3244:133;;;;;;:::i;:::-;;2632:2971;5648:44;;:::i;:::-;746:3925:42;;-1:-1:-1;;;5860:42:45;;8733:4;3327:32:48;5860:42:45;;746:3925:42;;;-1:-1:-1;;;;;746:3925:42;;;;3327:32:48;746:3925:42;;5860:42:45;;;;;;;;;;;;;;;;;;2632:2971;746:3925:42;;;;;;;:::i;:::-;;;;5719:247:45;;746:3925:42;;5719:247:45;;746:3925:42;5719:247:45;746:3925:42;5719:247:45;;746:3925:42;5706:260:45;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;9378:365:45;;;9443:126;746:3925:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;9443:126:45;;3327:32:48;9443:126:45;;;:::i;:::-;;;:6;-1:-1:-1;;;;;746:3925:42;9443:126:45;;;;;;;746:3925:42;;;;;9776:12:45;746:3925:42;;9443:126:45;;;9426:143;9776:12;:::i;:::-;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;6760:23:45;746:3925:42;;-1:-1:-1;9892:15:45;;9880:10;;-1:-1:-1;;;;;746:3925:42;9892:15:45;:::i;:::-;10169:409;;;10281:39;;;;;;:::i;:::-;10269:10;;;-1:-1:-1;;;;;746:3925:42;10281:39:45;:::i;10169:409::-;10445:39;;;;;10524;10445;;;;:::i;:::-;10400:10;10392:114;;;;:::i;9803:303::-;10052:39;9990:10;;;;;;;9982:52;;;;:::i;10052:39::-;9803:303;;9443:126;;;;;;;;;;;;;:::i;9378:365::-;9625:103;746:3925:42;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;9625:103:45;;746:3925:42;;;;;3327:32:48;9625:103:45;;;:::i;:::-;;746:3925:42;;9625:6:45;-1:-1:-1;;;;;746:3925:42;9625:103:45;;;;;;;746:3925:42;;;;;9776:12:45;746:3925:42;;9625:103:45;;;9608:120;9776:12;:::i;5860:42::-;;;;;746:3925:42;5860:42:45;;746:3925:42;5860:42:45;;;;;;746:3925:42;5860:42:45;;;:::i;:::-;;;746:3925:42;;;;;;;5860:42:45;;;;;;;-1:-1:-1;5860:42:45;;;746:3925:42;;;;;;;;;3031:26:45;;;;;;746:3925:42;3031:26:45;;746:3925:42;3031:26:45;;;;;;746:3925:42;3031:26:45;;;:::i;:::-;;;746:3925:42;;;;;2934:236:45;746:3925:42;;;;;3260:117:45;746:3925:42;;:::i;:::-;3031:26:45;;;;;;;746:3925:42;;;;3031:26:45;;;-1:-1:-1;3031:26:45;;;746:3925:42;;;;;;;;;;;2632:2971:45;746:3925:42;;;;;;;;;3398:37:45;;746:3925:42;;3584:34:45;;;;;3701:223;4016:172;3584:34;;;;;:::i;:::-;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;2490:24:45;;746:3925:42;;;;;;;;;3701:223:45;:::i;:::-;3685:239;;;;;;:::i;4016:172::-;4000:188;;;;;;:::i;:::-;;2632:2971;;3394:2209;746:3925:42;;;;-1:-1:-1;746:3925:42;;;;4217:27:45;4209:35;;4217:27;;4317:34;;4694:221;4317:34;;;;;:::i;:::-;4443:170;;;;;:::i;:::-;4427:186;;;;;;:::i;4205:1398::-;3327:32:48;746:3925:42;;;4936:37:45;;4932:671;;4205:1398;;;;;2632:2971;;4932:671;5375:217;4997:34;;;;;:::i;:::-;5125:168;;;;;:::i;:::-;5109:184;;;;;;:::i;5375:217::-;5359:233;;;;;;:::i;:::-;;4932:671;;;;;;746:3925:42;-1:-1:-1;;;;746:3925:42;;;3327:32:48;746:3925:42;3327:32:48;746:3925:42;;2571:50:45;;;;;2490:52;;;;;8760:258;746:3925:42;;-1:-1:-1;;;8831:39:45;;8859:10;3327:32:48;8831:39:45;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;-1:-1:-1;746:3925:42;;3327:32:48;746:3925:42;;8831:39:45;;;;;;;;;;;;8760:258;8971:14;8808:62;;8733:4;;8859:10;;8971:14;;:::i;:::-;8760:258;;8831:39;;;746:3925:42;8831:39:45;;746:3925:42;8831:39:45;;;;;;746:3925:42;8831:39:45;;;:::i;:::-;;;746:3925:42;;;;;8971:14:45;746:3925:42;;8831:39:45;;;;;-1:-1:-1;8831:39:45;;7056:177;;;;;746:3925:42;7056:177:45;;:::i;:::-;746:3925:42;7056:177:45;;;;6865:100;746:3925:42;;-1:-1:-1;;;6911:39:45;;6939:10;3327:32:48;6911:39:45;;746:3925:42;;;-1:-1:-1;746:3925:42;;3327:32:48;746:3925:42;-1:-1:-1;;;;;746:3925:42;;6911:39:45;;;;;;;746:3925:42;6911:39:45;;;6865:100;6894:56;6865:100;;;6911:39;;;746:3925:42;6911:39:45;;746:3925:42;6911:39:45;;;;;;746:3925:42;6911:39:45;;;:::i;:::-;;;746:3925:42;;;;;6911:39:45;;;;;;-1:-1:-1;6911:39:45;;6821:535;7264:82;6821:535;7264:82;7310:21;;-1:-1:-1;6821:535:45;;6760:50;;;;;6679:52;;;;4659:33:48;4678:14;;;4659:33;;;3910:31;;;;;3427:469;746:3925:42;3587:13:48;;;;;;;;;;;;;3621:3;746:3925:42;;3602:17:48;;;;;-1:-1:-1;;;;;3668:9:48;;;;:::i;:::-;746:3925:42;;3700:18:48;;;;;3742:21;;;746:3925:42;3742:21:48;3696:176;;746:3925:42;3587:13:48;;3696:176;-1:-1:-1;;;;;746:3925:42;;3792:17:48;3788:84;;3696:176;746:3925:42;3696:176:48;;;3788:84;746:3925:42;;-1:-1:-1;3788:84:48;;3602:17;;;;;;;;;;;;;;3427:469;;3431:49;-1:-1:-1;;;;;;746:3925:42;;3458:22:48;3431:49;;3327:32;;;;;;;746:3925:42;3327:32:48;;;;;;:::i;:::-;;;;;6085:1939;746:3925:42;;-1:-1:-1;;;6449:32:48;;746:3925:42;;;;6449:32:48;;;746:3925:42;;;;6085:1939:48;;746:3925:42;;6449:5:48;-1:-1:-1;;;;;746:3925:42;;6085:1939:48;;-1:-1:-1;746:3925:42;6449:32:48;746:3925:42;;6449:32:48;;;;;;;-1:-1:-1;6449:32:48;;;6085:1939;-1:-1:-1;;;;;;746:3925:42;;;-1:-1:-1;;;6553:23:48;;:49;;;;6085:1939;6549:469;;;6618:21;;;6635:4;6653:20;6549:469;7032:31;;;;6549:469;7028:990;;;746:3925:42;;;;;-1:-1:-1;746:3925:42;;;;;;;:::i;:::-;9706:1:44;746:3925:42;;;;;;;;6449:32:48;746:3925:42;;;;;;;;;9839:28:44;;6449:32:48;9839:28:44;;746:3925:42;9839:28:44;;;;;;;-1:-1:-1;;;9839:28:44;;;7028:990:48;-1:-1:-1;;;;;;746:3925:42;;-1:-1:-1;10059:3:44;746:3925:42;;10040:17:44;;;;;746:3925:42;-1:-1:-1;;;;;10082:9:44;;;;:::i;:::-;746:3925:42;;10082:25:44;10078:120;;10059:3;746:3925:42;-1:-1:-1;;;;;10215:9:44;;;;:::i;:::-;746:3925:42;;10215:24:44;10211:119;;10059:3;746:3925:42;;10025:13:44;;10211:119;10272:14;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;;10313:2:44;746:3925:42;254:1:47;;10259:56:44;;;:::i;:::-;746:3925:42;10211:119:44;;;;10078:120;10140:14;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;10181:2:44;254:1:47;;10127:56:44;;;:::i;:::-;746:3925:42;10078:120:44;;10040:17;;;;;;7106:50:48:o;9839:28:44:-;;;;;;;;;-1:-1:-1;9839:28:44;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;9839:28:44;;-1:-1:-1;9839:28:44;;;7028:990:48;7177:15;;;;;;;;;:33;;;;7028:990;-1:-1:-1;7173:845:48;;;7400:47;;;;;7469:201;7400:47;;;;;:::i;:::-;7469:201;;;;;;:::i;7173:845::-;7784:98;;;;-1:-1:-1;7784:98:48;;;;;;;;;:::i;:::-;746:3925:42;;;;;;;;;;:::i;:::-;11546:1:45;746:3925:42;;-1:-1:-1;;746:3925:42;;;;;;6449:32:48;746:3925:42;;;;;;;;;11678:28:45;;6449:32:48;11678:28:45;;746:3925:42;11678:28:45;;;;;;;-1:-1:-1;;;11678:28:45;;;7173:845:48;11717:18:45;-1:-1:-1;746:3925:42;;;;;;;11758:27:45;11750:35;;11758:27;;-1:-1:-1;11806:13:45;;-1:-1:-1;;;;;746:3925:42;;-1:-1:-1;;11840:3:45;746:3925:42;;11821:17:45;;;;;-1:-1:-1;;;;;11887:9:45;;;;:::i;:::-;746:3925:42;;11919:18:45;;;11915:119;;11840:3;746:3925:42;;-1:-1:-1;;;12065:26:45;;746:3925:42;;6449:32:48;746:3925:42;12065:26:45;;;;;;;;-1:-1:-1;12065:26:45;;;11840:3;-1:-1:-1;;;;;;746:3925:42;12056:35:45;12052:137;;11840:3;11758:27;746:3925:42;11806:13:45;;12052:137;12128:14;;;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;12168:2:45;254:1:47;;;12052:137:45;;12065:26;;;746:3925:42;12065:26:45;;;;;;;;;746:3925:42;12065:26:45;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;12065:26:45;;;;;;-1:-1:-1;12065:26:45;;11915:119;11973:14;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;12013:2:45;254:1:47;;11961:54:45;;;:::i;:::-;746:3925:42;11915:119:45;;11821:17;;;;;;;746:3925:42;11821:17:45;;;6449:32:48;746:3925:42;;;;;;;;;12228:45:45;;6449:32:48;12228:45:45;;746:3925:42;12228:45:45;;;;;;;-1:-1:-1;12228:45:45;;;11801:402;12216:57;;;;:::i;:::-;746:3925:42;7896:111:48;:::o;12228:45:45:-;;;746:3925:42;12228:45:45;;746:3925:42;12228:45:45;;;;;;746:3925:42;12228:45:45;;;:::i;:::-;;;746:3925:42;;;;;12228:45:45;;;;;;-1:-1:-1;12228:45:45;;11746:2164;746:3925:42;;;;;;;;11546:1:45;12294:37;;11546:1;;12352:13;;-1:-1:-1;12386:3:45;746:3925:42;;12367:17:45;;;;;-1:-1:-1;;;;;12433:9:45;;;;:::i;:::-;746:3925:42;;12465:18:45;;;;;12519:14;;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;;12559:2:45;11758:27;254:1:47;;12507:54:45;;;:::i;:::-;746:3925:42;12461:249:45;746:3925:42;12352:13:45;;12461:249;-1:-1:-1;;;;;746:3925:42;;12590:22:45;12586:124;;12461:249;11758:27;12461:249;;;12586:124;12649:14;;;;;;:::i;:::-;746:3925:42;254:1:47;;;;;;;;;;;;;;;12689:2:45;254:1:47;;;12586:124:45;;12367:17;-1:-1:-1;746:3925:42;;-1:-1:-1;;;12749:49:45;;6449:32:48;12749:49:45;;746:3925:42;;;;12367:17:45;;746:3925:42;-1:-1:-1;746:3925:42;;-1:-1:-1;746:3925:42;;6449:32:48;;-1:-1:-1;746:3925:42;;-1:-1:-1;;;;;746:3925:42;12749:49:45;;;;;;;-1:-1:-1;12749:49:45;;;12737:61;;;;:::i;12290:1620::-;746:3925:42;;-1:-1:-1;746:3925:42;;;;12827:27:45;12819:35;;12827:27;;-1:-1:-1;12875:13:45;;-1:-1:-1;;;;;746:3925:42;;;;-1:-1:-1;746:3925:42;;;;;-1:-1:-1;12909:3:45;746:3925:42;;12890:17:45;;;;;746:3925:42;-1:-1:-1;;;;;12956:9:45;;;;:::i;:::-;746:3925:42;;12989:22:45;;;12985:208;;12909:3;13215:17;13211:118;;12909:3;11758:27;746:3925:42;12875:13:45;;13211:118;13268:14;;;;:::i;:::-;746:3925:42;254:1:47;12827:27:45;254:1:47;;;;;;12827:27:45;254:1:47;;;;;;;13308:2:45;11758:27;254:1:47;;13256:54:45;;;:::i;:::-;746:3925:42;13211:118:45;;;;12985:208;13110:14;;;;;;:::i;:::-;746:3925:42;254:1:47;12827:27:45;254:1:47;;;;;;12827:27:45;254:1:47;;;;;;;746:3925:42;;-1:-1:-1;;;13047:127:45;;13150:2;254:1:47;;;6449:32:48;13047:127:45;;746:3925:42;;;6449:32:48;746:3925:42;13047:127:45;;;;;;;;;-1:-1:-1;13047:127:45;;;12985:208;13035:139;;;;:::i;:::-;746:3925:42;12985:208:45;;13047:127;;;;746:3925:42;13047:127:45;;;;;;;;;746:3925:42;13047:127:45;;;:::i;:::-;;;746:3925:42;;;;;;;13047:127:45;;;;;;-1:-1:-1;13047:127:45;;12815:1095;6449:32:48;746:3925:42;;;;;;;13363:37:45;13359:551;;12815:1095;;;;;746:3925:42;:::o;13359:551:45:-;13421:13;;;;;;-1:-1:-1;;;;;746:3925:42;;-1:-1:-1;13455:3:45;746:3925:42;;13436:17:45;;;;;-1:-1:-1;;;;;13502:9:45;;;;:::i;:::-;746:3925:42;;13535:17:45;;;13531:118;;13455:3;746:3925:42;;-1:-1:-1;;;13680:27:45;;746:3925:42;;6449:32:48;746:3925:42;13680:27:45;;;;;;;;-1:-1:-1;13680:27:45;;;13455:3;-1:-1:-1;;;;;;746:3925:42;13671:36:45;13667:219;;13455:3;11758:27;746:3925:42;13421:13:45;;13667:219;13803:14;;;;:::i;:::-;746:3925:42;254:1:47;12827:27:45;254:1:47;;;;;;12827:27:45;254:1:47;;;;;;;746:3925:42;;-1:-1:-1;;;13743:124:45;;13843:2;254:1:47;;;6449:32:48;13743:124:45;;746:3925:42;;;6449:32:48;746:3925:42;13743:124:45;;;;;;;-1:-1:-1;13743:124:45;;;13667:219;11758:27;13731:136;;;;;:::i;:::-;746:3925:42;13667:219:45;;;;13743:124;;746:3925:42;13743:124:45;;;;;;;;;746:3925:42;13743:124:45;;;:::i;:::-;;;746:3925:42;;;;11758:27:45;746:3925:42;;13743:124:45;;;;;-1:-1:-1;13743:124:45;;13680:27;;;746:3925:42;13680:27:45;;;;;;;;;746:3925:42;13680:27:45;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;13680:27:45;;;;;;-1:-1:-1;13680:27:45;;13531:118;13588:14;;;;:::i;:::-;746:3925:42;12827:27:45;254:1:47;;;;;;12827:27:45;254:1:47;;;;;;;13628:2:45;254:1:47;;13576:54:45;;;:::i;:::-;746:3925:42;13531:118:45;;13436:17;;;;;;;;13359:551;;;;;;11678:28;;;;;;;;;;-1:-1:-1;11678:28:45;;;;;;:::i;:::-;;;;;;;;;;;7177:33:48;7196:14;;;7177:33;;;7032:31;;;;;6549:469;-1:-1:-1;6709:13:48;;;;;;;;;;;6743:3;746:3925:42;;6724:17:48;;;;;-1:-1:-1;;;;;6790:9:48;;;;:::i;:::-;746:3925:42;;6822:18:48;;;;;6864:21;;;746:3925:42;6864:21:48;6818:176;;746:3925:42;6709:13:48;;6818:176;-1:-1:-1;;;;;746:3925:42;;6914:17:48;6910:84;;6818:176;746:3925:42;6818:176:48;;;6910:84;746:3925:42;;-1:-1:-1;6910:84:48;;6724:17;;;;;;;;;;;;6549:469;;6553:49;-1:-1:-1;;;;;;746:3925:42;;6580:22:48;6553:49;;6449:32;;;;;;;-1:-1:-1;6449:32:48;;;;;;:::i;:::-;;;;;746:3925:42;;;-1:-1:-1;;;;;746:3925:42;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;746:3925:42;;;;;;;;;;;;;;;;;;;;223:1755:45;746:3925:42;;-1:-1:-1;;;466:25:45;;-1:-1:-1;;;;;746:3925:42;;;466:25:45;;;746:3925:42;;;;;223:1755:45;746:3925:42;;;;466:25:45;;746:3925:42;;466:5:45;746:3925:42;466:25:45;;;;;;;746:3925:42;466:25:45;;;223:1755;-1:-1:-1;502:1470:45;;;602:19;;;;:::i;:::-;;;;677:34;;684:27;636:603;;223:1755::o;636:603::-;746:3925:42;789:3:45;746:3925:42;;770:17:45;;;;;-1:-1:-1;;;;;840:9:45;;;;:::i;:::-;746:3925:42;;876:16:45;;;:::i;:::-;:55;;;789:3;872:200;;789:3;746:3925:42;;755:13:45;;872:200;979:21;;;;;750:340;1107:63;-1:-1:-1;;;;;746:3925:42;;1115:27:45;;1107:63;:::i;:::-;1195:29;636:603;223:1755::o;876:55::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;896:23:45;;746:3925:42;;466:25:45;746:3925:42;896:23:45;;;;;;;;746:3925:42;896:23:45;;;876:55;-1:-1:-1;;;;;;746:3925:42;;;;;896:35:45;876:55;;896:23;;;746:3925:42;896:23:45;;;;;;;;;746:3925:42;896:23:45;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;896:23:45;;;;;;-1:-1:-1;896:23:45;;770:17;;;;;;502:1470;1295:20;;;;;:::i;:::-;;;;1372:36;;466:25;1330:632;223:1755::o;1330:632::-;746:3925:42;1486:3:45;746:3925:42;;1467:17:45;;;;;-1:-1:-1;;;;;1537:9:45;;;;:::i;:::-;746:3925:42;;1598:16:45;;;:::i;:::-;:56;;;1486:3;1569:228;;1486:3;746:3925:42;;1452:13:45;;1569:228;1703:21;;;;;1447:368;1832:63;-1:-1:-1;;;;;746:3925:42;;1840:27:45;;1832:63;:::i;:::-;1920:27;1330:632;223:1755::o;1598:56::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;1618:23:45;;746:3925:42;;466:25:45;746:3925:42;1618:23:45;;;;;;;;746:3925:42;1618:23:45;;;1598:56;-1:-1:-1;;;;;;746:3925:42;;;;;1618:36:45;1598:56;;1618:23;;;746:3925:42;1618:23:45;;;;;;;;;746:3925:42;1618:23:45;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;1618:23:45;;;;;;-1:-1:-1;1618:23:45;;1467:17;;;;;;466:25;;;;;;;746:3925:42;466:25:45;;;;;;:::i;:::-;;;;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;7203:16:45;746:3925:42;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;;;-1:-1:-1;;746:3925:42;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8071:17:45;;;746:3925:42;8071:17:45;;;;;746:3925:42;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8071:17:45;;;;746:3925:42;8071:17:45;;;;746:3925:42;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;-1:-1:-1;;746:3925:42;;;;;:::i;:::-;;;;-1:-1:-1;746:3925:42;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;746:3925:42;;;;;;;;;;;;-1:-1:-1;;;746:3925:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;746:3925:42;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8071:17:45;;;746:3925:42;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;746:3925:42;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;746:3925:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;746:3925:42;;;;;;;653:2518:43;746:3925:42;;-1:-1:-1;;;931:25:43;;-1:-1:-1;;;;;746:3925:42;;;931:25:43;;;746:3925:42;;;;653:2518:43;746:3925:42;;;;;;931:25:43;;746:3925:42;;931:5:43;746:3925:42;931:25:43;;;;;;;746:3925:42;931:25:43;;;653:2518;971:20;;;;:::i;:::-;:43;;;653:2518;967:2198;;;746:3925:42;;-1:-1:-1;;;1088:27:43;;746:3925:42;;;;;;931:25:43;;746:3925:42;;-1:-1:-1;;;;;746:3925:42;1088:27:43;;;;;;;746:3925:42;1088:27:43;;;967:2198;-1:-1:-1;746:3925:42;;-1:-1:-1;;;1153:26:43;;746:3925:42;;;;;931:25:43;;746:3925:42;;-1:-1:-1;;;;;746:3925:42;1153:26:43;;;;;;;746:3925:42;1153:26:43;;;967:2198;1199:13;746:3925:42;1233:3:43;746:3925:42;;1214:17:43;;;;;-1:-1:-1;;;;;1280:9:43;;;;:::i;:::-;746:3925:42;;-1:-1:-1;;;;;746:3925:42;;1333:29:43;;;:85;;1233:3;1308:248;;-1:-1:-1;;;;;746:3925:42;;1578:23:43;;1574:102;;1233:3;-1:-1:-1;;;;;746:3925:42;;1697:22:43;;1693:100;;1233:3;;746:3925:42;;1199:13:43;;1693:100;;-1:-1:-1;746:3925:42;1693:100:43;;1574:102;1625:23;-1:-1:-1;1625:23:43;1574:102;;1308:248;1532:5;;;;;;1194:613;-1:-1:-1;;;;;746:3925:42;;1846:29:43;;;:61;;1194:613;1821:156;;;:::i;:::-;1998:35;967:2198;653:2518::o;1846:61::-;-1:-1:-1;;;;;;746:3925:42;;1879:28:43;;1846:61;;1333:85;-1:-1:-1;;;;;;746:3925:42;;1390:28:43;;1333:85;;1214:17;;;;;;;;1153:26;;;;746:3925:42;1153:26:43;;746:3925:42;1153:26:43;;;;;;746:3925:42;1153:26:43;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;1153:26:43;;;;;;;-1:-1:-1;1153:26:43;;1088:27;;;;746:3925:42;1088:27:43;;746:3925:42;1088:27:43;;;;;;746:3925:42;1088:27:43;;;:::i;:::-;;;746:3925:42;;;;;;931:25:43;746:3925:42;;:::i;:::-;1088:27:43;;;;;;;;-1:-1:-1;1088:27:43;;967:2198;2055:20;;;;;;:::i;:::-;2054:21;:45;;;967:2198;2050:1115;;;746:3925:42;2154:3:43;746:3925:42;;2135:17:43;;;;;-1:-1:-1;;;;;2201:9:43;;;;:::i;:::-;746:3925:42;;2233:16:43;;;:::i;:::-;2229:621;;2154:3;;746:3925:42;;2120:13:43;;2229:621;-1:-1:-1;;;;;746:3925:42;;2302:29:43;;;:89;;2229:621;2273:272;;746:3925:42;;-1:-1:-1;;;2571:23:43;;746:3925:42;;931:25:43;746:3925:42;2571:23:43;;;;;;;;746:3925:42;2571:23:43;;;2229:621;-1:-1:-1;;;;;;746:3925:42;;;;;2571:36:43;2567:123;;2229:621;746:3925:42;;-1:-1:-1;;;2715:23:43;;746:3925:42;;931:25:43;746:3925:42;2715:23:43;;;;;;;;746:3925:42;2715:23:43;;;2229:621;-1:-1:-1;;;;;;746:3925:42;;;;;2715:35:43;2229:621;2711:121;;-1:-1:-1;746:3925:42;2229:621:43;;2715:23;;;746:3925:42;2715:23:43;;;;;;;;;746:3925:42;2715:23:43;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;2715:23:43;;;;;;-1:-1:-1;2715:23:43;;2567:123;2635:23;-1:-1:-1;2635:23:43;2567:123;;2571:23;;;746:3925:42;2571:23:43;;;;;;;;;746:3925:42;2571:23:43;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;2571:23:43;;;;;;-1:-1:-1;2571:23:43;;2273:272;2517:5;;;;;;;2115:749;-1:-1:-1;;;;;746:3925:42;;2903:29:43;;;:61;;2115:749;2878:156;;;:::i;:::-;746:3925:42;2050:1115:43;653:2518::o;2903:61::-;-1:-1:-1;;;;;;746:3925:42;;2936:28:43;;2903:61;;2302:89;-1:-1:-1;;;;;;746:3925:42;;2363:28:43;;2302:89;;2135:17;;;;;;;;;2050:1115;746:3925:42;;-1:-1:-1;;;3117:37:43;;746:3925:42;931:25:43;3117:37;;746:3925:42;;931:25:43;746:3925:42;;;;;;;;3117:37:43;;;2054:45;2080:19;;;;:::i;:::-;2079:20;2054:45;;971:43;995:19;;;;:::i;:::-;971:43;;931:25;;;;;;;746:3925:42;931:25:43;;;;;;:::i;:::-;;;;;746:3925:42;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;9747:1:43;746:3925:42;;;-1:-1:-1;;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3406:29:45;746:3925:42;;;-1:-1:-1;;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14634:31:43;746:3925:42;;;-1:-1:-1;;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;10317:31:43;746:3925:42;;;-1:-1:-1;;746:3925:42;;-1:-1:-1;746:3925:42;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15831:1917:43;;;746:3925:42;;;;;;:::i;:::-;16120:1:43;746:3925:42;;;;;;;;;;-1:-1:-1;;;16253:28:43;;746:3925:42;;;;;16253:28:43;;;746:3925:42;16097:25:43;;;-1:-1:-1;746:3925:42;16253:28:43;746:3925:42;16253:5:43;-1:-1:-1;;;;;746:3925:42;16253:28:43;;;;;;;-1:-1:-1;;;16253:28:43;;;15831:1917;746:3925:42;;;;;;;16304:31:43;16296:39;16292:726;;-1:-1:-1;;746:3925:42;;-1:-1:-1;;;17128:27:43;;-1:-1:-1;;;;;746:3925:42;;;;;;;-1:-1:-1;746:3925:42;;16253:28:43;746:3925:42;;17128:27:43;;;;;;;-1:-1:-1;17128:27:43;;;15831:1917;-1:-1:-1;746:3925:42;;-1:-1:-1;;;17201:26:43;;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;16253:28:43;746:3925:42;;17201:26:43;;;;;;;-1:-1:-1;17201:26:43;;;15831:1917;-1:-1:-1;;;;;;746:3925:42;;-1:-1:-1;17277:3:43;746:3925:42;;17258:17:43;;;;;746:3925:42;-1:-1:-1;;;;;17300:9:43;;;;:::i;:::-;746:3925:42;;17300:32:43;17296:201;;17277:3;746:3925:42;-1:-1:-1;;;;;17514:9:43;;;;:::i;:::-;746:3925:42;;17514:31:43;17510:199;;17277:3;16304:31;746:3925:42;17243:13:43;;17510:199;17633:14;;;;:::i;:::-;746:3925:42;254:1:47;746:3925:42;254:1:47;;;;;;746:3925:42;254:1:47;;;;;;;746:3925:42;;-1:-1:-1;;;17577:117:43;;17674:2;254:1:47;;;16253:28:43;17577:117;;746:3925:42;;;16253:28:43;746:3925:42;17577:117:43;;;;;;;-1:-1:-1;17577:117:43;;;17510:199;16304:31;17565:129;;;;;:::i;:::-;746:3925:42;17510:199:43;;;;17577:117;;746:3925:42;17577:117:43;;;;;;;;;746:3925:42;17577:117:43;;;:::i;:::-;;;746:3925:42;;;;16304:31:43;746:3925:42;;17577:117:43;;;;;-1:-1:-1;17577:117:43;;17296:201;17421:14;;;;:::i;:::-;746:3925:42;;254:1:47;;;;;;746:3925:42;254:1:47;;;;;;;746:3925:42;;-1:-1:-1;;;17364:118:43;;17462:2;254:1:47;;;16253:28:43;17364:118;;746:3925:42;;;16253:28:43;746:3925:42;17364:118:43;;;;;;;;-1:-1:-1;17364:118:43;;;17296:201;17352:130;;;;:::i;:::-;746:3925:42;17296:201:43;;17364:118;;;746:3925:42;17364:118:43;;;;;;;;;746:3925:42;17364:118:43;;;:::i;:::-;;;746:3925:42;;;;;17364:118:43;;;;;;-1:-1:-1;17364:118:43;;17258:17;-1:-1:-1;17258:17:43;;-1:-1:-1;;;;;;15831:1917:43:o;17201:26::-;;;746:3925:42;17201:26:43;;746:3925:42;17201:26:43;;;;;;746:3925:42;17201:26:43;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;17201:26:43;;;;;;-1:-1:-1;17201:26:43;;17128:27;;;746:3925:42;17128:27:43;;746:3925:42;17128:27:43;;;;;;746:3925:42;17128:27:43;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;17128:27:43;;;;;;-1:-1:-1;17128:27:43;;16292:726;16424:13;;;;;;;-1:-1:-1;16458:3:43;746:3925:42;;16439:17:43;;;;;-1:-1:-1;;;;;16505:9:43;;;;:::i;:::-;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;16538:24:43;;;;;16664:14;;;;;:::i;:::-;746:3925:42;;254:1:47;;;;;;746:3925:42;254:1:47;;;;;;;16705:2:43;16253:28;746:3925:42;;;;;;;;;;;;16598:131:43;;254:1:47;16253:28:43;16598:131;;746:3925:42;16598:131:43;;;;;;-1:-1:-1;16598:131:43;;;16534:432;16304:31;16586:143;;;;;:::i;:::-;746:3925:42;16534:432:43;746:3925:42;16424:13:43;;16598:131;;746:3925:42;16598:131:43;;;;;;;;;746:3925:42;16598:131:43;;;:::i;:::-;;;746:3925:42;;;;16304:31:43;746:3925:42;;16598:131:43;;;;;-1:-1:-1;16598:131:43;;16534:432;-1:-1:-1;;;;;746:3925:42;;;-1:-1:-1;16758:23:43;;16754:212;;16534:432;16304:31;16534:432;;;;16754:212;16882:14;;;;:::i;:::-;746:3925:42;;254:1:47;;;;;;746:3925:42;254:1:47;;;;;;;16923:2:43;16253:28;746:3925:42;;;;;;;;;;;;16817:130:43;;254:1:47;16253:28:43;16817:130;;746:3925:42;16817:130:43;;;;;;-1:-1:-1;16817:130:43;;;16754:212;16304:31;16805:142;;;;;:::i;:::-;746:3925:42;16754:212:43;;16817:130;;746:3925:42;16817:130:43;;;;;;;;;746:3925:42;16817:130:43;;;:::i;:::-;;;746:3925:42;;;;16304:31:43;746:3925:42;;16817:130:43;;;;;-1:-1:-1;16817:130:43;;16439:17;-1:-1:-1;16439:17:43;;-1:-1:-1;;;;16994:13:43:o;16253:28::-;;;;;;;;;;-1:-1:-1;16253:28:43;;;;;;:::i;:::-;;;;;;;;;;;364:2514:48;;;;;746:3925:42;;;;;;;;;;749:32:48;;;;;;746:3925:42;;;749:32:48;746:3925:42;;;;;;749:5:48;746:3925:42;749:32:48;;;;;;;746:3925:42;749:32:48;;;364:2514;-1:-1:-1;;;;;;746:3925:42;;853:23:48;;:49;;;:23;;746:3925:42;;;;;;853:23:48;:49;;;364:2514;849:469;;;918:21;;;935:4;953:20;849:469;1332:31;;;;849:469;1328:1544;;;-1:-1:-1;746:3925:42;;;;-1:-1:-1;746:3925:42;;;;1475:250:48;;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;-1:-1:-1;746:3925:42;-1:-1:-1;1662:49:48;;1475:250;:::i;:::-;1320:43:44;;;;:::i;:::-;1373:15;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;1446:55:44;;746:3925:42;749:32:48;1446:55:44;;746:3925:42;;;;;;;;;;;:::i;:::-;1485:4:44;749:32:48;746:3925:42;;;;;;-1:-1:-1;;746:3925:42;;;;;;;:::i;:::-;1446:55:44;746:3925:42;;1446:6:44;-1:-1:-1;;;;;746:3925:42;1446:55:44;;;;;;1524:13;746:3925:42;;1446:55:44;;;1524:13;;:::i;1446:55::-;;;;;;746:3925:42;1446:55:44;;;;;;:::i;1662:49:48:-;1689:22;;;-1:-1:-1;1475:250:48;:::i;1328:1544::-;1789:15;;;;;;;;;;;;:33;;;;1328:1544;-1:-1:-1;1785:1087:48;;;2012:47;;6989:53:43;2012:47:48;;;;;6732:199:43;2012:47:48;;;;746:3925:42;2012:47:48;;;:::i;:::-;6732:199:43;;;;;;:::i;:::-;746:3925:42;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;6989:53:43;;746:3925:42;;;;;749:32:48;6989:53:43;;;:::i;1785:1087:48:-;2436:98;;;;;;;;;:::i;:::-;746:3925:42;;;;;;;;2553:30:48;2549:313;;1785:1087;;;;;;;364:2514::o;2549:313::-;10931:189:45;;;;;;;;;746:3925:42;2490:52:45;;;;;;2517:12;;2490:52;;-1:-1:-1;;;;;746:3925:42;;2571:23:45;;:50;;;;2597:12;;2571:50;;2644:27;2636:35;;2644:27;;2818:34;;;;;;:::i;:::-;746:3925:42;;-1:-1:-1;;;3031:26:45;;746:3925:42;;;;3031:26:45;746:3925:42;749:32:48;746:3925:42;-1:-1:-1;;;;;746:3925:42;;3031:26:45;;;;;;;746:3925:42;3031:26:45;;;2632:2971;-1:-1:-1;11177:53:45;;746:3925:42;;;;;3260:117:45;;746:3925:42;;;;2934:236:45;;746:3925:42;;-1:-1:-1;;;;;746:3925:42;;;;;;;;2934:236:45;:::i;:::-;2918:252;;;;;;:::i;3260:117::-;3244:133;;;;;;:::i;:::-;;2632:2971;6008:43;;:::i;:::-;746:3925:42;;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;6079:205:45;;;746:3925:42;;6079:205:45;;746:3925:42;;;6079:205:45;;746:3925:42;6065:219:45;;;:::i;:::-;;;;;:::i;:::-;;746:3925:42;;;;;;;:::i;3031:26:45:-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;746:3925:42;;;;11177:53:45;746:3925:42;2934:236:45;3260:117;746:3925:42;;;;;;;;:::i;:::-;3031:26:45;;;;;;;;;;;;;;;;;-1:-1:-1;3031:26:45;;2632:2971;746:3925:42;11177:53:45;746:3925:42;;;;;;;;3406:29:45;3398:37;;3406:29;;;;3584:34;;;;4016:172;3584:34;3701:223;3584:34;;;;;:::i;:::-;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;3701:223:45;:::i;:::-;3685:239;;;;;;:::i;4016:172::-;4000:188;;;;;;:::i;:::-;;2632:2971;;3394:2209;746:3925:42;;;;;-1:-1:-1;746:3925:42;;4217:27:45;4209:35;;4217:27;;;;4317:34;;4694:221;4317:34;;;;;;:::i;:::-;4443:170;;;;;:::i;:::-;4427:186;;;;;;:::i;:::-;;-1:-1:-1;;;;;746:3925:42;;;;;;4694:221:45;:::i;4205:1398::-;749:32:48;746:3925:42;;;;;4936:37:45;4932:671;;4205:1398;;;;2632:2971;;4932:671;5375:217;4997:34;;;;;;;:::i;:::-;5125:168;;;;;:::i;:::-;5109:184;;;;;;:::i;:::-;;-1:-1:-1;;;;;746:3925:42;;;;;;;;5375:217:45;:::i;:::-;5359:233;;;;;;:::i;:::-;;4932:671;;;;;2571:50;;;;2490:52;;;;1789:33:48;1808:14;;;1789:33;;;1332:31;;;;;849:469;746:3925:42;1009:13:48;;;;;;;;;;;1043:3;746:3925:42;;1024:17:48;;;;;-1:-1:-1;;;;;1090:9:48;;;;:::i;:::-;746:3925:42;;1122:18:48;;;;;1164:21;;;746:3925:42;1164:21:48;1118:176;;746:3925:42;1009:13:48;;1118:176;-1:-1:-1;;;;;746:3925:42;;1214:17:48;1210:84;;1118:176;746:3925:42;1118:176:48;;;1210:84;746:3925:42;;-1:-1:-1;1210:84:48;;1024:17;;;;;;;;;;;;849:469;;853:49;-1:-1:-1;;;;;;746:3925:42;;880:22:48;853:49;;749:32;;;;;;;746:3925:42;749:32:48;;;;;;:::i;:::-;;;;;216:431:43;-1:-1:-1;;;;;746:3925:42;;;;302:12:43;746:3925:42;293:21:43;;289:64;;746:3925:42;;-1:-1:-1;;;366:23:43;;;746:3925:42;366:23:43;746:3925:42;366:23:43;;;;;;;216:431;362:256;;;628:12;746:3925:42;216:431:43;:::o;362:256::-;366:23;408:37;746:3925:42;;;;;;;;;;408:37:43;;434:10;366:23;408:37;;746:3925:42;408:37:43;;;;;;362:256;404:157;;;746:3925:42;216:431:43;:::o;404:157::-;471:4;464:11;:::o;408:37::-;366:23;408:37;;366:23;408:37;;;;;;746:3925:42;408:37:43;;;:::i;:::-;;;746:3925:42;;;;;408:37:43;;;;;-1:-1:-1;408:37:43;;366:23;;;;;;;;;;;;;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;366:23:43;;;;;-1:-1:-1;366:23:43;;289:64;330:12;746:3925:42;330:12:43;:::o;2081:225:32:-;746:3925:42;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;;2200:39:32;746:3925:42;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;;2081:225;8071:17:45;;;746:3925:42;;;;;;;;;-1:-1:-1;;;746:3925:42;3411:47:32;;;;;-1:-1:-1;;;;;746:3925:42;;;;3411:47:32;;746:3925:42;;;;;;;;-1:-1:-1;;;;3411:47:32;746:3925:42;;;;3411:47:32;;746:3925:42;;3411:47:32;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;746:3925:42;;;;;;;;3561:43:32;;;746:3925:42;3561:43:32;;746:3925:42;-1:-1:-1;2200:39:32;746:3925:42;;;2200:39:32;3561:43;;;;;;:::i;:::-;;;:::i;:::-;3646:12;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;746:3925:42;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;;746:3925:42;8104:30:32;;;746:3925:42;;;;;;8104:30:32;;746:3925:42;:::i;:::-;8078:56:32;;;;2200:39;;;;746:3925:42;2200:39:32;;746:3925:42;2200:39:32;;;;;;746:3925:42;2200:39:32;;;:::i;:::-;;;746:3925:42;;;;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;2081:225;746:3925:42;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;;;;;;;;;;;2200:39:32;746:3925:42;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;;2081:225;746:3925:42;;;;;;;;;;-1:-1:-1;;;746:3925:42;3411:47:32;;;;;-1:-1:-1;;;;;746:3925:42;;;;3411:47:32;;746:3925:42;;;;;;;;-1:-1:-1;;;;3411:47:32;746:3925:42;;;;3411:47:32;746:3925:42;2200:39:32;;;;746:3925:42;2200:39:32;;746:3925:42;2200:39:32;;;;;;746:3925:42;2200:39:32;;;:::i;:::-;;;746:3925:42;;;;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;1702:188;746:3925:42;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;746:3925:42;;;1829:53:32;;;746:3925:42;;;;;;;;;;;;;;;;;1829:53:32;;;;;;;746:3925:42;1829:53:32;:::i;1303:160::-;746:3925:42;;-1:-1:-1;;;1412:43:32;;;;-1:-1:-1;;;;;746:3925:42;;;;1412:43:32;;;746:3925:42;;;;;;;;;1412:43:32;;;;;;746:3925:42;;1412:43:32;:::i;14140:1685:43:-;;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;14691:23:43;;-1:-1:-1;;;;;746:3925:42;;;;;14691:23:43;746:3925:42;14691:23:43;746:3925:42;;14691:23:43;;;;;;;-1:-1:-1;14691:23:43;;;14140:1685;-1:-1:-1;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;:::i;:::-;;;;14691:23:43;14546:240;;746:3925:42;10317:31:43;746:3925:42;14546:240:43;;746:3925:42;14539:247:43;14851:34;;:::i;:::-;14895:15;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;15281:38:43;;15313:4;14691:23;15281:38;;746:3925:42;;14691:23:43;746:3925:42;15281:38:43;746:3925:42;15281:38:43;;;;;;;;-1:-1:-1;15281:38:43;;;14140:1685;15214:184;746:3925:42;;;;;;:::i;:::-;;;14691:23:43;14956:497;;746:3925:42;;14956:497:43;;746:3925:42;;14956:497:43;;746:3925:42;14140:1685:43;:::o;15281:38::-;;;;14691:23;15281:38;;14691:23;15281:38;;;;;;746:3925:42;15281:38:43;;;:::i;:::-;;;746:3925:42;;;;;15281:38:43;;;;;;;-1:-1:-1;15281:38:43;;14691:23;;;;;;;;;;;;;;;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;14691:23:43;;;;;;-1:-1:-1;14691:23:43;;14140:1685;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;;;746:3925:42;;;;;;;;:::i;:::-;;;;14546:240:43;;;;746:3925:42;14634:31:43;746:3925:42;14546:240:43;;746:3925:42;14539:247:43;14851:34;;;:::i;:::-;14895:15;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;14546:240:43;15667:23;15557:134;746:3925:42;;;;;;;;;15667:23:43;;;;;;;;;14921:898;15667:23;;;14140:1685;-1:-1:-1;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;:::i;:::-;;;14546:240:43;15495:313;;746:3925:42;;15495:313:43;;746:3925:42;14634:31:43;746:3925:42;15495:313:43;;746:3925:42;14140:1685:43;:::o;15667:23::-;;;14546:240;15667:23;;14546:240;15667:23;;;;;;14546:240;15667:23;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;15667:23:43;;;;;;-1:-1:-1;15667:23:43;;14140:1685;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;14691:23:43;;-1:-1:-1;;;;;746:3925:42;;;;;14691:23:43;746:3925:42;14691:23:43;746:3925:42;;14691:23:43;;;;;;;-1:-1:-1;14691:23:43;;;14140:1685;-1:-1:-1;746:3925:42;;;;-1:-1:-1;;;;;746:3925:42;;;;:::i;:::-;;;;14691:23:43;14546:240;;746:3925:42;2644:27:45;746:3925:42;14546:240:43;;746:3925:42;14539:247:43;14851:34;;:::i;:::-;14895:15;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;746:3925:42;;;;;;:::i;14691:23:43:-;;;;;;;;;;;;;;;;;:::i;:::-;;;746:3925:42;;;;;;;:::i;:::-;14691:23:43;;;;;;-1:-1:-1;14691:23:43;;8143:1371:44;;;;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;8665:39:44;;8693:10;8665:39;;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;8665:39:44;746:3925:42;;8665:39:44;;;;;;;746:3925:42;8665:39:44;;;8143:1371;8650:54;746:3925:42;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;;;;;8757:122:44;;746:3925:42;-1:-1:-1;746:3925:42;8757:122:44;;746:3925:42;;8944:34:44;;:::i;:::-;8988:15;;;;:::i;:::-;;;;;:::i;8665:39::-;;;;746:3925:42;8665:39:44;;746:3925:42;8665:39:44;;;;;;746:3925:42;8665:39:44;;;:::i;:::-;;;746:3925:42;;;;;8665:39:44;;;;;;;-1:-1:-1;8665:39:44;;8143:1371;;;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;8628:6:44;8624:91;;8143:1371;746:3925:42;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;;;;8757:122:44;;;746:3925:42;-1:-1:-1;746:3925:42;8757:122:44;;746:3925:42;;8944:34:44;;:::i;:::-;8988:15;;;;:::i;:::-;;;;;:::i;:::-;;746:3925:42;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;8757:122:44;9300:197;;746:3925:42;;9300:197:44;;746:3925:42;;;9300:197:44;;746:3925:42;;8143:1371:44:o;8624:91::-;746:3925:42;;-1:-1:-1;;;8665:39:44;;8693:10;8665:39;;;746:3925:42;;;8665:39:44;746:3925:42;-1:-1:-1;;;;;746:3925:42;;8665:39:44;;;;;;;746:3925:42;8665:39:44;;;8624:91;8650:54;8624:91;;;8665:39;;;746:3925:42;8665:39:44;;746:3925:42;8665:39:44;;;;;;746:3925:42;8665:39:44;;;:::i;:::-;;;746:3925:42;;;;;8665:39:44;;;;;;-1:-1:-1;8665:39:44;;8143:1371;;;;746:3925:42;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;746:3925:42;;-1:-1:-1;;;8665:39:44;;8693:10;8665:39;;;746:3925:42;-1:-1:-1;;;;;746:3925:42;;;;;;;;8665:39:44;746:3925:42;;8665:39:44;;;;;;;5312:5:43;8665:39:44;;;8143:1371;8650:54;746:3925:42;;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;;;;;8757:122:44;;746:3925:42;-1:-1:-1;746:3925:42;8757:122:44;;746:3925:42;;8944:34:44;;:::i;8665:39::-;;;746:3925:42;8665:39:44;;746:3925:42;8665:39:44;;;;;;746:3925:42;8665:39:44;;;:::i;:::-;;;746:3925:42;;;;;8665:39:44;;;;;;-1:-1:-1;8665:39:44;;3177:3130:43;;;;;;;;;3586:34;;:::i;:::-;746:3925:42;3618:1:43;746:3925:42;;;;;3635:39:43;;3643:31;3635:39;3643:31;;3799:172;;;4125:211;3799:172;;;4488:173;3799:172;;:::i;:::-;3985:16;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;;;;;;746:3925:42;;;;;;4125:211:43;:::i;:::-;4350:16;;;;;;:::i;:::-;;;;;:::i;:::-;;4488:173;:::i;:::-;4675:16;;;;;;:::i;:::-;;;;;:::i;:::-;;4714:43;;:::i;:::-;746:3925:42;;;;;;;:::i;:::-;-1:-1:-1;;;;;746:3925:42;;;4782:206:43;;;746:3925:42;;4782:206:43;;746:3925:42;;;4782:206:43;;746:3925:42;4771:217:43;;;:::i;:::-;;;;;:::i;:::-;;3177:3130::o;3631:2670::-;5162:169;5846:117;5162:169;5483:211;5162:169;;;;;;;:::i;:::-;5345:16;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;;;;;;746:3925:42;;;;;;5483:211:43;:::i;:::-;5708:16;;;;;;:::i;:::-;;;;;:::i;:::-;;5846:117;:::i;746:3925:42:-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;746:3925:42;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;746:3925:42;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;746:3925:42;;2626:1:33;7040:40:32;6960:57;6987:30;;;;3256:31:33;6987:30:32;;;746:3925:42;;;;3256:31:33;746:3925:42;6987:30:32;;746:3925:42;:::i;:::-;6986:31:32;6960:57;;;;4421:582:33;;4593:8;;-1:-1:-1;746:3925:42;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;746:3925:42;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;746:3925:42;;;;4917:24:33;746:3925:42;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"59453":[{"start":154,"length":32},{"start":2064,"length":32},{"start":8907,"length":32},{"start":11168,"length":32},{"start":12927,"length":32},{"start":14667,"length":32},{"start":15816,"length":32}],"59456":[{"start":2490,"length":32},{"start":2839,"length":32},{"start":2962,"length":32},{"start":3667,"length":32},{"start":3886,"length":32},{"start":4099,"length":32},{"start":4413,"length":32},{"start":4850,"length":32},{"start":5718,"length":32},{"start":6311,"length":32},{"start":6523,"length":32},{"start":7640,"length":32},{"start":7914,"length":32},{"start":16059,"length":32}],"59458":[{"start":2389,"length":32},{"start":3174,"length":32},{"start":3565,"length":32},{"start":4216,"length":32},{"start":5529,"length":32},{"start":5578,"length":32},{"start":5823,"length":32},{"start":5879,"length":32},{"start":7216,"length":32},{"start":7268,"length":32},{"start":16321,"length":32},{"start":16375,"length":32},{"start":17198,"length":32}],"59466":[{"start":3014,"length":32},{"start":4009,"length":32},{"start":4361,"length":32},{"start":4799,"length":32},{"start":5625,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"vault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_permit2\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WETH_ADDRESS\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Supports: Direct Swaps: - ETH<->ERC20 - ERC20<->ERC20 - ERC4626<->ERC4626 - ERC4626<->ERC20 2 steps: - (ERC20->ERC20)->ERC4626: swap, wrap_0 - (ERC4626->ERC20)->ERC4626: swap, wrap_1 - (ERC4626->ERC4626)->ERC20: swap, unwrap_0 - (ERC20->ERC4626)->ERC20; swap, unwrap_1 - ERC20->(ERC4626->ERC4626): wrap, swap_0 - ERC20->(ERC4626->ERC20); wrap, swap_1 - ERC4626->(ERC20->ERC20): unwrap, swap_0 - ERC4626->(ERC20->ERC4626): unwrap, swap_1 3 steps: - ERC20->(ERC4626->ERC4626)->ERC20 - ERC4626->(ERC20->ERC20)->ERC4626\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"_prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"Balancer V3 Swap Adapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/BalancerV3SwapAdapter.sol\":\"BalancerV3SwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/BalancerV3SwapAdapter.sol\":{\"keccak256\":\"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a\",\"dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":{\"keccak256\":\"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76\",\"dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"vault_","type":"address"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_permit2","type":"address"},{"internalType":"address","name":"_WETH_ADDRESS","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"_poolId","type":"bytes32"},{"internalType":"address","name":"_sellToken","type":"address"},{"internalType":"address","name":"_buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"_prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/BalancerV3SwapAdapter.sol":"BalancerV3SwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/BalancerV3SwapAdapter.sol":{"keccak256":"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc","urls":["bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a","dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerSwapHelpers.sol":{"keccak256":"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88","urls":["bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76","dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":42} \ No newline at end of file diff --git a/evm/out/BalancerV3SwapAdapter.t.sol/BalancerV3SwapAdapterTest.json b/evm/out/BalancerV3SwapAdapter.t.sol/BalancerV3SwapAdapterTest.json deleted file mode 100644 index e19d086..0000000 --- a/evm/out/BalancerV3SwapAdapter.t.sol/BalancerV3SwapAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ERC4626_sETHx","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockSETHx"}],"stateMutability":"view"},{"type":"function","name":"ERC4626_sGOETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockSGOETH"}],"stateMutability":"view"},{"type":"function","name":"ERC4626_sUSDC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockSUSDC"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_DIRECT","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_ERC20_WRAP_SWAP_UNWRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_DIRECT","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC4626_DIRECT","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_DIRECT","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_DIRECT","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC4626_DIRECT","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UnorderedNonceInvalidation","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"word","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mask","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AfterAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterInitializeHookFailed","inputs":[]},{"type":"error","name":"AfterRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterSwapHookFailed","inputs":[]},{"type":"error","name":"AllZeroInputs","inputs":[]},{"type":"error","name":"AllowanceExpired","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountGivenZero","inputs":[]},{"type":"error","name":"AmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmpUpdateAlreadyStarted","inputs":[]},{"type":"error","name":"AmpUpdateDurationTooShort","inputs":[]},{"type":"error","name":"AmpUpdateRateTooFast","inputs":[]},{"type":"error","name":"AmplificationFactorTooHigh","inputs":[]},{"type":"error","name":"AmplificationFactorTooLow","inputs":[]},{"type":"error","name":"AssetBoundsExceeded","inputs":[]},{"type":"error","name":"BalanceNotSettled","inputs":[]},{"type":"error","name":"BeforeAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeInitializeHookFailed","inputs":[]},{"type":"error","name":"BeforeRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeSwapHookFailed","inputs":[]},{"type":"error","name":"BptAmountInAboveMax","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BptAmountOutBelowMin","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BufferAlreadyInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferNotInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferSharesInvalidOwner","inputs":[]},{"type":"error","name":"BufferSharesInvalidReceiver","inputs":[]},{"type":"error","name":"BufferTotalSupplyTooLow","inputs":[{"name":"totalSupply","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CallerIsNotPoolCreator","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"CannotReceiveEth","inputs":[]},{"type":"error","name":"CannotSwapSameToken","inputs":[]},{"type":"error","name":"DoesNotSupportAddLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportDonation","inputs":[]},{"type":"error","name":"DoesNotSupportRemoveLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportUnbalancedLiquidity","inputs":[]},{"type":"error","name":"DynamicSwapFeeHookFailed","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ExcessiveInvalidation","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FeePrecisionTooHigh","inputs":[]},{"type":"error","name":"HookAdjustedAmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedAmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedSwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookRegistrationFailed","inputs":[{"name":"poolHooksContract","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolFactory","type":"address","internalType":"address"}]},{"type":"error","name":"InputLengthMismatch","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientEth","inputs":[]},{"type":"error","name":"InvalidAddLiquidityKind","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidRemoveLiquidityKind","inputs":[]},{"type":"error","name":"InvalidToken","inputs":[]},{"type":"error","name":"InvalidTokenConfiguration","inputs":[]},{"type":"error","name":"InvalidTokenDecimals","inputs":[]},{"type":"error","name":"InvalidTokenType","inputs":[]},{"type":"error","name":"InvalidUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"IssuedSharesBelowMin","inputs":[{"name":"issuedShares","type":"uint256","internalType":"uint256"},{"name":"minIssuedShares","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"MaxTokens","inputs":[]},{"type":"error","name":"MinTokens","inputs":[]},{"type":"error","name":"MinWeight","inputs":[]},{"type":"error","name":"MultipleNonZeroInputs","inputs":[]},{"type":"error","name":"NormalizedWeightInvariant","inputs":[]},{"type":"error","name":"NotEnoughBufferShares","inputs":[]},{"type":"error","name":"NotEnoughUnderlying","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedUnderlyingAmount","type":"uint256","internalType":"uint256"},{"name":"actualUnderlyingAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotEnoughWrapped","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedWrappedAmount","type":"uint256","internalType":"uint256"},{"name":"actualWrappedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotStaticCall","inputs":[]},{"type":"error","name":"NotVaultDelegateCall","inputs":[]},{"type":"error","name":"OnlyPauseGuardian","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"PauseBufferPeriodDurationTooLarge","inputs":[]},{"type":"error","name":"PercentageAboveMax","inputs":[]},{"type":"error","name":"PoolAddressMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolCreatorFeePercentageTooHigh","inputs":[]},{"type":"error","name":"PoolCreatorNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPauseWindowExpired","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"ProtocolFeesExceedTotalCollected","inputs":[]},{"type":"error","name":"ProtocolSwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"ProtocolYieldFeePercentageTooHigh","inputs":[]},{"type":"error","name":"QueriesDisabled","inputs":[]},{"type":"error","name":"QueriesDisabledPermanently","inputs":[]},{"type":"error","name":"QuoteResultSpoofed","inputs":[]},{"type":"error","name":"RouterNotTrusted","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotVault","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"StandardPoolWithCreator","inputs":[]},{"type":"error","name":"StaticATokenInvalidZeroShares","inputs":[]},{"type":"error","name":"SwapDeadline","inputs":[]},{"type":"error","name":"SwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"SwapFeePercentageTooLow","inputs":[]},{"type":"error","name":"SwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TokenAlreadyRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokenNotRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokensMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"expectedToken","type":"address","internalType":"address"},{"name":"actualToken","type":"address","internalType":"address"}]},{"type":"error","name":"TokensNotSorted","inputs":[]},{"type":"error","name":"TradeAmountTooSmall","inputs":[]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"VaultBuffersArePaused","inputs":[]},{"type":"error","name":"VaultIsNotUnlocked","inputs":[]},{"type":"error","name":"VaultNotPaused","inputs":[]},{"type":"error","name":"VaultPauseWindowDurationTooLarge","inputs":[]},{"type":"error","name":"VaultPauseWindowExpired","inputs":[]},{"type":"error","name":"VaultPaused","inputs":[]},{"type":"error","name":"VaultQueriesDisabled","inputs":[]},{"type":"error","name":"WeightedPoolBptRateUnsupported","inputs":[]},{"type":"error","name":"WrapAmountTooSmall","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"WrongProtocolFeeControllerDeployment","inputs":[]},{"type":"error","name":"WrongUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"underlyingToken","type":"address","internalType":"address"}]},{"type":"error","name":"WrongVaultAdminDeployment","inputs":[]},{"type":"error","name":"WrongVaultExtensionDeployment","inputs":[]}],"bytecode":{"object":"0x60806040523461051857610013602061051c565b5f8152610020602061051c565b5f8152600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b038211176102b157604052610062604061051c565b6002815261302560f01b6020820152815261007d604061051c565b6004815263302e312560e01b6020820152602082015261009d604061051c565b600381526235302560e81b602082015260408201526100bc604061051c565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610479575b50601f5f9081525f5160206201b8655f395f51905f52915b60048210610374575050825190506001600160401b0381116102b157610122602354610541565b601f8111610326575b50602092601f82116001146102c55761015c929382915f926101ed575b50508160011b915f199060031b1c19161790565b6023555b80516001600160401b0381116102b15761017b602454610541565b601f8111610258575b50602091601f82116001146101f8576101b2925f91836101ed5750508160011b915f199060031b1c19161790565b6024555b602680546001600160a01b03191673136f1efcc3f8f88516b9e94110d56fdbfb1778d11790556040516201b2d59081620005908239f35b015190505f80610148565b601f1982169260245f52805f20915f5b85811061024057508360019510610228575b505050811b016024556101b6565b01515f1960f88460031b161c191690555f808061021a565b91926020600181928685015181550194019201610208565b60245f526102a1907f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4601f840160051c810191602085106102a7575b601f0160051c0190610579565b5f610184565b9091508190610294565b634e487b7160e01b5f52604160045260245ffd5b601f1982169360235f52805f20915f5b86811061030e57508360019596106102f6575b505050811b01602355610160565b01515f1960f88460031b161c191690555f80806102e8565b919260206001819286850151815501940192016102d5565b60235f5261036e907fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f4230601f840160051c810191602085106102a757601f0160051c0190610579565b5f61012b565b80518051906001600160401b0382116102b1576103918554610541565b601f8111610449575b50602090601f83116001146103e057926103d1836001959460209487965f926101ed5750508160011b915f199060031b1c19161790565b86555b019301910190916100fb565b90601f19831691865f52815f20925f5b8181106104315750936020936001969387969383889510610419575b505050811b0186556103d4565b01515f1960f88460031b161c191690555f808061040c565b929360206001819287860151815501950193016103f0565b61047390865f5260205f20601f850160051c810191602086106102a757601f0160051c0190610579565b5f61039a565b601f5f525f5160206201b8655f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b8181106104bc57506100e3565b806104c960019254610541565b806104d6575b50016104af565b601f811183146104eb57505f81555b5f6104cf565b61050790825f5283601f60205f20920160051c82019101610579565b805f525f60208120818355556104e5565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102b157604052565b90600182811c9216801561056f575b602083101461055b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610550565b818110610584575050565b5f815560010161057956fe61016080604052600436101562000014575f80fd5b5f905f3560e01c90816306fdde03146200e61c5750806308c41745146200e5db578063095ea7b3146200e52d5780630a9254e4146200b3585780630bdca2c1146200aa3b5780630eed78c4146200a76257806318160ddd146200a7425780631e1685c0146200a7175780631ed7831c146200a69257806323b872dd146200a5a25780632ade3880146200a41c578063313ce567146200a3fe578063325a4265146200a2595780633e5e3c23146200a1d45780633f7286f4146200a14f5780633fbb8b681462009f5157806342f331481462009cfa5780634964eb1a14620092895780634c6b2e7e146200925e5780635090a8ce1462008f8557806356733b9114620087515780636181917e1462007ccb57806366d9a9a01462007b0557806367b4dbe714620071a457806370a082311462007168578063790a2a0b1462006e8f57806385226c811462006de85780638c15484614620063bb578063916a17c6146200610f57806395d89b41146200603157806396a2fce61462005d585780639a8ebd3614620052e35780639e8518b314620048b6578063a00872f1146200483f578063a9059cbb1462004807578063b5508aa91462004758578063ba414fa6146200472f578063c102053a14620044c3578063c700ea2e14620041ea578063cf18b43d1462003f11578063d170c3cc1462003c15578063d32913cc14620031d8578063d3a14f16146200291c578063d46cbfcd14620026c5578063d7ffd44d1462001c60578063d85792281462001c35578063dd62ed3e1462001bdc578063e198fb1814620008fc578063e20c9f711462000866578063f08985501462000560578063f3869e2414620002b75763fa7626d41462000290575f80fd5b34620002b45780600319360112620002b457602060ff601e54166040519015158152f35b80fd5b5034620002b4576020366003190112620002b45760295460275460255460405163549387df60e11b81525f5160206201b2605f395f51905f526004808301919091526001600160a01b03948516602483018190529385166044830181905290359594909392859183916064918391165afa9081156200051857906200034591859162000539575b506200eccd565b5184108062000527575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620004fb575b50909391604094855193620003b687866200e74e565b600185526020850190601f198801368337620003d2866200eccd565b52620003dd6200f38e565b602554875163155adc9160e31b81525f5160206201b2605f395f51905f5260048201526024810193909352604483019390935260806064830152935160848201819052909384926001600160a01b03169160a484019190855b818110620004de5750505083838281935003925af1928315620004d357508192620004aa575b50805b8251811015620004a65780620004846200047c600193866200ecec565b51516200f3e3565b6200049f60206200049683876200ecec565b5101516200f3e3565b016200045f565b5080f35b620004cb9192503d8084833e620004c281836200e74e565b8101906200eda6565b905f6200045c565b51913d9150823e3d90fd5b825184528896508795506020938401939092019160010162000436565b8162000507916200e74e565b6200051457825f620003a0565b8280fd5b6040513d86823e3d90fd5b8380fd5b5067016345785d8a000084116200034f565b6200055991503d8087833e6200055081836200e74e565b8101906200ec4a565b5f6200033e565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1405f395f51905f526024830152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca060448301523592918290829060649082906001600160a01b03165afa9081156200081557829162000848575b5062000607620006006200f047565b916200eccd565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162000824575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa80156200081557908291620007fc575b5050604091818351620006c085826200e74e565b600181526020810192601f198601368537620006dc826200eccd565b52620006e76200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620007df5750505083838281935003925af1928315620004d357508192620007bf575b50805b8251811015620004a65780620007a66200047c600193866200ecec565b620007b860206200049683876200ecec565b0162000789565b620007d79192503d8084833e620004c281836200e74e565b905f62000786565b825184528896508795506020938401939092019160010162000760565b8162000808916200e74e565b620002b457805f620006ac565b6040513d84823e3d90fd5b5080fd5b8162000830916200e74e565b6200082057815f62000659565b6040513d85823e3d90fd5b6200085f91503d8084833e6200055081836200e74e565b5f620005f1565b5034620002b45780600319360112620002b45760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110620008dc57620008d885620008cb818703826200e74e565b604051918291826200e7bf565b0390f35b82546001600160a01b0316845260209093019260019283019201620008b0565b5034620002b4576200090e366200e79e565b60295460275460255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201526001600160a01b03938416602482018190529284166044820181905295929492938792839183916064918391165afa9081156200081557829162001bbe575b50821562001bb6576001925b15620018365762000994906200ecdb565b5183108062001824575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762001807575b508060405160208101906370a0823160e01b82523060248201526024815262000a176044826200e74e565b5190865afa5062000a3b62000a2b62010eea565b602080825183010191016200eb28565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a9081600162000aa99301600e556200e912565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549062000aca620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a5260205260408920604051602081019062000b208162000b11888886620113bc565b03601f1981018352826200e74e565b5190208a5260205260ff600360408b2001541615620017f6575b6001600160a01b0384165f908152600d6020526040902090895260205262000b1162000b7660408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462000b9b81866200eb70565b620016cf578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa9687156200133857869762001690575b506001908201610100031b5f1901811b1986165f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206201b1205f395f51905f525af19081156200051857849162001677575b505062000c7b620115b6565b90159081156200166a575b5062001399575050505062000c9a6201218f565b848060405160208101906370a0823160e01b82523060248201526024815262000cc56044826200e74e565b5190865afa5062000cd962000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a9081600162000d2e9301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062000d4f620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a5260205260408920604051602081019062000d968162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562001645575b6001600160a01b0384165f908152600d6020526040902090895260205262000b1162000dec60408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462000e1181866200eb70565b620014eb575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa96871562001338578697620014ac575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529088901b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200148f575b50508562000ef6620115b6565b91901591821562001483575b505062001399575050505062000f176201218f565b60405163095ea7b360e01b81523060048201525f19602482015260208160448189885af18015620013385762001377575b5060255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448189885af18015620013385762001343575b506040516370a0823160e01b815230600482015293602085602481875afa94851562001338578695620012fe575b506040516370a0823160e01b815230600482015290602082602481845afa91821562001163578792620012c4575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f526004820152602481018790526044810183905293906001600160a01b03166002821015620012b0578460a4818b6080948660648401528a60848401525af1938415620012a55788946200126a575b506001036200116e576020602491604051928380926370a0823160e01b82523060048301525afa9081156200116357879162001124575b506024936200109f60209493620010a6936200ed98565b906200f32c565b5192604051928380926370a0823160e01b82523060048301525afa90811562000518578491620010e5575b506200109f90620010e2936200ed98565b80f35b90506020813d6020116200111b575b8162001103602093836200e74e565b81010312620011175751620010e2620010d1565b5f80fd5b3d9150620010f4565b929190506020833d6020116200115a575b8162001144602093836200e74e565b8101031262001117579151909190602462001088565b3d915062001135565b6040513d89823e3d90fd5b9394602060249296604051938480926370a0823160e01b82523060048301525afa918215620011635787926200122d575b506024936200109f60209493620011b6936200ed98565b5192604051928380926370a0823160e01b82523060048301525afa90811562000518578491620011f2575b50620010e2926200109f916200ed98565b90506020813d60201162001224575b8162001210602093836200e74e565b81010312620011175751620010e2620011e1565b3d915062001201565b9291506020833d60201162001261575b816200124c602093836200e74e565b8101031262001117579151909160246200119f565b3d91506200123d565b6001919450620012959060803d6080116200129d575b6200128c81836200e74e565b8101906200ed2c565b939062001051565b503d62001280565b6040513d8a823e3d90fd5b634e487b7160e01b89526021600452602489fd5b9091506020813d602011620012f5575b81620012e3602093836200e74e565b81010312620011175751905f62000fe3565b3d9150620012d4565b9094506020813d6020116200132f575b816200131d602093836200e74e565b81010312620011175751935f62000fb5565b3d91506200130e565b6040513d88823e3d90fd5b620013699060203d6020116200136f575b6200136081836200e74e565b8101906200eb56565b62000f87565b503d62001354565b620013939060203d6020116200136f576200136081836200e74e565b62000f48565b82945054905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f5160206201b1205f395f51905f525af1801562000815576200146a575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b620014778280926200e74e565b620002b4578062001409565b14159050865f62000f02565b816200149b916200e74e565b6200051457825f62000ee9565b8580fd5b955095506020853d602011620014e2575b81620014cc602093836200e74e565b8101031262001117579351948a94908162000e67565b3d9150620014bd565b90919250620014fb81856200eb70565b610100036101008111620016315760ff8111620016315760405163348051d760e11b8152600190911b600482018190528a826024815f5160206201b1205f395f51905f525afa918b83156200162557602093620015c09282606a9392620015fd575b90506040519586925f5160206201b2805f395f51905f52828501525f5160206201b1005f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018452836200e74e565b871015620015d357509088929162000e17565b60405162461bcd60e51b815260206004820152908190620015f99060248301906200e6f2565b0390fd5b6200161d92503d8091833e6200161481836200e74e565b8101906200eabe565b5f8e6200155d565b604051903d90823e3d90fd5b634e487b7160e01b8a52601160045260248afd5b6200164f6201185a565b5062000db0565b634e487b7160e01b86526041600452602486fd5b5f19141590505f62000c86565b8162001683916200e74e565b6200051457825f62000c6f565b955095506020853d602011620016c6575b81620016b0602093836200e74e565b8101031262001117579351948a94908162000bf0565b3d9150620016a1565b620016dc8491866200eb70565b610100036101008111620017e25760ff8111620017e25760405163348051d760e11b8152600190911b600482015281816024815f5160206201b1205f395f51905f525afa9081156200081557606a60209284620017a193620015f99692620017c2575b506040519485925f5160206201b2805f395f51905f52828501525f5160206201b1005f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018352826200e74e565b60405162461bcd60e51b81526020600482015291829160248301906200e6f2565b620017da9192503d8084833e6200161481836200e74e565b90866200173f565b634e487b7160e01b82526011600452602482fd5b620018006201185a565b5062000b3a565b8162001813916200e74e565b6200182057845f620009ec565b8480fd5b5067016345785d8a000083116200099e565b62001841906200eccd565b5183108062001ba4575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762001b8b575b508060405160208101906370a0823160e01b825230602482015260248152620018c46044826200e74e565b5190865afa50620018d862000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a908160016200192d9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200194e620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620019958162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562001b7a575b6001600160a01b0384165f908152600d6020526040902090895260205262000b11620019eb60408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462001a1081866200eb70565b620016cf578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa9687156200133857869762001b3b575b506001908201610100031b5f1901811b1986165f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206201b1205f395f51905f525af19081156200051857849162001b22575b505062001af0620115b6565b901590811562001b15575b5062001399575050505062001b0f6201218f565b62000c9a565b5f19141590505f62001afb565b8162001b2e916200e74e565b6200051457825f62001ae4565b955095506020853d60201162001b71575b8162001b5b602093836200e74e565b8101031262001117579351948a94908162001a65565b3d915062001b4c565b62001b846201185a565b50620019af565b8162001b97916200e74e565b6200182057845f62001899565b5067016345785d8a000083116200184b565b819262000983565b62001bd591503d8084833e6200055081836200e74e565b5f62000977565b5034620002b4576040366003190112620002b457604062001bfc6200e770565b9162001c076200e787565b9260018060a01b031681526021602052209060018060a01b03165f52602052602060405f2054604051908152f35b5034620002b45780600319360112620002b4576027546040516001600160a01b039091168152602090f35b5034620002b45762001c72366200e79e565b15620026be5760015b60255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201525f5160206201b2205f395f51905f526044820152908490829060649082906001600160a01b03165afa90811562000518578491620026a0575b5060028210156200268c57836001831491825f14620025f55762001d10906200ecdb565b51841080620024ef575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa80156200081557620024d6575b50505b838060405160208101906370a0823160e01b82523060248201526024815262001d966044826200e74e565b51905f5160206201b1605f395f51905f525afa5062001db862000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c2579062001e1462000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062001e35620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019062001e7c8162000b11888886620113bc565b519020875260205260ff60036040882001541615620024b1575b6001600160a01b0384165f908152600d6020526040902090865260205262000b1162001ed26040872093604051928391602083019586620113bc565b51902084526020526040832090600182015491600281015462001ef681856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a557889662002465575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162002448575b505062001fd6620115b6565b90159081156200243b575b50620023e65750505062001ff46201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1605f395f51905f525af180156200083d57620023c4575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1605f395f51905f525afa9485156200083d57839562002387575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b2205f395f51905f525afa928315620005185784936200234a575b50608060409583620020e68851620020d18a826200e74e565b60018152601f198a013660208301376200eccd565b526025548751638307c65560e01b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201525f5160206201b2205f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462002324575b5015620022505783516370a0823160e01b81523060048201526020816024815f5160206201b2205f395f51905f525afa908115620022465787916200220b575b50620021b6926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b513d86823e3d90fd5b90506020813d6020116200223d575b8162002229602093836200e74e565b81010312620011175751620021b6620021a5565b3d91506200221a565b85513d89823e3d90fd5b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1605f395f51905f525afa90811562002246578791620022e9575b506200109f906200229d936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2205f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d6020116200231b575b8162002307602093836200e74e565b810103126200111757516200229d6200228c565b3d9150620022f8565b6200234291945060803d6080116200129d576200128c81836200e74e565b925f62002165565b935091506020833d6020116200237e575b816200236a602093836200e74e565b810103126200111757859251915f620020b8565b3d91506200235b565b925093506020823d602011620023bb575b81620023a7602093836200e74e565b810103126200111757849151935f6200207c565b3d915062002398565b620023e09060203d6020116200136f576200136081836200e74e565b62002040565b8492935054905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b5f19141590505f62001fe1565b8162002454916200e74e565b6200182057845f62001fca565b8780fd5b975094506020873d6020116200249b575b8162002485602093836200e74e565b8101031262001117579551899690948162001f4b565b3d915062002476565b620016dc8691856200eb70565b620024bb6201185a565b5062001e96565b634e487b7160e01b85526041600452602485fd5b81620024e2916200e74e565b6200052357835f62001d68565b505060405163313ce56760e01b81526020816004815f5160206201b2205f395f51905f525afa8015620025ea578590620025a6575b60ff91501680600682116200257e575b600c811162002569575b50604d811162002555578490600a0a841162001d1a565b634e487b7160e01b85526011600452602485fd5b60021981019150811162002555575f6200253e565b905f19810190811162002592579062002534565b634e487b7160e01b86526011600452602486fd5b506020813d602011620025e1575b81620025c3602093836200e74e565b8101031262001820575160ff81168103620018205760ff9062002524565b3d9150620025b4565b6040513d87823e3d90fd5b62002600906200eccd565b5184108062002679575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762002660575b505062001d6b565b816200266c916200e74e565b6200052357835f62002658565b50620026846200f1c5565b84116200260a565b634e487b7160e01b84526021600452602484fd5b620026b791503d8086833e6200055081836200e74e565b5f62001cec565b8162001c7b565b5034620002b4576020366003190112620002b45760285460255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201526001600160a01b03928316602482018190525f5160206201b2405f395f51905f52604483015293929091839183916064918391165afa90811562000815578291620028fe575b5062002758620006006004356200f52f565b5181105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620028e5575b50509181604093845190620027c086836200e74e565b600182526020820190601f198701368337620027dc836200eccd565b52620027e76200f38e565b602554865163155adc9160e31b81525f5160206201b1805f395f51905f52600482015260248101959095525f5160206201b2405f395f51905f5260448601526080606486015291516084850181905284926001600160a01b03169160a4840191855b818110620028c85750505083838281935003925af1928315620004d357508192620028a8575b50805b8251811015620004a657806200288f6200047c600193866200ecec565b620028a160206200049683876200ecec565b0162002872565b620028c09192503d8084833e620004c281836200e74e565b905f6200286f565b825184528896508795506020938401939092019160010162002849565b81620028f1916200e74e565b6200082057815f620027aa565b6200291591503d8084833e6200055081836200e74e565b5f62002746565b5034620002b4576200292e366200e79e565b15620031d15760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f526044820152908490829060649082906001600160a01b03165afa90811562000518578491620031b3575b5060028210156200268c57836001831491825f146200311c57620029cc906200ecdb565b5184108062003109575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa80156200081557620030f0575b50505b838060405160208101906370a0823160e01b82523060248201526024815262002a526044826200e74e565b51905f5160206201b2405f395f51905f525afa5062002a7462000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2405f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c2579062002ad062000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062002af1620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019062002b388162000b11888886620113bc565b519020875260205260ff60036040882001541615620030df575b6001600160a01b0384165f908152600d6020526040902090865260205262000b1162002b8e6040872093604051928391602083019586620113bc565b51902084526020526040832090600182015491600281015462002bb281856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a5578896620030a0575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162003087575b505062002c92620115b6565b90159081156200307a575b50620023e65750505062002cb06201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b2405f395f51905f525af180156200083d5762003058575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b2405f395f51905f525afa9485156200083d5783956200301b575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1e05f395f51905f525afa9283156200051857849362002fde575b5060806040958362002d8d8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462002fb8575b501562002ee45783516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9081156200224657879162002ea9575b5062002e5d926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162002edb575b8162002ec7602093836200e74e565b8101031262001117575162002e5d62002e4c565b3d915062002eb8565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b2405f395f51905f525afa9081156200224657879162002f7d575b506200109f9062002f31936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162002faf575b8162002f9b602093836200e74e565b8101031262001117575162002f3162002f20565b3d915062002f8c565b62002fd691945060803d6080116200129d576200128c81836200e74e565b925f62002e0c565b935091506020833d60201162003012575b8162002ffe602093836200e74e565b810103126200111757859251915f62002d74565b3d915062002fef565b925093506020823d6020116200304f575b816200303b602093836200e74e565b810103126200111757849151935f62002d38565b3d91506200302c565b620030749060203d6020116200136f576200136081836200e74e565b62002cfc565b5f19141590505f62002c9d565b8162003093916200e74e565b6200182057845f62002c86565b975094506020873d602011620030d6575b81620030c0602093836200e74e565b8101031262001117579551899690948162002c07565b3d9150620030b1565b620030e96201185a565b5062002b52565b81620030fc916200e74e565b6200052357835f62002a24565b50620031146200f21f565b8411620029d6565b62003127906200eccd565b51841080620031a0575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762003187575b505062002a27565b8162003193916200e74e565b6200052357835f6200317f565b50620031ab6200f21f565b841162003131565b620031ca91503d8086833e6200055081836200e74e565b5f620029a8565b8162002937565b5034620002b457606490620031ed366200e79e565b1562003c0e5760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d57839462003bee575b50600281101562003bda576001811493841562003b405762003287906200ecdb565b5182108062003b2d575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162003b14575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa9485156200051857849562003ada575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200335a6044826200e74e565b51905f5160206201b1405f395f51905f525afa506200337c62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a90816001620033d69301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620033f7620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906200343e8162000b11888886620113bc565b519020895260205260ff600360408a200154161562003ab5575b6001600160a01b0384165f908152600d6020526040902090885260205262000b11620034946040892093604051928391602083019586620113bc565b51902086526020526040852090600182015491600281015497620034b989856200eb70565b62003977575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200392d575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162003910575b5050620035a2620115b6565b91901591821562003904575b5050620023e657505050620035c26201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d57620038e2575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d578395620038a5575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1e05f395f51905f525afa9283156200051857849362003868575b506080604095836200369f8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462003842575b5015620037f65783516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa90811562002246578791620037bb575b506200376f926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d602011620037ed575b81620037d9602093836200e74e565b810103126200111757516200376f6200375e565b3d9150620037ca565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162002f7d57506200109f9062002f31936200ed98565b6200386091945060803d6080116200129d576200128c81836200e74e565b925f6200371e565b935091506020833d6020116200389c575b8162003888602093836200e74e565b810103126200111757859251915f62003686565b3d915062003879565b925093506020823d602011620038d9575b81620038c5602093836200e74e565b810103126200111757849151935f6200364a565b3d9150620038b6565b620038fe9060203d6020116200136f576200136081836200e74e565b6200360e565b141590505f80620035ae565b816200391c916200e74e565b620014a857855f62003596565b8880fd5b985095506020883d60201162003963575b816200394d602093836200e74e565b81010312620011175796518a9790958162003514565b3d91506200393e565b6040513d8b823e3d90fd5b6200398389856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62003a45928d9162003a78575b506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a55579850620034bf565b60405162461bcd60e51b81526020600482015280620015f9602482018d6200e6f2565b62003a8f91503d808f833e6200161481836200e74e565b5f620039e3565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b62003abf6201185a565b5062003458565b634e487b7160e01b84526011600452602484fd5b9094506020813d60201162003b0b575b8162003af9602093836200e74e565b81010312620011175751935f6200331a565b3d915062003aea565b8162003b20916200e74e565b6200051457825f620032e2565b5062003b386200f279565b821162003291565b62003b4b906200eccd565b5182108062003bc7575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162003bae575b5050620032e5565b8162003bba916200e74e565b6200051457825f62003ba6565b5062003bd26200f047565b821162003b55565b634e487b7160e01b83526021600452602483fd5b62003c069194503d8085833e6200055081836200e74e565b925f62003265565b81620031f6565b5034620002b4576040366003190112620002b4576004356001600160a01b038116908181036200051457602435926001600160401b038411620002b45736602385011215620002b45783600401359362003c6f856200ea1a565b9462003c7f60405196876200e74e565b8086526024602087019160051b830101913683116200052357602401905b82821062003f005750505062003cb3846200eccd565b51604051906348bd7dfd60e01b82526004820152816024820152816044820152818160648183885af190811562000815579062003cf991839162003ed9575b506200f54c565b1593815b815181101562003ed55762003d1381836200ecec565b516040519063ecbbc03360e01b825260048201528381602481838a5af19081156200051857908791859162003e07575b506001929162003e009162003d6d896001600160a01b0362003d65846200eccd565b51166200f609565b62003d8389868060a01b0362003d65846200ecdb565b62003dc38262003d9486896200ecec565b51878060a01b0362003da6856200eccd565b5116888060a01b0362003db9866200ecdb565b5116918c6200f760565b62003dcf84876200ecec565b5190858060a01b0362003de2826200ecdb565b51169062003df6878060a01b03916200eccd565b511691896200f760565b0162003cfd565b9150503d8085833e62003e1b81836200e74e565b81019060208183031262001820578051906001600160401b038211620014a857019080601f83011215620018205781519062003e57826200ea1a565b9262003e6760405194856200e74e565b82845260208085019360051b82010191821162003ed1579060208a94939201915b81831062003e9b57505050600162003d43565b825195999793959294509092916001600160a01b0381168103620005145781602092918392520193019095979391899362003e88565b8680fd5b8280f35b62003ef991503d8085833e62003ef081836200e74e565b8101906200efb9565b5f62003cf2565b813581526020918201910162003c9d565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1a05f395f51905f5260248301525f5160206201b1405f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815578291620041cc575b5062003fab620006006200f111565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620041b3575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200419a575b50506040918183516200406485826200e74e565b600181526020810192601f19860136853762004080826200eccd565b526200408b6200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b8181106200417d5750505083838281935003925af1928315620004d3575081926200415d575b50805b8251811015620004a65780620041446200047c600193866200ecec565b6200415660206200049683876200ecec565b0162004127565b620041759192503d8084833e620004c281836200e74e565b905f62004124565b8251845288965087955060209384019390920191600101620040fe565b81620041a6916200e74e565b620002b457805f62004050565b81620041bf916200e74e565b6200082057815f62003ffd565b620041e391503d8084833e6200055081836200e74e565b5f62003f9c565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1405f395f51905f5260248301525f5160206201b1a05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815578291620044a5575b5062004284620006006200f047565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d579083916200448c575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162004473575b50506040918183516200433d85826200e74e565b600181526020810192601f19860136853762004359826200eccd565b52620043646200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620044565750505083838281935003925af1928315620004d35750819262004436575b50805b8251811015620004a657806200441d6200047c600193866200ecec565b6200442f60206200049683876200ecec565b0162004400565b6200444e9192503d8084833e620004c281836200e74e565b905f620043fd565b8251845288965087955060209384019390920191600101620043d7565b816200447f916200e74e565b620002b457805f62004329565b8162004498916200e74e565b6200082057815f620042d6565b620044bc91503d8084833e6200055081836200e74e565b5f62004275565b5034620002b4576020366003190112620002b45760275460255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091526001600160a01b03938416602483018190525f5160206201b1605f395f51905f5260448401529493903592849183916064918391165afa9081156200083d5790620045559184916200471857506200eccd565b5181108062004704575b5f5160206201b1205f395f51905f523b156200051457604051632631f2b160e11b8152901515600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620046eb575b50509181604093845190620045c686836200e74e565b600182526020820190601f198701368337620045e2836200eccd565b52620045ed6200f38e565b602554865163155adc9160e31b81525f5160206201b2605f395f51905f52600482015260248101959095525f5160206201b1605f395f51905f5260448601526080606486015291516084850181905284926001600160a01b03169160a4840191855b818110620046ce5750505083838281935003925af1928315620004d357508192620046ae575b50805b8251811015620004a65780620046956200047c600193866200ecec565b620046a760206200049683876200ecec565b0162004678565b620046c69192503d8084833e620004c281836200e74e565b905f62004675565b82518452889650879550602093840193909201916001016200464f565b81620046f7916200e74e565b6200082057815f620045b0565b5062004710836200f2d3565b81116200455f565b6200055991503d8086833e6200055081836200e74e565b5034620002b45780600319360112620002b45760206200474e6200ef13565b6040519015158152f35b5034620002b45780600319360112620002b45760195462004779816200ea1a565b916200478960405193846200e74e565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310620047d65760405160208082528190620008d8908201886200e803565b600160208192604051620047f881620047f081896200e993565b03826200e74e565b815201920192019190620047b6565b5034620002b4576040366003190112620002b45762004834620048296200e770565b60243590336200f437565b602060405160018152f35b5034620002b4576020366003190112620002b457600435601f5481101562000820576200486c906200e93f565b919091620048a257604051620008d8906200488d81620047f081876200e993565b6040519182916020835260208301906200e6f2565b634e487b7160e01b81526004819052602490fd5b5034620002b457606490620048cb366200e79e565b15620052dc5760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d578394620052bc575b50600281101562003bda5760018114938415620052225762004965906200ecdb565b518210806200520f575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620051f6575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1e05f395f51905f525afa94851562000518578495620051bc575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b82523060248201526024815262004a386044826200e74e565b51905f5160206201b1e05f395f51905f525afa5062004a5a62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a9081600162004ab49301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062004ad5620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019062004b1c8162000b11888886620113bc565b519020895260205260ff600360408a2001541615620051ab575b6001600160a01b0384165f908152600d6020526040902090885260205262000b1162004b726040892093604051928391602083019586620113bc565b5190208652602052604085209060018201549160028101549762004b9789856200eb70565b620050ce575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200508f575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162005076575b505062004c80620115b6565b9190159182156200506a575b5050620023e65750505062004ca06201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1e05f395f51905f525af180156200083d5762005048575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1e05f395f51905f525afa9485156200083d5783956200500b575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1405f395f51905f525afa9283156200051857849362004fce575b5060806040958362004d7d8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462004fa8575b501562004ed45783516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9081156200224657879162004e99575b5062004e4d926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162004ecb575b8162004eb7602093836200e74e565b8101031262001117575162004e4d62004e3c565b3d915062004ea8565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1e05f395f51905f525afa9081156200224657879162004f6d575b506200109f9062004f21936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162004f9f575b8162004f8b602093836200e74e565b8101031262001117575162004f2162004f10565b3d915062004f7c565b62004fc691945060803d6080116200129d576200128c81836200e74e565b925f62004dfc565b935091506020833d60201162005002575b8162004fee602093836200e74e565b810103126200111757859251915f62004d64565b3d915062004fdf565b925093506020823d6020116200503f575b816200502b602093836200e74e565b810103126200111757849151935f62004d28565b3d91506200501c565b620050649060203d6020116200136f576200136081836200e74e565b62004cec565b141590505f8062004c8c565b8162005082916200e74e565b620014a857855f62004c74565b985095506020883d602011620050c5575b81620050af602093836200e74e565b81010312620011175796518a9790958162004bf2565b3d9150620050a0565b620050da89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c6200519b928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a5557985062004b9d565b620051b56201185a565b5062004b36565b9094506020813d602011620051ed575b81620051db602093836200e74e565b81010312620011175751935f620049f8565b3d9150620051cc565b8162005202916200e74e565b6200051457825f620049c0565b506200521a6200f047565b82116200496f565b6200522d906200eccd565b51821080620052a9575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162005290575b5050620049c3565b816200529c916200e74e565b6200051457825f62005288565b50620052b46200f279565b821162005237565b620052d49194503d8085833e6200055081836200e74e565b925f62004943565b81620048d4565b5034620002b457606490620052f8366200e79e565b929080841562005d46575064174876e80062989680620053189262010f29565b62005371816200536b604051620053316040826200e74e565b600c81526b109bdd5b990814995cdd5b1d60a21b602082015262000b11604051938492632d839cb360e21b6020850152602484016200eb38565b6201246d565b6027546001600160a01b0316931562005d3e576001905b60255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201526044810187905293859185919082906001600160a01b03165afa9283156200051857849362005d1e575b5060028210156200268c576001821492831562005ca0576200540c906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162005c87575b50505b6040516318160ddd60e01b8152946020866004815f5160206201b1605f395f51905f525afa958615620025ea57859662005c4d575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b825230602482015260248152620054d66044826200e74e565b51905f5160206201b1605f395f51905f525afa50620054f862000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620055529301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062005573620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620055ba8162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562005c3c575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200561060408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620056358a856200eb70565b62005b18575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a98998b9990956020876044815f5160206201b1205f395f51905f525afa96871562005b0d578b9762005ace575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562005aca576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528881606481835f5160206201b1205f395f51905f525af19081156200396c57899162005ab1575b50506200571d620115b6565b91901591821562005aa5575b505062005a4f575050506200573d6201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481885f5160206201b1605f395f51905f525af18015620025ea5762005a2d575b506040516370a0823160e01b8152306004820152946020866024815f5160206201b1605f395f51905f525afa958615620025ea578596620059f0575b506040516370a0823160e01b815230600482015293602085602481865afa94851562001338578695620059b1575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f526024820152604481018590526064810192909252608482018590529095608091879160a4918391906001600160a01b03165af1948515620011635787956200598b575b501562005936576020602491604051928380926370a0823160e01b82523060048301525afa90811562001338578691620058fb575b50620058b0926200109f916200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa90811562000518578491620010e557506200109f90620010e2936200ed98565b90506020813d6020116200592d575b8162005919602093836200e74e565b81010312620011175751620058b06200589f565b3d91506200590a565b92909193604051906370a0823160e01b82523060048301526020826024815f5160206201b1605f395f51905f525afa918215620011635787926200122d57506024936200109f60209493620011b6936200ed98565b620059a991955060803d6080116200129d576200128c81836200e74e565b935f6200586a565b955093506020853d602011620059e7575b81620059d1602093836200e74e565b81010312620011175760808795519490620057f3565b3d9150620059c2565b945094506020843d60201162005a24575b8162005a10602093836200e74e565b810103126200111757859351945f620057c5565b3d915062005a01565b62005a499060203d6020116200136f576200136081836200e74e565b62005789565b869291839154905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b141590505f8062005729565b8162005abd916200e74e565b6200246157875f62005711565b8a80fd5b9a50955060208a3d60201162005b04575b8162005aee602093836200e74e565b81010312620011175798518b999095816200568f565b3d915062005adf565b6040513d8d823e3d90fd5b62005b248a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c62005c1c575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d5262005be9908d6200e74e565b82101562005bf95799506200563b565b60405162461bcd60e51b81526020600482015280620015f9602482018e6200e6f2565b62005c34919c503d808d833e6200161481836200e74e565b9a5f62005b7a565b62005c466201185a565b50620055d4565b9095506020813d60201162005c7e575b8162005c6c602093836200e74e565b81010312620011175751945f62005496565b3d915062005c5d565b8162005c93916200e74e565b6200052357835f6200545e565b62005cab906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162005d05575b505062005461565b8162005d11916200e74e565b6200052357835f62005cfd565b62005d369193503d8086833e6200055081836200e74e565b915f620053ea565b829062005388565b62005d5291506200f4f7565b62005371565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b1e05f395f51905f5260248301525f5160206201b1405f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557829162006013575b5062005df2620006006200f279565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162005ffa575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162005fe1575b505060409181835162005eab85826200e74e565b600181526020810192601f19860136853762005ec7826200eccd565b5262005ed26200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b81811062005fc45750505083838281935003925af1928315620004d35750819262005fa4575b50805b8251811015620004a6578062005f8b6200047c600193866200ecec565b62005f9d60206200049683876200ecec565b0162005f6e565b62005fbc9192503d8084833e620004c281836200e74e565b905f62005f6b565b825184528896508795506020938401939092019160010162005f45565b8162005fed916200e74e565b620002b457805f62005e97565b8162006006916200e74e565b6200082057815f62005e44565b6200602a91503d8084833e6200055081836200e74e565b5f62005de3565b5034620002b45780600319360112620002b45760405190806024549062006058826200e958565b8085529160018116908115620060e6575060011462006085575b620008d8846200488d818603826200e74e565b602481527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4939250905b808210620060cb575090915081016020016200488d8262006072565b919260018160209254838588010152019101909291620060af565b60ff191660208087019190915292151560051b850190920192506200488d915083905062006072565b5034620002b45780600319360112620002b457601c5462006130816200ea1a565b906200614060405192836200e74e565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310620061865760405180620008d887826200e85f565b60405162006194816200e716565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106200631b57846001979460029794602097946200622a945491818110620062fe575b818110620062e1575b818110620062c4575b818110620062a7575b8181106200628a575b8181106200626d575b81811062006252575b106200623d575b5003826200e74e565b838201528152019201920191906200616e565b6001600160e01b031916815286015f62006221565b828a1b6001600160e01b0319168452928901928b016200621a565b604083901b6001600160e01b0319168452928901928b0162006211565b606083901b6001600160e01b0319168452928901928b0162006208565b608083901b6001600160e01b0319168452928901928b01620061ff565b60a083901b6001600160e01b0319168452928901928b01620061f6565b60c083901b6001600160e01b0319168452928901928b01620061ed565b60e083901b6001600160e01b0319168452928901928b01620061e4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191620061bc565b5034620002b457606490620063d0366200e79e565b1562006de15760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d57839462006dc1575b50600281101562003bda576001811493841562006d27576200646a906200ecdb565b5182108062006d14575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162006cfb575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b2005f395f51905f525afa9485156200051857849562006cc1575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200653d6044826200e74e565b51905f5160206201b2005f395f51905f525afa506200655f62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2005f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c25762000a90816001620065b99301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620065da620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190620066218162000b11888886620113bc565b519020895260205260ff600360408a200154161562006cb0575b6001600160a01b0384165f908152600d6020526040902090885260205262000b11620066776040892093604051928391602083019586620113bc565b519020865260205260408520906001820154916002810154976200669c89856200eb70565b62006bd3575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c57899762006b94575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162006b7b575b505062006785620115b6565b91901591821562006b6f575b5050620023e657505050620067a56201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b2005f395f51905f525af180156200083d5762006b4d575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b2005f395f51905f525afa9485156200083d57839562006b10575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1a05f395f51905f525afa9283156200051857849362006ad3575b50608060409583620068828851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462006aad575b5015620069d95783516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa908115620022465787916200699e575b5062006952926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2005f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d602011620069d0575b81620069bc602093836200e74e565b810103126200111757516200695262006941565b3d9150620069ad565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b2005f395f51905f525afa9081156200224657879162006a72575b506200109f9062006a26936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162006aa4575b8162006a90602093836200e74e565b8101031262001117575162006a2662006a15565b3d915062006a81565b62006acb91945060803d6080116200129d576200128c81836200e74e565b925f62006901565b935091506020833d60201162006b07575b8162006af3602093836200e74e565b810103126200111757859251915f62006869565b3d915062006ae4565b925093506020823d60201162006b44575b8162006b30602093836200e74e565b810103126200111757849151935f6200682d565b3d915062006b21565b62006b699060203d6020116200136f576200136081836200e74e565b620067f1565b141590505f8062006791565b8162006b87916200e74e565b620014a857855f62006779565b985095506020883d60201162006bca575b8162006bb4602093836200e74e565b81010312620011175796518a97909581620066f7565b3d915062006ba5565b62006bdf89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62006ca0928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a55579850620066a2565b62006cba6201185a565b506200663b565b9094506020813d60201162006cf2575b8162006ce0602093836200e74e565b81010312620011175751935f620064fd565b3d915062006cd1565b8162006d07916200e74e565b6200051457825f620064c5565b5062006d1f6200f111565b821162006474565b62006d32906200eccd565b5182108062006dae575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162006d95575b5050620064c8565b8162006da1916200e74e565b6200051457825f62006d8d565b5062006db96200f16b565b821162006d3c565b62006dd99194503d8085833e6200055081836200e74e565b925f62006448565b81620063d9565b5034620002b45780600319360112620002b457601a5462006e09816200ea1a565b9162006e1960405193846200e74e565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831062006e665760405160208082528190620008d8908201886200e803565b60016020819260405162006e8081620047f081896200e993565b81520192019201919062006e46565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b1405f395f51905f5260248301525f5160206201b1e05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa908115620008155782916200714a575b5062006f29620006006200f047565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162007131575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162007118575b505060409181835162006fe285826200e74e565b600181526020810192601f19860136853762006ffe826200eccd565b52620070096200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620070fb5750505083838281935003925af1928315620004d357508192620070db575b50805b8251811015620004a65780620070c26200047c600193866200ecec565b620070d460206200049683876200ecec565b01620070a5565b620070f39192503d8084833e620004c281836200e74e565b905f620070a2565b82518452889650879550602093840193909201916001016200707c565b8162007124916200e74e565b620002b457805f62006fce565b816200713d916200e74e565b6200082057815f62006f7b565b6200716191503d8084833e6200055081836200e74e565b5f62006f1a565b5034620002b4576020366003190112620002b4576020906040906001600160a01b03620071946200e770565b1681528280522054604051908152f35b5034620002b457606490620071b9366200e79e565b929080841562007af25750620071cf906200f52f565b925b6028546001600160a01b0316901562007aea576001935b60255460405163549387df60e11b81525f5160206201b1805f395f51905f526004820152602481018490525f5160206201b2405f395f51905f52604482015293859185919082906001600160a01b03165afa9283156200051857849362007aca575b5060028510156200268c576001851492831562007a4c576200726c906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162007a33575b50505b6040516318160ddd60e01b815294602086600481865afa958615620025ea578596620079f9575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b825230602482015260248152620073286044826200e74e565b5190865afa506200733c62000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620073919301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620073b2620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620073f98162000b11888886620113bc565b5190208a5260205260ff600360408b2001541615620079e8575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200744f60408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620074748a856200eb70565b620078e7575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a9899979896978b9790956020876044815f5160206201b1205f395f51905f525afa9687156200396c578997620078a8575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af1908115620011635787916200788f575b505062007560620115b6565b91901591821562007883575b5050620023e657505050620075806201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448186895af180156200083d5762007861575b506040516370a0823160e01b815230600482015294602086602481885afa9586156200083d57839662007824575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b2405f395f51905f525afa92831562000518578493620077e5575b50602554604051638307c65560e01b81525f5160206201b1805f395f51905f526004820152602481018890525f5160206201b2405f395f51905f5260448201526064810192909252608482018690529093608091859160a4918391906001600160a01b03165af192831562001163578793620077bf575b5015620076f6576040516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa908115620011635787916200112457506024936200109f60209493620010a6936200ed98565b939190926020602491604051928380926370a0823160e01b82523060048301525afa9081156200133857869162007784575b506200109f9062007739936200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa90811562000518578491620011f25750620010e2926200109f916200ed98565b90506020813d602011620077b6575b81620077a2602093836200e74e565b810103126200111757516200773962007728565b3d915062007793565b620077dd91935060803d6080116200129d576200128c81836200e74e565b915f6200769f565b935091506020833d6020116200781b575b8162007805602093836200e74e565b8101031262001117576080879351929062007628565b3d9150620077f6565b925094506020823d60201162007858575b8162007844602093836200e74e565b810103126200111757859151945f620075ec565b3d915062007835565b6200787d9060203d6020116200136f576200136081836200e74e565b620075be565b141590505f806200756c565b816200789b916200e74e565b620014a857855f62007554565b985095506020883d602011620078de575b81620078c8602093836200e74e565b81010312620011175796518b97909581620074d2565b3d9150620078b9565b620078f38a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c620079c8575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d52620079b8908d6200e74e565b82101562005bf95799506200747a565b620079e0919c503d808d833e6200161481836200e74e565b9a5f62007949565b620079f26201185a565b5062007413565b9095506020813d60201162007a2a575b8162007a18602093836200e74e565b81010312620011175751945f620072e8565b3d915062007a09565b8162007a3f916200e74e565b6200052357835f620072be565b62007a57906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162007ab1575b5050620072c1565b8162007abd916200e74e565b6200052357835f62007aa9565b62007ae29193503d8086833e6200055081836200e74e565b915f6200724a565b8293620071e8565b62007afe91506200f52f565b92620071d1565b5034620002b45780600319360112620002b457601b5462007b26816200ea1a565b9062007b3660405192836200e74e565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b83831062007b7c5760405180620008d887826200e85f565b60405162007b8a816200e716565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011062007c2b578460019794600297946020979462007c18945491818110620062fe57818110620062e157818110620062c457818110620062a7578181106200628a578181106200626d578181106200625257106200623d575003826200e74e565b8382015281520192019201919062007b64565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019162007bb2565b5034620002b45760649062007ce0366200e79e565b156200874a5760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0604482015294849186919082906001600160a01b03165afa9384156200083d5783946200872a575b50600281101562003bda5760018114938415620086905762007d80906200ecdb565b51821080620085ba575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620085a1575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa9485156200051857849562008567575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b82523060248201526024815262007e536044826200e74e565b51905f5160206201b1405f395f51905f525afa5062007e7562000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a9081600162007ecf9301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062007ef0620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019062007f378162000b11888886620113bc565b519020895260205260ff600360408a200154161562008556575b6001600160a01b0384165f908152600d6020526040902090885260205262000b1162007f8d6040892093604051928391602083019586620113bc565b5190208652602052604085209060018201549160028101549762007fb289856200eb70565b62008479575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200843a575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162008421575b50506200809b620115b6565b91901591821562008415575b5050620023e657505050620080bb6201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d57620083f3575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d578395620083b6575b506040516370a0823160e01b815230600482015291602083602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9283156200051857849362008379575b506080604095836200819e8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca060448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462008353575b5015620082795783516370a0823160e01b8152306004820152602081602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa90811562002246578791620037bb57506200376f926200109f916200ed98565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162008318575b506200109f90620082c6936200ed98565b519080516370a0823160e01b8152306004820152602081602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d6020116200834a575b8162008336602093836200e74e565b81010312620011175751620082c6620082b5565b3d915062008327565b6200837191945060803d6080116200129d576200128c81836200e74e565b925f62008223565b935091506020833d602011620083ad575b8162008399602093836200e74e565b810103126200111757859251915f62008185565b3d91506200838a565b925093506020823d602011620083ea575b81620083d6602093836200e74e565b810103126200111757849151935f62008143565b3d9150620083c7565b6200840f9060203d6020116200136f576200136081836200e74e565b62008107565b141590505f80620080a7565b816200842d916200e74e565b620014a857855f6200808f565b985095506020883d60201162008470575b816200845a602093836200e74e565b81010312620011175796518a979095816200800d565b3d91506200844b565b6200848589856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62008546928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a5557985062007fb8565b620085606201185a565b5062007f51565b9094506020813d60201162008598575b8162008586602093836200e74e565b81010312620011175751935f62007e13565b3d915062008577565b81620085ad916200e74e565b6200051457825f62007ddb565b5060405163313ce56760e01b8152602081600481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa8015620005185784906200864c575b60ff915016806006821162008638575b600c811162008623575b50604d811162003ac657600a0a821162007d8a565b60021981019150811162003ac6575f6200860e565b905f19810190811162002555579062008604565b506020813d60201162008687575b8162008669602093836200e74e565b8101031262000523575160ff81168103620005235760ff90620085f4565b3d91506200865a565b6200869b906200eccd565b5182108062008717575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620086fe575b505062007dde565b816200870a916200e74e565b6200051457825f620086f6565b50620087226200f047565b8211620086a5565b620087429194503d8085833e6200055081836200e74e565b925f62007d5e565b8162007ce9565b5034620002b45762008763366200e79e565b1562008f7e5760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f526044820152908490829060649082906001600160a01b03165afa9081156200051857849162008f60575b5060028210156200268c57836001831491825f1462008ec95762008801906200ecdb565b5184108062008eb6575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762008e9d575b50505b838060405160208101906370a0823160e01b825230602482015260248152620088876044826200e74e565b51905f5160206201b1a05f395f51905f525afa50620088a962000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1a05f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c257906200890562000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062008926620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908187526020526040862060405160208101906200896d8162000b11888886620113bc565b519020875260205260ff6003604088200154161562008e8c575b6001600160a01b0384165f908152600d6020526040902090865260205262000b11620089c36040872093604051928391602083019586620113bc565b519020845260205260408320906001820154916002810154620089e781856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a557889662008e4d575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162008e34575b505062008ac7620115b6565b901590811562008e27575b50620023e65750505062008ae56201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1a05f395f51905f525af180156200083d5762008e05575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1a05f395f51905f525afa9485156200083d57839562008dc8575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1405f395f51905f525afa9283156200051857849362008d8b575b5060806040958362008bc28851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462008d65575b501562008d195783516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9081156200224657879162008cde575b5062008c92926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162008d10575b8162008cfc602093836200e74e565b8101031262001117575162008c9262008c81565b3d915062008ced565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1a05f395f51905f525afa9081156200224657879162004f6d57506200109f9062004f21936200ed98565b62008d8391945060803d6080116200129d576200128c81836200e74e565b925f62008c41565b935091506020833d60201162008dbf575b8162008dab602093836200e74e565b810103126200111757859251915f62008ba9565b3d915062008d9c565b925093506020823d60201162008dfc575b8162008de8602093836200e74e565b810103126200111757849151935f62008b6d565b3d915062008dd9565b62008e219060203d6020116200136f576200136081836200e74e565b62008b31565b5f19141590505f62008ad2565b8162008e40916200e74e565b6200182057845f62008abb565b975094506020873d60201162008e83575b8162008e6d602093836200e74e565b8101031262001117579551899690948162008a3c565b3d915062008e5e565b62008e966201185a565b5062008987565b8162008ea9916200e74e565b6200052357835f62008859565b5062008ec16200f047565b84116200880b565b62008ed4906200eccd565b5184108062008f4d575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762008f34575b50506200885c565b8162008f40916200e74e565b6200052357835f62008f2c565b5062008f586200f111565b841162008ede565b62008f7791503d8086833e6200055081836200e74e565b5f620087dd565b816200876c565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b2405f395f51905f5260248301525f5160206201b1e05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557829162009240575b506200901f620006006200f21f565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162009227575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200920e575b5050604091818351620090d885826200e74e565b600181526020810192601f198601368537620090f4826200eccd565b52620090ff6200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620091f15750505083838281935003925af1928315620004d357508192620091d1575b50805b8251811015620004a65780620091b86200047c600193866200ecec565b620091ca60206200049683876200ecec565b016200919b565b620091e99192503d8084833e620004c281836200e74e565b905f62009198565b825184528896508795506020938401939092019160010162009172565b816200921a916200e74e565b620002b457805f620090c4565b8162009233916200e74e565b6200082057815f62009071565b6200925791503d8084833e6200055081836200e74e565b5f62009010565b5034620002b45780600319360112620002b4576028546040516001600160a01b039091168152602090f35b5034620002b4576064906200929e366200e79e565b6027549093916001600160a01b0390911690841562009cf2576001945b60255460405163549387df60e11b81525f5160206201b2605f395f51905f526004820152602481018590525f5160206201b1605f395f51905f52604482015294869186919082906001600160a01b03165afa938415620025ea57859462009cd2575b501562009c37576200932f836200ecdb565b5181108062009c25575b5f5160206201b1205f395f51905f523b156200182057604051632631f2b160e11b8152901515600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009c0c575b50505b60028510156200268c576001851492831562009b8e57620093ae906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009b75575b50505b6040516318160ddd60e01b815294602086600481865afa958615620025ea57859662009b3b575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b8252306024820152602481526200946a6044826200e74e565b5190865afa506200947e62000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620094d39301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620094f4620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a526020526040892060405160208101906200953b8162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562009b2a575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200959160408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620095b68a856200eb70565b62009a29575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a9899979896978b9790956020876044815f5160206201b1205f395f51905f525afa9687156200396c578997620099ea575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af190811562001163578791620099d1575b5050620096a2620115b6565b919015918215620099c5575b5050620023e657505050620096c26201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448186895af180156200083d57620099a3575b506040516370a0823160e01b815230600482015294602086602481885afa9586156200083d57839662009966575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1605f395f51905f525afa9283156200051857849362009927575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f526004820152602481018890525f5160206201b1605f395f51905f5260448201526064810192909252608482018690529093608091859160a4918391906001600160a01b03165af19283156200116357879362009901575b501562009838576040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa908115620011635787916200112457506024936200109f60209493620010a6936200ed98565b939190926020602491604051928380926370a0823160e01b82523060048301525afa90811562001338578691620098c6575b506200109f906200987b936200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa90811562000518578491620011f25750620010e2926200109f916200ed98565b90506020813d602011620098f8575b81620098e4602093836200e74e565b810103126200111757516200987b6200986a565b3d9150620098d5565b6200991f91935060803d6080116200129d576200128c81836200e74e565b915f620097e1565b935091506020833d6020116200995d575b8162009947602093836200e74e565b810103126200111757608087935192906200976a565b3d915062009938565b925094506020823d6020116200999a575b8162009986602093836200e74e565b810103126200111757859151945f6200972e565b3d915062009977565b620099bf9060203d6020116200136f576200136081836200e74e565b62009700565b141590505f80620096ae565b81620099dd916200e74e565b620014a857855f62009696565b985095506020883d60201162009a20575b8162009a0a602093836200e74e565b81010312620011175796518b9790958162009614565b3d9150620099fb565b62009a358a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c62009b0a575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d5262009afa908d6200e74e565b82101562005bf9579950620095bc565b62009b22919c503d808d833e6200161481836200e74e565b9a5f62009a8b565b62009b346201185a565b5062009555565b9095506020813d60201162009b6c575b8162009b5a602093836200e74e565b81010312620011175751945f6200942a565b3d915062009b4b565b8162009b81916200e74e565b6200052357835f62009400565b62009b99906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009bf3575b505062009403565b8162009bff916200e74e565b6200052357835f62009beb565b8162009c18916200e74e565b6200052357835f6200938a565b50670de0b6b3a7640000811162009339565b62009c42836200eccd565b5181108062009cbe575b5f5160206201b1205f395f51905f523b156200182057604051632631f2b160e11b8152901515600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009ca5575b50506200938d565b8162009cb1916200e74e565b6200052357835f62009c9d565b5062009cca826200f2d3565b811162009c4c565b62009cea9194503d8087833e6200055081836200e74e565b925f6200931d565b8394620092bb565b5034620002b4576020366003190112620002b45760275460255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201526001600160a01b039283166044820181905293929091839183916064918391165afa9081156200081557829162009f33575b5062009d8d620006006004356200f4f7565b5181105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162009f1a575b5050918160409384519062009df586836200e74e565b600182526020820190601f19870136833762009e11836200eccd565b5262009e1c6200f38e565b602554865163155adc9160e31b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f52602482015260448101959095526080606486015291516084850181905284926001600160a01b03169160a4840191855b81811062009efd5750505083838281935003925af1928315620004d35750819262009edd575b50805b8251811015620004a6578062009ec46200047c600193866200ecec565b62009ed660206200049683876200ecec565b0162009ea7565b62009ef59192503d8084833e620004c281836200e74e565b905f62009ea4565b825184528896508795506020938401939092019160010162009e7e565b8162009f26916200e74e565b6200082057815f62009ddf565b62009f4a91503d8084833e6200055081836200e74e565b5f62009d7b565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091525f5160206201b1605f395f51905f5260248301525f5160206201b2205f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815579062009fe89183916200a13857506200eccd565b518210806200a125575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a10c575b505080806200a0ae6040948551906200a05d87836200e74e565b60018252601f1987013660208401376200a077826200eccd565b526200a0826200f38e565b602554865163155adc9160e31b81529485936001600160a01b039092169284928391600483016200ee36565b03925af1928315620004d3575081926200a0ec575b50805b8251811015620004a657806200a0e5602062000496600194876200ecec565b016200a0c6565b6200a1049192503d8084833e620004c281836200e74e565b905f6200a0c3565b816200a118916200e74e565b620002b457805f6200a043565b506200a1306200f1c5565b821162009ff2565b6200055991503d8085833e6200055081836200e74e565b5034620002b45780600319360112620002b45760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106200a1b457620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a199565b5034620002b45780600319360112620002b45760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106200a23957620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a21e565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091525f5160206201b1605f395f51905f5260248301525f5160206201b2205f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557906200a2f09183916200a13857506200eccd565b518210806200a3ec575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a3d3575b505080806200a3656040948551906200a05d87836200e74e565b03925af1928315620004d3575081926200a3b3575b50805b8251811015620004a657806200a39a6200047c600193866200ecec565b6200a3ac60206200049683876200ecec565b016200a37d565b6200a3cb9192503d8084833e620004c281836200e74e565b905f6200a37a565b816200a3df916200e74e565b620002b457805f6200a34b565b5067016345785d8a000082116200a2fa565b5034620002b45780600319360112620002b457602060405160128152f35b5034620002b45780600319360112620002b457601d546200a43d816200ea1a565b6200a44c60405191826200e74e565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106200a50557868587604051928392602084019060208552518091526040840160408260051b8601019392905b8282106200a4bb57505050500390f35b919360019193955060206200a4f48192603f198a82030186526040838a51878060a01b038151168452015191818582015201906200e803565b96019201920185949391926200a4ab565b6040516200a513816200e716565b82546001600160a01b031681526001830180546200a531816200ea1a565b916200a54160405193846200e74e565b8183528a526020808b20908b9084015b8382106200a5795750505050600192826020928360029501528152019201920191906200a47c565b6001602081926040516200a59381620047f0818a6200e993565b8152019301910190916200a551565b5034620002b4576060366003190112620002b4576200a5c06200e770565b6200a5ca6200e787565b6001600160a01b038216808452602160209081526040808620335f90815292529020546044359391600182016200a60a575b50506200483493506200f437565b8482106200a6775780156200a6635733156200a64f578560409162004834975260216020522060018060a01b0333165f526020528360405f20910390555f806200a5fc565b634a1406b160e11b86526004869052602486fd5b63e602df0560e01b86526004869052602486fd5b6064868684637dc7a0d960e11b835233600452602452604452fd5b5034620002b45780600319360112620002b45760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106200a6f757620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a6dc565b5034620002b45780600319360112620002b4576029546040516001600160a01b039091168152602090f35b5034620002b45780600319360112620002b4576020602254604051908152f35b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b2005f395f51905f5260248301525f5160206201b1a05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa908115620008155782916200aa1d575b506200a7fc620006006200f16b565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d579083916200aa04575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a9eb575b50506040918183516200a8b585826200e74e565b600181526020810192601f1986013685376200a8d1826200eccd565b526200a8dc6200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b8181106200a9ce5750505083838281935003925af1928315620004d3575081926200a9ae575b50805b8251811015620004a657806200a9956200047c600193866200ecec565b6200a9a760206200049683876200ecec565b016200a978565b6200a9c69192503d8084833e620004c281836200e74e565b905f6200a975565b82518452889650879550602093840193909201916001016200a94f565b816200a9f7916200e74e565b620002b457805f6200a8a1565b816200aa10916200e74e565b6200082057815f6200a84e565b6200aa3491503d8084833e6200055081836200e74e565b5f6200a7ed565b5034620002b4576064906200aa50366200e79e565b156200b3515760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d5783946200b331575b50600281101562003bda57600181149384156200b297576200aaea906200ecdb565b518210806200b284575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa801562000518579084916200b26b575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa948515620005185784956200b231575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200abbd6044826200e74e565b51905f5160206201b1405f395f51905f525afa506200abdf62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a908160016200ac399301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200ac5a620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906200aca18162000b11888886620113bc565b519020895260205260ff600360408a20015416156200b220575b6001600160a01b0384165f908152600d6020526040902090885260205262000b116200acf76040892093604051928391602083019586620113bc565b519020865260205260408520906001820154916002810154976200ad1c89856200eb70565b6200b143575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200b104575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af1908115620011635787916200b0eb575b50506200ae05620115b6565b9190159182156200b0df575b5050620023e6575050506200ae256201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d576200b0bd575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d5783956200b080575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1a05f395f51905f525afa928315620005185784936200b043575b506080604095836200af028851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af1938415620022465787946200b01d575b50156200afd15783516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa90811562002246578791620037bb57506200376f926200109f916200ed98565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162006a7257506200109f9062006a26936200ed98565b6200b03b91945060803d6080116200129d576200128c81836200e74e565b925f6200af81565b935091506020833d6020116200b077575b816200b063602093836200e74e565b810103126200111757859251915f6200aee9565b3d91506200b054565b925093506020823d6020116200b0b4575b816200b0a0602093836200e74e565b810103126200111757849151935f6200aead565b3d91506200b091565b6200b0d99060203d6020116200136f576200136081836200e74e565b6200ae71565b141590505f806200ae11565b816200b0f7916200e74e565b620014a857855f6200adf9565b985095506020883d6020116200b13a575b816200b124602093836200e74e565b81010312620011175796518a979095816200ad77565b3d91506200b115565b6200b14f89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c6200b210928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a555798506200ad22565b6200b22a6201185a565b506200acbb565b9094506020813d6020116200b262575b816200b250602093836200e74e565b81010312620011175751935f6200ab7d565b3d91506200b241565b816200b277916200e74e565b6200051457825f6200ab45565b506200b28f6200f111565b82116200aaf4565b6200b2a2906200eccd565b518210806200b31e575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa801562000518579084916200b305575b50506200ab48565b816200b311916200e74e565b6200051457825f6200b2fd565b506200b3296200f047565b82116200b2ac565b6200b3499194503d8085833e6200055081836200e74e565b925f6200aac8565b816200aa59565b503462001117575f366003190112620011175760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206201b1205f395f51905f525afa9081156200e4bb576200b3e8916020915f916200e50f575b50604051809381926371ee464d60e01b83526040600484015260448301906200e6f2565b630146de46602483015203815f5f5160206201b1205f395f51905f525af180156200e4bb576200e4da575b50602654604051906001600160a01b03166150b58083016001600160401b038111848210176200e4c657608092849262012488843973ba1333333333a1ba1108e8412f11850a5c319ba9825260208201526e22d473030f116ddee9f6b43ac78ba360408201525f5160206201b1405f395f51905f5260608201520301905ff080156200e4bb5760018060a01b03166bffffffffffffffffffffffff60a01b60255416176025556040516113eb808201908282106001600160401b038311176200e4c65760209183916201753d83395f5160206201b2205f395f51905f5281520301905ff080156200e4bb57602780546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200111757604051906318caf8e360e31b8252600482015260406024820152600d60448201526c455243343632365f735553444360981b60648201525f81608481835f5160206201b1205f395f51905f525af180156200e4bb576200e4a5575b50604051906113ed91828101928184106001600160401b038511176200e478578183946020926201892883395f5160206201b1605f395f51905f52815203019082f080156200e46b57602980546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b8252600482015260406024820152600e60448201526d08aa486686c646cbee68e9e8aa8960931b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200e48c575b5050604051906113eb91828101928184106001600160401b038511176200e4785781839460209262019d1583395f5160206201b1e05f395f51905f52815203019082f080156200e46b57602880546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b8252600482015260406024820152600d60448201526c08aa486686c646cbee68aa890f609b1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200e452575b508060405160208101906370a0823160e01b8252306024820152602481526200b76d6044826200e74e565b51905f5160206201b2205f395f51905f525afa506200b78f62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2205f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200b7e99301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200b80a620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200b8518162000b11888886620113bc565b519020865260205260ff600360408720015416156200e441575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200b8a76040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200b8cc81866200eb70565b6200e33b575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e2fc575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264e8d4a5100090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e2e3575b50506200b9b5620115b6565b90159081156200e2d2575b506200d95357826200b9d16201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200b9fc6044826200e74e565b51905f5160206201b1e05f395f51905f525afa506200ba1e62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200ba789301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200ba99620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200bae08162000b11888886620113bc565b519020865260205260ff600360408720015416156200e2c1575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200bb366040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200bb5b81866200eb70565b6200e1d4575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e195575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e17c575b50506200bc49620115b6565b90159081156200e166575b506200d95357826200bc656201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200bc906044826200e74e565b51905f5160206201b1605f395f51905f525afa506200bcb262000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200bd0c9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200bd2d620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200bd748162000b11888886620113bc565b519020865260205260ff600360408720015416156200e155575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200bdca6040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200bdef81866200eb70565b6200e067575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e028575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091526a084595161401484a00000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e00f575b50506200bede620115b6565b90159081156200dff8575b506200d95357826200befa6201218f565b60405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b1605f395f51905f525af1801562000815576200dfd6575b5060295460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152906020908290604490829086906001600160a01b03165af1801562000815576200dfb4575b5060405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200df92575b5060405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200df70575b50620151804201804211620017e25765ffffffffffff8291166e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b1605f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df57575b50506029546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c1279260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df3e575b50506e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b2205f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df25575b50506e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b1e05f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df0c575b5060275460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f1960248201529160209183916044918391906001600160a01b03165af180156200083d576200deea575b506027546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c3049260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200ded1575b5060285460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f1960248201529160209183916044918391906001600160a01b03165af180156200083d576200deaf575b506028546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c3c19260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de96575b50506027546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c42e9260405193849283926387517c4560e01b8452600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de7d575b50506028546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c49b9260405193849283926387517c4560e01b8452600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de64575b50506029546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de60576040516387517c4560e01b8152918391839182916200c5099190600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af1801562000815576200de47575b505060275460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200de25575b5060285460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200de03575b5060295460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1605f395f51905f525af1801562000815576200dde1575b50602754604051636e553f6560e01b8152633b9aca006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200ddac575b50602854604051636e553f6560e01b8152683635c9adc5dea000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200dd77575b50602954604051636e553f6560e01b815269d3c21bcecceda10000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200dd42575b506027546040516359b2d1e160e11b81526001600160a01b0390911660048201526298968060248201819052604482015262895440606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dd0d575b506028546040516359b2d1e160e11b81526001600160a01b039091166004820152678ac7230489e80000602482018190526044820152677ce66c50e2840000606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dcd8575b506029546040516359b2d1e160e11b81526001600160a01b039091166004820152678ac7230489e80000602482018190526044820152677ce66c50e2840000606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dca3575b50808060405160208101906370a0823160e01b8252306024820152602481526200c85f6044826200e74e565b51905f5160206201b2205f395f51905f525afa506200c88162000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2205f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200c8db9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200c8fc620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200c9438162000b11888886620113bc565b519020865260205260ff600360408720015416156200dc92575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200c9996040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200c9be81866200eb70565b6200dbaa575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200db6b575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264e8d4a5100090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200db52575b50506200caa7620115b6565b90159081156200db41575b506200d95357826200cac36201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200caee6044826200e74e565b51905f5160206201b1e05f395f51905f525afa506200cb1062000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200cb6a9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200cb8b620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200cbd28162000b11888886620113bc565b519020865260205260ff600360408720015416156200db1c575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200cc286040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200cc4d81866200eb70565b6200da11575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200d9d2575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b03861660048201526024810191909152683635c9adc5dea0000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200d9b9575b50506200cd3a620115b6565b90159081156200d9a4575b506200d95357826200cd566201218f565b60275460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200d931575b5060285460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200d90f575b50602754604051636e553f6560e01b815264e8d4a510006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200d8da575b50602854604051636e553f6560e01b8152683635c9adc5dea000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200d8a5575b5060405163095ea7b360e01b815273ba1333333333a1ba1108e8412f11850a5c319ba960048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200d883575b5060405163095ea7b360e01b815273ba1333333333a1ba1108e8412f11850a5c319ba960048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200d861575b505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273ba1333333333a1ba1108e8412f11850a5c319ba9600482015260406024820152600f60448201526e10985b185b98d95c958cd5985d5b1d608a1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d848575b506026546001600160a01b03165f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b19a130ba31b42937baba32b960591b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d82f575b506025546001600160a01b03165f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b19a9bbb0b820b230b83a32b960591b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d813575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b2405f395f51905f52600482015260406024820152601160448201527008aa486686c646cbeeec28ae8d0ae8aa89607b1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d7fa575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1e05f395f51905f52600482015260406024820152600a60448201526908aa4866460be8aa890f60b31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d7e1575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b8152734ab7ab316d43345009b2140e0580b072eec7df16600482015260406024820152602560448201527f455243343632365f45524332305f455448785f7761574554485f535441424c4560648201526417d413d3d360da1b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d7c8575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273f91c11ba4220b7a72e1dc5e92f2b48d3fdf62726600482015260406024820152602460448201527f45524332305f45524332305f474f4554485f555344435f57454947485445445f6064820152631413d3d360e21b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d7af575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1605f395f51905f52600482015260406024820152600b60448201526a08aa4866460be8e9e8aa8960ab1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d796575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b2205f395f51905f52600482015260406024820152600a60448201526945524332305f5553444360b01b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d77d575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273c4ce391d82d164c166df9c8336ddf84206b2f812600482015260406024820152602760448201527f455243343632365f455243343632365f574554485f7773744554485f53544142606482015266131157d413d3d360ca1b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d764575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1405f395f51905f52600482015260406024820152600a60448201526908aa4866460beae8aa8960b31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d74b575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b8152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0600482015260406024820152600c60448201526b08aa4866460beeee6e88aa8960a31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d732575b50505f5160206201b1205f395f51905f523b15620002b4576040516318caf8e360e31b815281908181806200d5f3600482016200ec06565b0381835f5160206201b1205f395f51905f525af1801562000815576200d719575b50505f5160206201b1205f395f51905f523b15620002b4576040516318caf8e360e31b815281908181806200d64c600482016200ec06565b0381835f5160206201b1205f395f51905f525af1801562000815576200d700575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81526e22d473030f116ddee9f6b43ac78ba360048201526040602482015260076044820152662832b936b4ba1960c91b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d6ec5750f35b816200d6f8916200e74e565b620002b45780f35b816200d70c916200e74e565b620002b45780826200d66d565b816200d725916200e74e565b620002b45780826200d614565b816200d73e916200e74e565b620002b45780826200d5bb565b816200d757916200e74e565b620002b45780826200d534565b816200d770916200e74e565b620002b45780826200d4b5565b816200d789916200e74e565b620002b45780826200d40d565b816200d7a2916200e74e565b620002b45780826200d38e565b816200d7bb916200e74e565b620002b45780826200d30e565b816200d7d4916200e74e565b620002b45780826200d269565b816200d7ed916200e74e565b620002b45780826200d1c3565b816200d806916200e74e565b620002b45780826200d144565b816200d81f916200e74e565b620002b45780826200d0be565b50fd5b816200d83b916200e74e565b620002b45780826200d038565b816200d854916200e74e565b620002b45780826200cfb2565b6200d87d9060203d6020116200136f576200136081836200e74e565b6200cf29565b6200d89f9060203d6020116200136f576200136081836200e74e565b6200ced5565b6020813d6020116200d8d1575b816200d8c1602093836200e74e565b810103126200111757516200ce81565b3d91506200d8b2565b6020813d6020116200d906575b816200d8f6602093836200e74e565b810103126200111757516200ce36565b3d91506200d8e7565b6200d92b9060203d6020116200136f576200136081836200e74e565b6200cdef565b6200d94d9060203d6020116200136f576200136081836200e74e565b6200cda2565b54905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b683635c9adc5dea0000091501415866200cd45565b816200d9c5916200e74e565b620005145782866200cd2e565b955095506020853d6020116200da08575b816200d9f2602093836200e74e565b810103126200111757935194869490816200cca3565b3d91506200d9e3565b909192506200da2181856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200dae2916020948a916200dafe575b506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b683635c9adc5dea000001015620015d35750908492916200cc53565b6200db1591503d808c833e6200161481836200e74e565b8a6200da80565b6200db266201185a565b506200cbec565b634e487b7160e01b82526041600452602482fd5b64e8d4a5100091501415866200cab2565b816200db5e916200e74e565b620005145782866200ca9b565b955095506020853d6020116200dba1575b816200db8b602093836200e74e565b810103126200111757935194869490816200ca14565b3d91506200db7c565b909192506200dbba81856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200dc7a916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b64e8d4a510001015620015d35750908492916200c9c4565b6200dc9c6201185a565b506200c95d565b6020813d6020116200dccf575b816200dcbf602093836200e74e565b810103126200111757516200c833565b3d91506200dcb0565b6020813d6020116200dd04575b816200dcf4602093836200e74e565b810103126200111757516200c7c4565b3d91506200dce5565b6020813d6020116200dd39575b816200dd29602093836200e74e565b810103126200111757516200c755565b3d91506200dd1a565b6020813d6020116200dd6e575b816200dd5e602093836200e74e565b810103126200111757516200c6f0565b3d91506200dd4f565b6020813d6020116200dda3575b816200dd93602093836200e74e565b810103126200111757516200c6a4565b3d91506200dd84565b6020813d6020116200ddd8575b816200ddc8602093836200e74e565b810103126200111757516200c659565b3d91506200ddb9565b6200ddfd9060203d6020116200136f576200136081836200e74e565b6200c613565b6200de1f9060203d6020116200136f576200136081836200e74e565b6200c5c6565b6200de419060203d6020116200136f576200136081836200e74e565b6200c579565b816200de53916200e74e565b620002b45780826200c52b565b5050fd5b816200de70916200e74e565b6200d82c5781846200c4c0565b816200de89916200e74e565b6200d82c5781846200c453565b816200dea2916200e74e565b6200d82c5781846200c3e6565b6200decb9060203d6020116200136f576200136081836200e74e565b6200c37a565b816200dedd916200e74e565b6200d82c5781846200c329565b6200df069060203d6020116200136f576200136081836200e74e565b6200c2bd565b816200df18916200e74e565b6200d82c5781846200c26c565b816200df31916200e74e565b6200d82c5781846200c1dc565b816200df4a916200e74e565b6200d82c5781846200c14c565b816200df63916200e74e565b6200d82c5781846200c0df565b6200df8c9060203d6020116200136f576200136081836200e74e565b6200c038565b6200dfae9060203d6020116200136f576200136081836200e74e565b6200bfe9565b6200dfd09060203d6020116200136f576200136081836200e74e565b6200bf9a565b6200dff29060203d6020116200136f576200136081836200e74e565b6200bf48565b6a084595161401484a00000091501415866200bee9565b816200e01b916200e74e565b620005145782866200bed2565b955095506020853d6020116200e05e575b816200e048602093836200e74e565b810103126200111757935194869490816200be45565b3d91506200e039565b909192506200e07781856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e137916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b6a084595161401484a0000001015620015d35750908492916200bdf5565b6200e15f6201185a565b506200bd8e565b69152d02c7e14af680000091501415866200bc54565b816200e188916200e74e565b620005145782866200bc3d565b955095506020853d6020116200e1cb575b816200e1b5602093836200e74e565b810103126200111757935194869490816200bbb1565b3d91506200e1a6565b909192506200e1e481856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e2a4916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b69152d02c7e14af68000001015620015d35750908492916200bb61565b6200e2cb6201185a565b506200bafa565b64e8d4a51000915014155f6200b9c0565b816200e2ef916200e74e565b6200051457825f6200b9a9565b955095506020853d6020116200e332575b816200e31c602093836200e74e565b810103126200111757935194869490816200b922565b3d91506200e30d565b909192506200e34b81856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e40b916020948a916200e42357506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b64e8d4a510001015620015d35750908492916200b8d2565b6200e43a91503d808c833e6200161481836200e74e565b5f6200da80565b6200e44b6201185a565b506200b86b565b816200e45e916200e74e565b620002b457805f6200b742565b50604051903d90823e3d90fd5b634e487b7160e01b83526041600452602483fd5b816200e498916200e74e565b620002b457805f6200b668565b6200e4b391505f906200e74e565b5f5f6200b58e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d6020116200e506575b816200e4f6602093836200e74e565b810103126200111757516200b413565b3d91506200e4e7565b6200e52691503d805f833e6200161481836200e74e565b5f6200b3c4565b346200111757604036600319011262001117576200e54a6200e770565b6024359033156200e5c8576001600160a01b03169081156200e5b557335f52602160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3462001117576040366003190112620011175760206200e6146040516200e602816200e716565b6004358152602435838201526200ea51565b604051908152f35b3462001117575f36600319011262001117575f6023546200e63d816200e958565b80845290600181169081156200e6cc57506001146200e66a575b620008d8836200488d818503826200e74e565b60235f9081527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f4230939250905b8082106200e6b1575090915081016020016200488d6200e657565b9192600181602092548385880101520191019092916200e696565b60ff191660208086019190915291151560051b840190910191506200488d90506200e657565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604081019081106001600160401b038211176200e4c657604052565b606081019081106001600160401b038211176200e4c657604052565b90601f801991011681019081106001600160401b038211176200e4c657604052565b600435906001600160a01b03821682036200111757565b602435906001600160a01b03821682036200111757565b60409060031901126200111757600435906024358015158103620011175790565b60206040818301928281528451809452019201905f5b8181106200e7e35750505090565b82516001600160a01b03168452602093840193909201916001016200e7d5565b9080602083519182815201916020808360051b8301019401925f915b8383106200e82f57505050505090565b90919293946020806200e84f600193601f1986820301875289516200e6f2565b970193019301919392906200e81f565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106200e89257505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106200e8ee57505050602080600192970193019301919392906200e882565b82516001600160e01b0319168452602093840193909201916001909101906200e8cd565b600e548110156200e92b57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156200e92b57601f5f5260205f2001905f90565b90600182811c921680156200e988575b60208310146200e97457565b634e487b7160e01b5f52602260045260245ffd5b91607f16916200e968565b5f92918154916200e9a4836200e958565b80835292600181169081156200e9fd57506001146200e9c257505050565b5f9081526020812093945091925b8383106200e9e2575060209250010190565b6001816020929493945483858701015201910191906200e9d0565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116200e4c65760051b60200190565b81156200ea3d570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156200ea8e5760206200ea8b920151906200ea32565b90565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381116200e4c657601f01601f191660200190565b60208183031262001117578051906001600160401b03821162001117570181601f8201121562001117578051906200eaf6826200eaa2565b926200eb0660405194856200e74e565b828452602083830101116200111757815f9260208093018386015e8301015290565b9081602091031262001117575190565b9291906200eb516020916040865260408601906200e6f2565b930152565b908160209103126200111757518015158103620011175790565b919082018092116200ea8e57565b6001600160a01b039182168152739179c06629ef7f17cb5759f501d89997fe0e7b456020820152604081019190915265ffffffffffff909116606082015260800190565b6001600160a01b03918216815273ba1333333333a1ba1108e8412f11850a5c319ba96020820152604081019190915265ffffffffffff909116606082015260800190565b6080905f5160206201b2005f395f51905f52815260406020820152601560408201527408aa486686c646cbeeec28ae8d098d2c8deae8aa89605b1b60608201520190565b60208183031262001117578051906001600160401b0382116200111757019080601f83011215620011175781516200ec82816200ea1a565b926200ec9260405194856200e74e565b81845260208085019260051b8201019283116200111757602001905b8282106200ecbc5750505090565b81518152602091820191016200ecae565b8051156200e92b5760200190565b8051600110156200e92b5760400190565b80518210156200e92b5760209160051b010190565b919082604091031262001117576040516200ed1c816200e716565b6020808294805184520151910152565b9060808282031262001117576200ed629060408051936200ed4d856200e732565b8051855260208101516020860152016200ed01565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b919082039182116200ea8e57565b60208183031262001117578051906001600160401b03821162001117570181601f82011215620011175780516200eddd816200ea1a565b926200eded60405194856200e74e565b81845260208085019260061b840101928184116200111757602001915b8383106200ee19575050505090565b60206040916200ee2a84866200ed01565b8152019201916200ee0a565b602060a06080830192737c8e08dd21105bd3970ee2f49795a469fefb139360611b81525f5160206201b1605f395f51905f52838201525f5160206201b2205f395f51905f526040820152608060608201528451809452019201905f5b8181106200eea05750505090565b82518452602093840193909201916001016200ee92565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106200eefc5750505090565b82518452602093840193909201916001016200eeee565b60085460ff1680156200ef235790565b50604051630667f9d760e41b81525f5160206201b1205f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206201b1205f395f51905f525afa9081156200e4bb575f916200ef81575b50151590565b90506020813d6020116200efb0575b816200ef9f602093836200e74e565b810103126200111757515f6200ef7b565b3d91506200ef90565b60208183031262001117578051906001600160401b0382116200111757019080601f8301121562001117578151906200eff2826200ea1a565b926200f00260405194856200e74e565b82845260208085019360051b8201019182116200111757602001915b8183106200f02c5750505090565b8251600a81101562001117578152602092830192016200f01e565b60405163313ce56760e01b81526020816004815f5160206201b1405f395f51905f525afa80156200e4bb575f906200f0cd575b60ff91501680600682116200f0b9575b600c81116200f0a4575b50604d81116200ea8e57600a0a90565b6002198101915081116200ea8e575f6200f094565b905f1981019081116200ea8e57906200f08a565b506020813d6020116200f108575b816200f0ea602093836200e74e565b8101031262001117575160ff81168103620011175760ff906200f07a565b3d91506200f0db565b60405163313ce56760e01b81526020816004815f5160206201b1a05f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b2005f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b1605f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b2405f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b1e05f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b905f5160206201b1205f395f51905f523b1562001117576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b5f6200f38c916200e74e565b565b5f5160206201b1205f395f51905f523b1562001117576040516323f2866760e11b81525f60048201525f60248201525f81604481835f5160206201b1205f395f51905f525af180156200e4bb576200f3805750565b5f5160206201b1205f395f51905f523b15620011175760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b6001600160a01b03169081156200f4e4576001600160a01b03169182156200f4d157815f526020805260405f20548181106200f4b857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f528380520360405f2055845f5281805260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b683635c9adc5dea0000067016345785d8a00006200f5159262010f29565b906200f38c826200536b604051620053316040826200e74e565b683635c9adc5dea0000066038d7ea4c680006200f5159262010f29565b5f5b81518110156200f59b576200f56481836200ecec565b51600a8110156200f587576005146200f580576001016200f54e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b81518110156200f59b576200f5b981836200ecec565b51600a8110156200f587576009146200f580576001016200f5a3565b5f5b81518110156200f59b576200f5ed81836200ecec565b51600a8110156200f587576008146200f580576001016200f5d7565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526200f6436064846200e74e565b82516001600160a01b038316915f91829182855af1906200f66362010eea565b826200f6cd575b50816200f6c1575b50156200f67e57505050565b6200f6bb6200f38c936040519063095ea7b360e01b602083015260248201525f6044820152604481526200f6b46064826200e74e565b82620110d4565b620110d4565b90503b15155f6200f672565b805191925081159182156200f6e7575b5050905f6200f66a565b6200f6fc92506020809183010191016200eb56565b5f806200f6dd565b604051906200f7156060836200e74e565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af180156200e4bb576200f7cc915f9162010ed357506200eccd565b5161010052606060a08190526040516200f82c916200f7ec90826200e74e565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261010051620111a1565b60a051506200f8ea6200f8bb6200536b6040516200f84d60a051826200e74e565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a48301906200e6f2565b6001600160a01b0389811660448401528616606483015261010051608483015203601f1981018352826200e74e565b6040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156200e4bb576200f946915f9162010eb5575b506200f5a1565b90604051916200f95860a0846200e74e565b6004835260803660208501371562010ea7575f5b6200f977836200eccd565b526103e861010051046200f98b836200ecdb565b528151600210156200e92b5760a05182016101005160011c90528151600310156200e92b5761010051608083015260405163155adc9160e31b8152935f85806200f9dc86868b8a600486016200eeb7565b0381836001600160a01b0386165af19485156200e4bb575f9562010e87575b506200fa126200fa0b866200eccd565b516200ea51565b85515f198101919082116200ea8e576200fa356200fa0b6200fa9293896200ecec565b60a05160405192906200fa4990846200e74e565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526201120f565b6200faa16200fa0b866200eccd565b85515f198101919082116200ea8e576200536b6200fb48916200facd6200fa0b6200fb62958b6200ecec565b60a0516040519291906200fae290846200e74e565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a051602486015260848501906200e6f2565b916044840152606483015203601f1981018352826200e74e565b60a0516040516200fbb7916200fb7990826200e74e565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b604082015262011248565b6200fc0f6200fbc6866200eccd565b5151604060e0819052805191906200fbdf90836200e74e565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152620111a1565b6200fc6660206200fc20876200eccd565b51015160e051805191906200fc3690836200e74e565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152620111a1565b6200fc756200fa0b866200eccd565b9460e051506200fcb88660e051516200fc9160e051826200e74e565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b60208201526201127a565b60e051516200fcc7816200e732565b5f81525f602082015260e05151906200fce0826200e716565b5f808352602083015260e051015283515f1981019081116200ea8e576200fd0890856200ecec565b5160058181020481036200ea8e575f8060e0515160208101906370a0823160e01b8252306024820152602481526200fd426044826200e74e565b51908b5afa506200fd5662000a2b62010eea565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200e4c65762000a908160016200fdab9301600e556200e912565b90556011546001600160a01b031661014052600f546010549060e01b6200fdd1620113d3565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e0515160208101906200fe1d8162000b11888886620113bc565b5190205f5260205260ff600360e0515f200154161562010e76575b610140516001600160a01b03165f908152600d60205260409020905f5260205262000b116200fe7960e0515f209360e05151928391602083019586620113bc565b5190205f5260205260e0515f2060018101549160028201546200fe9d81856200eb70565b62010d4d575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa95861562010d07575f9662010d13575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b15620011175760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f5160206201b1205f395f51905f525af1801562010d075762010cef575b506200ff84620115b6565b901591821562010ce0575b505062010be35750506200ffa26201218f565b60e05151634b88b8ad60e11b8152602081600481610120515f5160206201b1205f395f51905f525af18015620104c0576101205160805262010baa575b5060015b84518110156201059f57620100d2620100aa6200536b62010004846200e93f565b5062010011858a6200ecec565b51620100bd620047f06201008360e05151946201003160a051876200e74e565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e05151928380926200e993565b60e05151635821efa160e01b602082015260a051602482015295869460848601906200e6f2565b848103602319016044860152906200e6f2565b90606483015203601f1981018352826200e74e565b620100e26200fa0b82846200ecec565b620101856201015f6200536b620100fa858a6200ecec565b5160e05151906201010e60e051836200e74e565b601782527f544553543a205377617070696e67202564206f66202573000000000000000000602083015260e0515193849263038fd88960e31b602085015260a051602485015260848401906200e6f2565b60448301919091526001600160a01b038e16606483015203601f1981018352826200e74e565b8460808a89620101b86201019a878c6200ecec565b5160e05151638307c65560e01b81529586948594600486016200ed6a565b03816101205160018060a01b038a165af1908115620104c05761012051916201057c575b508051806a084595161401484a0000008102046a084595161401484a000000148115171562010562576201022f6201023b916a084595161401484a00000062010226878c6200ecec565b5191026200ea32565b9160e05101516200ea51565b91620102838260e051516201025360e051826200e74e565b601d81527f544553543a20202d2045786563757465642070726963653a202020256400000060208201526201127a565b620102ca8160e051516201029a60e051826200e74e565b601d81527f544553543a20202d20507269636520617420616d6f756e743a2020256400000060208201526201127a565b620103118360e05151620102e160e051826200e74e565b601d81527f544553543a20202d20507269636520616674657220737761703a20256400000060208201526201127a565b60c05115620104cf5760a05160e051516201045294620103f4939092620103879291906201034090836200e74e565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285620112a5565b60a05160e0515191906201039c90836200e74e565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e051830152836201120f565b60a05160e0515191906201040990836200e74e565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e051830152896201120f565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f5160206201b1205f395f51905f525af1918215620104c0576001926201049d575b50016200ffe3565b620104b89060203d81116200136f576200136081836200e74e565b505f62010495565b60e051513d61012051823e3d90fd5b6201050190620104ef6201055c94620104e76200f704565b908d620112a5565b620104f96200f704565b908b620112a5565b60e05151906201051460a051836200e74e565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289620112a5565b62010452565b634e487b7160e01b61012051526011600452602461012051fd5b62010598915060803d81116200129d576200128c81836200e74e565b5f620101dc565b50509150919392506069610100510261010051810460691461010051151715620105625760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015620104c0576201062891610120519162010b89575b506200f5d5565b1562010a1057620106958460e051516201064560a051826200e74e565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e0518201526201127a565b60e05180519490620106a890866200e74e565b6001855260e051601f1901366020870137620106c4856200eccd565b5260e0515163155adc9160e31b8152610120518180620106eb8888878c600486016200eeb7565b03816101205160018060a01b0388165af19081620109f1575b506201098557600162010716620112de565b6308c379a014620108ee575b620104c057620107346080946200eccd565b51946201075960e0515196879586948594638307c65560e01b8652600486016200ed6a565b61012051919003926001600160a01b03165af19081620108cc575b506201086a57600162010786620112de565b6308c379a014620107de575b620104c0575b6200f38c60e05151620107ae60e051826200e74e565b601781527f544553543a20416c6c207465737473207061737365642e000000000000000000602082015262011248565b620107e8620112fa565b80620107f6575b5062010792565b6101205160a05160e05151919350620108639291906201081790826200e74e565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e05182015262011372565b5f620107ef565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b620108e89060803d6080116200129d576200128c81836200e74e565b62010774565b620108f8620112fa565b8062010906575b5062010722565b6101205160a05160e051519193506201097e9291906201092790826200e74e565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e05182015262011372565b5f620108ff565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b62010a0a903d8061012051833e620004c281836200e74e565b62010704565b60a05160e0515162010a769186919062010a2b90826200e74e565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e0518201526201127a565b60e0518051949062010a8990866200e74e565b6001855260e051601f190136602087013762010aa5856200eccd565b5260e051519363155adc9160e31b855261012051858062010acd8488878c600486016200eeb7565b03816101205160018060a01b0388165af1908115620104c05760809562010afa9262010b6a57506200eccd565b519462010b1f60e0515196879586948594638307c65560e01b8652600486016200ed6a565b61012051919003926001600160a01b03165af18015620104c05762010b46575b5062010798565b62010b629060803d6080116200129d576200128c81836200e74e565b505f62010b3f565b62010b83903d8061012051833e620004c281836200e74e565b6200033e565b62010ba391503d8061012051833e62003ef081836200e74e565b5f62010621565b6020813d60201162010bda575b8162010bc6602093836200e74e565b810103126200111757516080525f6200ffdf565b3d915062010bb7565b545f5160206201b1205f395f51905f523b1562010cd95760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f5160206201b1205f395f51905f525af18015620104c05762010cba575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6101205162010cc9916200e74e565b6101205162010cd9578062010c58565b6101205180fd5b600502141590505f806200ff8f565b5f62010cfb916200e74e565b5f610120525f6200ff79565b60e051513d5f823e3d90fd5b9095506020813d60201162010d44575b8162010d32602093836200e74e565b8101031262001117575194816200fef7565b3d915062010d23565b62010d5981856200eb70565b6101000361010081116200ea8e5760ff81116200ea8e5760e0515163348051d760e11b81526001821b60048201525f816024815f5160206201b1205f395f51905f525afa91821562010d075762010e1e606a6020946001945f9162010e58575b5060e051519586915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f1981018552846200e74e565b1b83600502101562010e3157506200fea3565b60e0515162461bcd60e51b815260206004820152908190620015f99060248301906200e6f2565b62010e6f91503d805f833e6200161481836200e74e565b5f62010db9565b62010e806201185a565b506200fe38565b62010e9f9195503d805f833e620004c281836200e74e565b935f6200f9fb565b61271061010051046200f96c565b62010ecc91503d805f833e62003ef081836200e74e565b5f6200f93f565b6200055991503d805f833e6200055081836200e74e565b3d1562010f19573d9062010efe826200eaa2565b9162010f0e60405193846200e74e565b82523d5f602084013e565b606090565b81156200ea3d570690565b5f908383116201106957828110918215806201105e575b620110565762010f5184866200ed98565b92600184018094116200ea8e576003831115806201104c575b6201103b576003198310158062011030575b6201101d578583111562010fcb5750509062010f9d8462010fa3936200ed98565b62010f1e565b90811562010fc65762010fb792506200eb70565b5f1981019081116200ea8e5790565b505090565b95949291909562010fdd575b50505050565b8394955062010f9d9062010ff293946200ed98565b90811562010fc6576201100692506200ed98565b600181018091116200ea8e57905f80808062010fd7565b505090506200ea8b92915019906200ed98565b508219841162010f7c565b50509190506200ea8b92506200eb70565b5082841162010f6a565b509250505090565b508482111562010f40565b60405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e00006064820152608490fd5b815162011103926001600160a01b03909216915f91829160200182855af1620110fc62010eea565b9162011792565b8051908162011110575050565b602080620111239383010191016200eb56565b156201112b57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6200ea8b93926060928252602082015281604082015201906200e6f2565b5f5160206201b1205f395f51905f523b156200111757620111ed915f916040519384928392636cd1e26960e11b845260048401528460248401526060604484015260648301906200e6f2565b03815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b905f5160206201b1205f395f51905f523b1562001117575f91620111ed6040519485938493636cd1e26960e11b85526004850162011183565b62000b116200536b6200f38c9260405192839163104c13eb60e21b60208401526020602484015260448301906200e6f2565b906200536b6200f38c9262000b11604051938492632d839cb360e21b6020850152602484016200eb38565b905f5160206201b1205f395f51905f523b1562001117575f91620111ed6040519485938493630389490b60e61b85526004850162011183565b5f9060033d11620112eb57565b905060045f803e5f5160e01c90565b5f60443d106200ea8b576040513d600319016004823e8051913d60248401116001600160401b038411176201136c57828201928351916001600160401b03831162011364573d840160031901858401602001116201136457506200ea8b929101602001906200e74e565b949350505050565b92915050565b6200536b620113a99162000b116200f38c94604051948593634b5c427760e01b60208601526040602486015260648501906200e6f2565b838103602319016044850152906200e6f2565b60209291908391805192839101825e019081520190565b620113e06014546200e958565b620114ad576040519081826020600e549283815201600e5f5260205f20925f5b8181106201149357505062011418925003836200e74e565b81518060051b90808204602014901517156200ea8e5762011439816200eaa2565b906201144960405192836200e74e565b8082526201145a601f19916200eaa2565b013660208301375f5b83518110156201148e57806201147c600192866200ecec565b5160208260051b850101520162011463565b509150565b845483526001948501948794506020909301920162011400565b6040516200ea8b81620047f08160146200e993565b6007810190620114d382546200e958565b6201159f57600191500190604051808360208295549384815201905f5260205f20925f5b818110620115855750506201150f925003836200e74e565b81518060051b90808204602014901517156200ea8e5762011530816200eaa2565b906201154060405192836200e74e565b80825262011551601f19916200eaa2565b013660208301375f5b83518110156201148e578062011573600192866200ecec565b5160208260051b85010152016201155a565b8454835260019485019487945060209093019201620114f7565b506200ea8b620047f091604051928380926200e993565b5f806020600f5460e01b620116086024620115d2600d620114c2565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f1981018452836200e74e565b6011549151916001600160a01b03165afa906201162462010eea565b601054909290600581901b906001600160fb1b038116036200ea8e575f938051602081115f14620116b757506020905b5f925b8284106201166757505050509190565b909192956201167787836200eb70565b83518110156200e92b57830160200151600388901b91906001600160f81b031916881560088a85041417156200ea8e576001921c17960192919062011657565b9062011654565b905f806020600285015460e01b620116dc6024620115d288620114c2565b60048601549151916001600160a01b03165afa6003620116fb62010eea565b930154600581901b906001600160fb1b038116036200ea8e575f938051602081115f146201178b57506020905b5f925b8284106201173b57505050509190565b909192956201174b87836200eb70565b83518110156200e92b57830160200151600388901b91906001600160f81b031916881560088a85041417156200ea8e576001921c1796019291906201172b565b9062011728565b90620117b85750805115620117a957805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580620117eb575b620117cb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15620117c2565b9080601f83011215620011175781516201180f816200ea1a565b926201181f60405194856200e74e565b81845260208085019260051b8201019283116200111757602001905b828210620118495750505090565b81518152602091820191016201183b565b601154600f546010546001600160a01b03909216915f9160e01b62011880600d620114c2565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f206040516020810190620118bc8162000b11888886620113bc565b5190205f5260205260ff600360405f200154166201214b575f5160206201b1205f395f51905f523b15620011175760405163266cf10960e01b81525f81600481835f5160206201b1205f395f51905f525af180156200e4bb5762012133575b5062011928600d620116be565b90506040516365bc948160e01b81528660048201528581602481835f5160206201b1205f395f51905f525af190811562001338578691620120c9575b508051620119d657608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015620120c057816020620119f58362011a26956200ecec565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206201b1205f395f51905f525afa928315620012a557889362012087575b5082156201202b575b62011a5e82826200ecec565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206201b1205f395f51905f525afa90811562005b0d578b9162011ff4575b5062011abe600d620116be565b91909382155f1462011fec575f19905b5f5160206201b1205f395f51905f523b1562011fcf576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206201b1205f395f51905f525af1801562011f4c57908d9162011fd3575b505062011b46600d620116be565b601154909491506001600160a01b03165f5160206201b1205f395f51905f523b1562011fcf576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206201b1205f395f51905f525af1801562011fc457908c9162011fab575b50508262011f9f575b50501562011f94578793889360ff6013541662011dfc575b6001868601610100031b5f1901851b16841c810362011ded57509062011c70917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8962000b1162011c428d604051928391602083019586620113bc565b51902062011c5186866200ecec565b51906040519283528a602084015260408301526060820152a16200ecec565b51906040519060808201928284106001600160401b038511176200e4c65760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019062011cdd8162000b118d8d86620113bc565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019062011d3b8162000b11888886620113bc565b519020855260205260ff6003604086200154161562011d90576040948452600d60205284842090845260205262000b1162011d84858520938651928391602083019586620113bc565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01620119d8565b945062011e4a935062011e1083836200ecec565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206201b1205f395f51905f525afa94851562003a96578a9562011f5b575b5062011e7b86600d620122b2565b95909662011e8b81600d6201239b565b60115490939192906001600160a01b03165f5160206201b1205f395f51905f523b1562011f57576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206201b1205f395f51905f525af1801562011f4c57908d9162011f2f575b50508762011f26575b50949562011be257509350915060019062011df5565b96505f62011f10565b8162011f3b916200e74e565b62011f48578b5f62011f07565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d821162011f8b575b8162011f79602093836200e74e565b81010312620011175751935f62011e6d565b3d915062011f6a565b915060019062011df5565b141590505f8062011bca565b8162011fb7916200e74e565b62005aca578a5f62011bc1565b6040513d8e823e3d90fd5b8d80fd5b8162011fdf916200e74e565b62011f48578b5f62011b38565b8c9062011ace565b90506020813d821162012022575b8162012011602093836200e74e565b810103126200111757515f62011ab1565b3d915062012002565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56201207e6201205c84846200ecec565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a162011a52565b9092506020813d8211620120b7575b81620120a5602093836200e74e565b81010312620011175751915f62011a49565b3d915062012096565b50505062011d0b565b90503d8087833e620120dc81836200e74e565b810160408282031262003ed15781516001600160401b03811162002461578162012108918401620117f5565b916020810151906001600160401b03821162003929576201212b929101620117f5565b505f62011964565b620121429194505f906200e74e565b5f925f6201191b565b91939092505f52600d60205260405f20905f5260205262000b116201218060405f2093604051928391602083019586620113bc565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806201226d575b505f60105560ff1960135416601355620121dd6014546200e958565b80620121e65750565b601f8111600114620121f957505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106201226157505060145f525f602081208160145555565b5f815560010162012247565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110620122a65750620121c1565b5f815560010162012297565b91905f5b6101008110620122ca57505090505f905f90565b8060ff0360ff81116200ea8e576004850154600190911b906001600160a01b03165f5160206201b1205f395f51905f523b1562001117576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206201b1205f395f51905f525af180156200e4bb5762012388575b506201235e84620116be565b816201237d575b506201237457600101620122b6565b92505060019190565b905015155f62012365565b5f62012394916200e74e565b5f62012352565b91905f5b6101008110620123b357505090505f905f90565b60048401546001821b906001600160a01b03165f5160206201b1205f395f51905f523b1562001117576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206201b1205f395f51905f525af180156200e4bb576201245a575b506201243984620116be565b816201244f575b5062012374576001016201239f565b905015155f62012440565b5f62012466916200e74e565b5f6201242d565b5f80916020815191016a636f6e736f6c652e6c6f675afa5056fe610100346101b757601f6150b538819003918201601f19168301916001600160401b038311848410176101bb578084926080946040528339810103126101b75780516001600160a01b03811691908290036101b757610060602082016101cf565b6100786060610071604085016101cf565b93016101cf565b6080939093526001600160a01b031660a05260e05260c052604051614ed190816101e48239608051818181609a01528181610810015281816122cb01528181612ba00152818161327f0152818161394b0152613dc8015260a0518181816109ba01528181610b1701528181610b9201528181610e5301528181610f2e015281816110030152818161113d015281816112f201528181611656015281816118a70152818161197b01528181611dd801528181611eea0152613ebb015260c05181818161095501528181610c6601528181610ded0152818161107801528181611599015281816115ca015281816116bf015281816116f701528181611c3001528181611c6401528181613fc101528181613ff7015261432e015260e051818181610bc601528181610fa901528181611109015281816112bf01526115f90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101b75756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146104c45750806348bd7dfd146104175780638307c655146103b1578063a9270fbe14610356578063aad6e488146101b75763ecbbc0331461006a575f61000f565b346101b35760203660031901126101b35760405163ca4f280360e01b81526004803560601c908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101a8575f91610186575b508051906100f86100e283610604565b926100f060405194856105e3565b808452610604565b602083019190601f19013683375f5b8151811015610138576001906001600160a01b03610125828561065c565b5116610131828761065c565b5201610107565b505090604051918291602083019060208452518091526040830191905f5b818110610164575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610156565b6101a291503d805f833e61019a81836105e3565b8101906107bb565b5f6100d2565b6040513d5f823e3d90fd5b5f80fd5b346101b35760803660031901126101b3576004356101d3610518565b906101dc61052e565b91606435916001600160401b0383116101b357366023840112156101b35782600401359261020984610604565b9361021760405195866105e3565b8085526024602086019160051b830101913683116101b357602401905b8282106103465750505082519361024a85610604565b9461025860405196876105e3565b808652610267601f1991610604565b015f5b8181106103235750505f5b84518110156102d2578061028b6001928761065c565b51610294610670565b506102a181858888613d9d565b90604051916102af8361057e565b825260208201526102c0828961065c565b526102cb818861065c565b5001610275565b856040518091602082016020835281518091526020604084019201905f5b8181106102fe575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102f0565b6020906040516103328161057e565b5f81525f8382015282828a0101520161026a565b8135815260209182019101610234565b346101b35761036d61036736610544565b916122ab565b6040518091602082016020835281518091526020604084019201905f5b818110610398575050500390f35b825184528594506020938401939092019160010161038a565b346101b35760a03660031901126101b3576103ca610518565b6103d261052e565b6064359160028310156101b3576080926103f292608435926004356106a9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101b35761042536610544565b5050506040516104366080826105e3565b60038152602081016060368237600161044e8361061b565b52600261045a8361063c565b5260086104668361064c565b52604051906020820192602083525180935260408201905f935b80851061048d5783830384f35b9091825190600a8210156104b05760208160019382935201930194019390610480565b634e487b7160e01b5f52602160045260245ffd5b346101b35760403660031901126101b357631d04569d60e21b815260206004820181905260248201527f42616c616e636572563353776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b03821682036101b357565b604435906001600160a01b03821682036101b357565b60609060031901126101b357600435906024356001600160a01b03811681036101b357906044356001600160a01b03811681036101b35790565b604081019081106001600160401b0382111761059957604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761059957604052565b608081019081106001600160401b0382111761059957604052565b90601f801991011681019081106001600160401b0382111761059957604052565b6001600160401b0381116105995760051b60200190565b8051156106285760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156106285760400190565b8051600210156106285760600190565b80518210156106285760209160051b010190565b6040519061067d8261057e565b5f6020838281520152565b9190820391821161069557565b634e487b7160e01b5f52601160045260245ffd5b919493929094604051956106bc876105ad565b5f87525f602088015260408701966040516106d68161057e565b5f81525f602082015288528097861561072957505061070693926106fd9286925a956107ed565b85525a90610688565b60208401528251906040519161071b8361057e565b825260208201526040830152565b9550959650505050506040519061073f8261057e565b5f8252600160208301525290565b9080601f830112156101b35781519061076582610604565b9261077360405194856105e3565b82845260208085019360051b8201019182116101b357602001915b81831061079b5750505090565b82516001600160a01b03811681036101b35781526020928301920161078e565b906020828203126101b35781516001600160401b0381116101b3576107e0920161074d565b90565b600211156104b057565b60405163ca4f280360e01b8152606082901c600482015291945f949385846024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101a8575f9461228f575b506001600160a01b038716968715958615959091905f9081898961227e575b1561220a575050506001805b8180612203575b156110bf5750505060019061088e816107e3565b03610d95576001600160a01b03168015928515610d21578647955b8781610d1a575b6108b8613777565b506108c1613777565b506108ca613699565b50479015610cad575b604051936108e0856105ad565b60601c84528460208501528260408501526108f9613737565b936109038561061b565b5261090d8461061b565b506040519361091b856105c8565b8b85526020850152604084015284606084015261093661379b565b926109408461061b565b5261094a8361061b565b50858815610b7c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109868461061b565b51525b8715610aed576109b5928891610ae5575b604051634758db2f60e11b815293849283926004840161303b565b0381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610ab5575b50935b15610aa9575090808080610a1d94335af1610a176130b9565b506130f7565b61061b565b5193849215610a92575082610a3981938293610688565b335af1610a446130b9565b5015610a4d5790565b60405162461bcd60e51b815260206004820152601960248201527f4661696c656420746f207472616e7366657220455448283229000000000000006044820152606490fd5b916107e09350610aa191610688565b90339061468c565b610a1d9250339061468c565b610ad191503d8086833e610ac981836105e3565b810190612e51565b9150505f6109fb565b6040513d89823e3d90fd5b86915061099a565b610b12928291610ae557604051634758db2f60e11b815293849283926004840161303b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610b5f575b50936109fe565b610b7391503d8086833e610ac981836105e3565b9150505f610b58565b909150610c64575b610b908630338c614648565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc4818b614419565b7f0000000000000000000000000000000000000000000000000000000000000000610bef818c614419565b6001600160a01b0316803b15610c6057610c23918a918c836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991610c3c575b5090610989565b81610c46916105e3565b610c5157875f610c35565b8780fd5b6040513d8b823e3d90fd5b8980fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020610ca581610c9d8661061b565b51015161061b565b510152610b84565b506040516370a0823160e01b81523360048201529091506020816024818d5afa908115610c5557908992918391610ce5575b506108d3565b9250506020823d602011610d12575b81610d01602093836105e3565b810103126101b3578891515f610cdf565b3d9150610cf4565b50856108b0565b6040516370a0823160e01b81523360048201526020816024818c5afa908115610d8a579088918291610d55575b50956108a9565b9150506020813d602011610d82575b81610d71602093836105e3565b810103126101b3578790515f610d4e565b3d9150610d64565b6040513d8a823e3d90fd5b9596956001600160a01b031680159594909392610dc2908290849087908c90886110b7575b60601c614aaf565b505097610dcd61379b565b98610dd78a61061b565b52610de18961061b565b50868215610f965750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1e8961061b565b51525b8015610eff5790610e4f978593610ef7575b60405180998194829363286f580d60e01b8452600484016131c6565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610ecf575b50925b15610eb85750808080610a1d93610ea88661061b565b51335af1610a176130b9565b5190565b610a1d9150610ec68361061b565b5190339061468c565b610ee391503d8085833e610ac981836105e3565b9150505f610e8f565b6040513d84823e3d90fd5b869250610e33565b50508290610f29968291610f8e575b60405163286f580d60e01b81529788928392600484016131c6565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610f71575b5092610e92565b610f8591503d8085833e610ac981836105e3565b9150505f610f6a565b859150610f0e565b611076575b610fa783303384614648565b7f0000000000000000000000000000000000000000000000000000000000000000610fd384828461458c565b6001600160a01b031690813b15611072576040516387517c4560e01b8152918791839190829084908290611035907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060048401612dc8565b03925af180156110675790869161104e575b5050610e21565b81611058916105e3565b61106357845f611047565b8480fd5b6040513d88823e3d90fd5b8680fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660206110af81610c9d8d61061b565b510152610f9b565b8b9450610dba565b819a98939695949a9792971590816121fa575b5015611564575050506110e98260601c8886613251565b95919390946110f7816107e3565b611272576111078330338a614648565b7f000000000000000000000000000000000000000000000000000000000000000061113384828a61458c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811698911690813b15610c60578861118d928b92836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c555791899796959493918b9361124d575b50916111bd9593916111ed9997959360601c614c68565b90604051916111cd6020846105e3565b8383528360405180968195829463286f580d60e01b845260048401613194565b03925af1918215611241579161120f91836107e09492611223575b505061061b565b5191829033906001600160a01b031661468c565b61123792503d8091833e610ac981836105e3565b9150505f80611208565b604051903d90823e3d90fd5b61126091935097809294959697986105e3565b610c515787959493929189915f6111a6565b929094879492989697506112846136b7565b92604051966370a0823160e01b88523360048901526020886024818d5afa978815610ada578798611530575b506112bd8830338d614648565b7f00000000000000000000000000000000000000000000000000000000000000006112e8818c614419565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116959116803b1561152c578886611341928e836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991611517575b505060038110156115035791879594939160018d94145f146114a25750906113b5838361145599611388836113d19897614816565b9150506113948a61061b565b5261139e8961061b565b506001600160a01b0385811692169060601c6149e1565b9150506113c18661063c565b526113cb8561063c565b506146c8565b9150506113dd8361064c565b526113e78261064c565b506113f061379b565b91604051906113fe826105c8565b898252602082015286604082015289606082015261141b8361061b565b526114258261061b565b50604051916114356020846105e3565b83835283604051809681958294634758db2f60e11b845260048401612fc1565b03925af19182156112415761147f6107e0969593611498959383611493949261122357505061061b565b5196879333906001600160a01b031661468c565b610688565b9033903090614648565b9683926114b56114e2956114559a6146c8565b9150506114c18861061b565b526114cb8761061b565b506001600160a01b0390811692169060601c6149e1565b9150506114ee8361063c565b526114f88261063c565b506113d18988614816565b634e487b7160e01b88526021600452602488fd5b81611521916105e3565b610c5157875f611353565b8880fd5b9097506020813d60201161155c575b8161154c602093836105e3565b810103126101b35751965f6112b0565b3d915061153f565b89975061157f9060019a888760609a98999596979a1c612b73565b99909161158b816107e3565b14908694845f146121f457507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389166121ed577f0000000000000000000000000000000000000000000000000000000000000000935b8381156121e057612171575b7f000000000000000000000000000000000000000000000000000000000000000061162c83826001600160a01b038b1661458c565b6001600160a01b0316803b156101b3576040516387517c4560e01b8152905f9082908183816116887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f60048401612dc8565b03925af180156101a85761215c575b505b83611c0957611bee575b506060998a956001600160a01b0381161591908215611be857507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0381169c8d15918215611be257507f0000000000000000000000000000000000000000000000000000000000000000945b6005811015611bce57918d93918360018e95145f14611aad5750505050505061173f6136f7565b6040516338d52e0f60e01b81529097906020816004816001600160a01b0388165afa908115611aa257918a93918d9695938791611a4a575b506117af94939261179d92909185916001600160a01b03918216918b169060601c614aaf565b9150506117a98a61061b565b52614816565b9150506117bb8761063c565b525b156119fa57506117cb61379b565b6040516370a0823160e01b815230600482015290916001600160a01b031690602081602481855afa908115610c55579089959493929186916119bd575b5061183e939495966040519261181d846105c8565b8352602083015260408201528660608201526118388261061b565b5261061b565b505b15611944576118a3926118836040519261185b6020856105e3565b84845260405163286f580d60e01b81526080600482015295869485938493608485019061313c565b5f1960248501526001604485015283810360031901606485015290612f9d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575b5061061b565b519283916001600160a01b031615611908576107e09250339061468c565b50908080806107e094335af1610a176130b9565b61193091503d8086833e610ac981836105e3565b9150505f6118e4565b6040513d85823e3d90fd5b6119769250604051906119586020836105e3565b82825260405163286f580d60e01b8152938492839260048401613194565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575061061b565b93949550506020833d6020116119f2575b816119db602093836105e3565b810103126101b3579151889493929061183e611808565b3d91506119ce565b939250611a0561379b565b9260405191611a13836105c8565b6001600160a01b0316825260208201526040810185905260016060820152611a3a8361061b565b52611a448261061b565b50611840565b92945050919394506020813d602011611a9a575b81611a6b602093836105e3565b81010312611a96579261179d6117af938b80948f9897611a8a90612b13565b92949596509250611777565b8b80fd5b3d9150611a5e565b6040513d8e823e3d90fd5b859897939596949650600281145f14611b13575050505090611aef8392611b0194611ad66136f7565b9b6001600160a01b0385811691908b169060601c614aaf565b915050611afb8a61061b565b52614908565b915050611b0d8761063c565b526117bd565b929b9195949350909160038103611b6357505090611b01939291611b356136f7565b9a611b408484614816565b915050611b4c8d61061b565b526001600160a01b0390811692169060601c614aaf565b6004919b9594935014611b7a575b505050506117bd565b611bb8939950611b886136f7565b99611b938389614908565b915050611b9f8c61061b565b526001600160a01b03908116919088169060601c614aaf565b915050611bc48761063c565b525f808881611b71565b634e487b7160e01b8e52602160045260248efd5b94611718565b946116e0565b611c039030336001600160a01b038916614648565b5f6116a3565b9794918897919496999a9b935047986120db575b6060936001600160a01b038b166120d4577f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389161580156120cd577f0000000000000000000000000000000000000000000000000000000000000000935b60058110156120b857918f91838f959360018d96145f14611fcf5750505050505050611caf6136f7565b6040516338d52e0f60e01b815290926020826004816001600160a01b0387165afa918215611fc257908c8f928a94611f72575b50611d169492611d0a926001600160a01b0392831615928692811691908b169060601c614aaf565b9150506117a98561061b565b915050611d228261063c565b525b611d2c61379b565b6040516370a0823160e01b815230600482015290936001600160a01b031691602082602481865afa918215611f6757908d95949392918692611f30575b5060405192611d77846105c8565b835260208301526040820152856060820152611d928361061b565b52611d9c8261061b565b5015611eb357611dd49260405191611db56020846105e3565b838352604051809581948293634758db2f60e11b845260048401612fc1565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b519788976001600160a01b031615611e865750611e459133906001600160a01b031661468c565b15611e6957506107e092611e5891610688565b9033906001600160a01b031661468c565b80809350611e7b6107e0958294610688565b335af1610a176130b9565b611e9a925080808093335af1610a176130b9565b611e45565b61193091503d8088833e610ac981836105e3565b611ee5925060405190611ec76020836105e3565b828252604051634758db2f60e11b8152938492839260048401612fc1565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b955090506020853d602011611f5f575b81611f4d602093836105e3565b810103126101b3578c9451905f611d69565b3d9150611f40565b6040513d8f823e3d90fd5b92505091506020813d602011611fba575b81611f90602093836105e3565b81010312611fb65791611d0a8c898094611fac611d1697612b13565b9496509250611ce2565b8d80fd5b3d9150611f83565b8e604051903d90823e3d90fd5b95969495939492936002820361203057505050505061201261201e939483611ff56136f7565b966001600160a01b039081161592858216918b169060601c614aaf565b915050611afb8561061b565b91505061202a8261063c565b52611d24565b9397929650909493926003820361206857505061201e9495506120516136f7565b9561205c8484614816565b915050611b4c8861061b565b6004929350501461207d575b50505050611d24565b6120a293945061208b6136f7565b946120968389614908565b915050611b9f8761061b565b9150506120ae8261063c565b525f808681612074565b50634e487b7160e01b8f52602160045260248ffd5b8993611c85565b8a94611c51565b6040516370a0823160e01b81523360048201526001600160a01b038b1699506020816024818d5afa8015611f675786908e90612126575b61212192509a30903390614648565b611c1d565b50506020813d602011612154575b81612141602093836105e3565b810103126101b357856121219151612112565b3d9150612134565b612169919b505f906105e3565b5f995f611697565b6040516370a0823160e01b81523360048201529091506020816024816001600160a01b038b165afa9081156101a8575f916121ae575b50906115f7565b90506020813d6020116121d8575b816121c9602093836105e3565b810103126101b357515f6121a7565b3d91506121bc565b1561169957479150611699565b88936115eb565b946115ba565b9050155f6110d2565b508061087a565b5f9b9a9794929b999693919895995b895181101561226c576001600160a01b03612234828c61065c565b51168c810361224b57509050600180915b01612219565b6001600160a01b038c1614612263575b600190612245565b60019c5061225b565b50919396999a90929598949750610873565b506001600160a01b03861615610867565b6122a49194503d805f833e61019a81836105e3565b925f610848565b60405163ca4f280360e01b8152606082811c6004830181905295949391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290915f85602481875afa9485156101a8575f95612af7575b506001600160a01b038216945f908187158015612ae6575b15612a76575050506001805b8180612a6f575b156124725750505050505f604051956123516060886105e3565b6002875260403660208901376024604051809481936333f0703b60e11b835260048301525afa9283156101a8575f915f94612449575b506001600160a01b0316915f5b825181101561244257816001600160a01b036123b0838661065c565b511614612411575b836001600160a01b036123cb838661065c565b5116146123db575b600101612394565b6123e5818661065c565b519060038202918083046003149015171561069557600a600192046124098961063c565b5290506123d3565b61241b818661065c565b5160038102908082046003149015171561069557600a900461243c8861061b565b526123b8565b5050505050565b90935061246891503d805f833e61246081836105e3565b8101906137e8565b509390505f612387565b8196949695929395159081612a66575b50156124a5575050505061249b6107e094958483613251565b949192909361390d565b889550865f9893956124b99395989a612b73565b969094604051946124ca81876105e3565b60028652601f19013660208701376024604051809581936333f0703b60e11b835260048301525afa9586156101a8575f925f97612a41575b505f9460058110156104b0576001810361268e575093966001600160a01b031693505f5b825181101561261b576001600160a01b03612541828561065c565b51168681146125ea575b6040516338d52e0f60e01b81526020816004818a5afa9081156101a8575f916125b1575b506001600160a01b031614612587575b600101612526565b9650612593878761065c565b5160038102908082046003149015171561069557600a90049661257f565b90506020813d82116125e2575b816125cb602093836105e3565b810103126101b3576125dc90612b13565b5f61256f565b3d91506125be565b6125f4828961065c565b5160038102908082046003149015171561069557600a90046126158661061b565b5261254b565b509591945050602091925060246040518094819363ef8b30f760e01b835260048301525afa9081156101a8575f9161265c575b506126588261063c565b5290565b90506020813d602011612686575b81612677602093836105e3565b810103126101b357515f61264e565b3d915061266a565b9397949695949093600281036127875750505f5b825181101561273f576001600160a01b036126bd828561065c565b51168581036126fd57506126d1818761065c565b519060038202918083046003149015171561069557600a600192046126f58a61061b565b525b016126a2565b6001600160a01b03851614612715575b6001906126f7565b9550612721868661065c565b5160038102908082046003149015171561069557600a90049561270d565b5060405163266d6a8360e11b81526004810196909652959493506020925083916024915082906001600160a01b03165afa9081156101a8575f9161265c57506126588261063c565b93965090939092600381036128ab575092946001600160a01b03928316935091909116905f5b815181101561244257836001600160a01b036127c9838561065c565b5116848114612817575b146127e1575b6001016127ad565b6127eb818661065c565b519060038202918083046003149015171561069557600a6001920461280f8961063c565b5290506127d9565b9050612823828761065c565b51906003820291808304600314901517156106955760405163266d6a8360e11b8152600a9092046004830152602082602481885afa80156101a85786925f91612877575b506128718a61061b565b526127d3565b9250506020823d82116128a3575b81612892602093836105e3565b810103126101b3578591515f612867565b3d9150612885565b600491959394979650146128c1575b5050505090565b9294939290916001600160a01b0316905f5b8151811015612a31576001600160a01b036128ee828461065c565b5116838114612a00575b6040516338d52e0f60e01b81526020816004818c5afa9081156101a8575f916129c7575b506001600160a01b031614612934575b6001016128d3565b61293e818561065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818b5afa80156101a8575f90612995575b6001925061298d8761061b565b52905061292c565b506020823d82116129bf575b816129ae602093836105e3565b810103126101b35760019151612980565b3d91506129a1565b90506020813d82116129f8575b816129e1602093836105e3565b810103126101b3576129f290612b13565b5f61291c565b3d91506129d4565b612a0a828661065c565b5160038102908082046003149015171561069557600a9004612a2b8761063c565b526128f8565b505050509091505f8080806128ba565b909650612a599192503d805f833e61246081836105e3565b509291905091955f612502565b9050155f612482565b5080612337565b5f99959391969492999897985b8751811015612ad6576001600160a01b03612a9e828a61065c565b51168a8103612ab557509050600180915b01612a83565b6001600160a01b038a1614612acd575b600190612aaf565b60019a50612ac5565b5091939550919397969596612330565b506001600160a01b03891615612324565b612b0c9195503d805f833e61019a81836105e3565b935f61230c565b51906001600160a01b03821682036101b357565b15612b2e57565b60405162461bcd60e51b815260206004820152601760248201527f546f6b656e206e6f7420666f756e6420696e20706f6f6c0000000000000000006044820152606490fd5b60405163ca4f280360e01b81526001600160a01b0391821660048201525f949092918590849060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9283156101a8575f93612dac575b5015612cc15750612be082614320565b15612bed5750506001915b565b5f5b8151811015612cb9576001600160a01b03612c0a828461065c565b5116612c1581614320565b80612c47575b612c285750600101612bef565b93505050505b612c426001600160a01b0382161515612b27565b600291565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612c80575b506001600160a01b03858116911614612c1b565b90506020813d8211612cb1575b81612c9a602093836105e3565b810103126101b357612cab90612b13565b5f612c6c565b3d9150612c8d565b505050612c2e565b9150612ccc82614320565b15612cd8575050600491565b5f5b8151811015612da4576001600160a01b03612cf5828461065c565b5116612d0081614320565b80612d32575b612d135750600101612cda565b93505050505b612d2d6001600160a01b0382161515612b27565b600391565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612d6b575b506001600160a01b03858116911614612d06565b90506020813d8211612d9c575b81612d85602093836105e3565b810103126101b357612d9690612b13565b5f612d57565b3d9150612d78565b505050612d19565b612dc19193503d805f833e61019a81836105e3565b915f612bd0565b6001600160a01b0391821681529181166020830152604082015265ffffffffffff606082015260800190565b9080601f830112156101b3578151612e0b81610604565b92612e1960405194856105e3565b81845260208085019260051b8201019283116101b357602001905b828210612e415750505090565b8151815260209182019101612e34565b916060838303126101b35782516001600160401b0381116101b35782612e78918501612df4565b9260208101516001600160401b0381116101b357810183601f820112156101b357805190612ea582610604565b91612eb360405193846105e3565b80835260208084019160051b830101918683116101b357602001905b828210612ef7575050509260408201516001600160401b0381116101b3576107e09201612df4565b60208091612f0484612b13565b815201910190612ecf565b90608081019160018060a01b038151168252602081015192608060208401528351809152602060a084019401905f5b818110612f5e575050506060816040829301516040850152015191015290565b825180516001600160a01b0390811688526020828101519091168189015260409182015115159188019190915260609096019590920191600101612f3e565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9291608084019360808152825180955260a0810194602060a08260051b8401019401905f5b818110613010575050506107e09394505f1960208201525f60408201526060818403910152612f9d565b90919460208061302c600193609f19888203018c528951612f0f565b97019801910196919096612fe6565b9291926080810160808252825180915260a0820190602060a08260051b8501019401915f905b82821061308e57505050506107e092935f1960208301521515604082015260608183039101526060612f9d565b909192946020806130ab600193609f198982030186528951612f0f565b970192019201909291613061565b3d156130f2573d906001600160401b03821161059957604051916130e7601f8201601f1916602001846105e3565b82523d5f602084013e565b606090565b156130fe57565b60405162461bcd60e51b815260206004820152601660248201527508cc2d2d8cac840e8de40e8e4c2dce6cccae4408aa8960531b6044820152606490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061316757505050505090565b9091929394602080613185600193601f198682030187528951612f0f565b97019301930191939290613158565b90916131ab6107e09360808452608084019061313c565b915f1960208201525f60408201526060818403910152612f9d565b6131dc6107e0939260808352608083019061313c565b5f1960208301529115156040820152808203606091820152612f9d565b1561320057565b60405162461bcd60e51b8152602060048201526024808201527f435553544f4d5f5752415028343632362d34363236293a20496e76616c696420604482015263141bdbdb60e21b6064820152608490fd5b60405163ca4f280360e01b81526001600160a01b039384166004820152925f929183918290869060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f9561367d575b506132b981614320565b8061366e575b1561346c576040516338d52e0f60e01b81529190602090839060049082906001600160a01b03165afa9182156101a8575f9261342b575b506040516338d52e0f60e01b815292602090849060049082906001600160a01b03165afa9283156101a8575f936133ef575b505f5b85518110156133e5576001600160a01b03613346828861065c565b51166001600160a01b0383161515806133d3575b61339a576001600160a01b0384168114613392575b6001600160a01b0385168114613389575b5060010161332b565b94506001613380565b91508161336f565b5050935050505b6001600160a01b0382161515806133c1575b6133bc906131f9565b600292565b506001600160a01b03811615156133b3565b506001600160a01b038616151561335a565b50935050506133a1565b9092506020813d602011613423575b8161340b602093836105e3565b810103126101b35761341c90612b13565b915f613328565b3d91506133fe565b9291506020833d602011613464575b81613447602093836105e3565b810103126101b357602061345c600494612b13565b9293506132f6565b3d915061343a565b91949061347883614320565b158061365e575b15613619575f5b855181101561360e576001600160a01b036134a1828861065c565b51166134ac81614320565b6134ba575b50600101613486565b6001600160a01b0383161515806135fc575b6135c2576040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613589575b506001600160a01b03868116911614613581575b6040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613548575b506001600160a01b038981169116036134b157945060016134b1565b90506020813d8211613579575b81613562602093836105e3565b810103126101b35761357390612b13565b5f61352c565b3d9150613555565b915081613508565b90506020813d82116135ba575b816135a3602093836105e3565b810103126101b3576135b490612b13565b5f6134f4565b3d9150613596565b505093509350505b6001600160a01b0382161515806135ea575b6135e5906131f9565b600192565b506001600160a01b03811615156135dc565b506001600160a01b03861615156134cc565b5093509350506135ca565b60405162461bcd60e51b815260206004820152601b60248201527f435553544f4d5f575241503a20496e76616c696420746f6b656e7300000000006044820152606490fd5b5061366886614320565b1561347f565b5061367883614320565b6132bf565b6136929195503d805f833e61019a81836105e3565b935f6132af565b604051906136a6826105ad565b5f6040838281528260208201520152565b604051608091906136c883826105e3565b6003815291601f1901825f5b8281106136e057505050565b6020906136eb613699565b828285010152016136d4565b6040516060919061370883826105e3565b6002815291601f1901825f5b82811061372057505050565b60209061372b613699565b82828501015201613714565b6040805190919061374883826105e3565b6001815291601f1901825f5b82811061376057505050565b60209061376b613699565b82828501015201613754565b60405190613784826105c8565b5f6060838281528160208201528260408201520152565b604080519091906137ac83826105e3565b6001815291601f1901825f5b8281106137c457505050565b6020906137cf613777565b828285010152016137b8565b519081151582036101b357565b906080828203126101b35781516001600160401b0381116101b3578161380f91840161074d565b9260208301516001600160401b0381116101b357830182601f820112156101b357805161383b81610604565b9161384960405193846105e3565b818352602060608185019302820101908582116101b357602001915b8183106138ad575050509260408101516001600160401b0381116101b3578361388f918301612df4565b9260608201516001600160401b0381116101b3576107e09201612df4565b6060838703126101b357604051906138c4826105ad565b835160028110156101b35782526020840151906001600160a01b03821682036101b357826020928360609501526138fd604087016137db565b6040820152815201920191613865565b959460405161391d6060826105e3565b6002815260403660208301376040516333f0703b60e11b815260609890981c60048901529485905f896024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9586156101a8575f995f97613d78575b5060038110156104b057600114613bf55750506040516338d52e0f60e01b81526001600160a01b0392909216969190506020816004818a5afa9081156101a8575f91613bbb575b506040516338d52e0f60e01b81526001600160a01b039384169791909316926020816004818b5afa9081156101a8575f91613b81575b506001600160a01b0316925f5b8351811015613b7657816001600160a01b03613a2b838761065c565b511614613ae9575b846001600160a01b03613a46838761065c565b511614613a56575b600101613a0f565b613a60818761065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818d5afa80156101a8575f90613ab7575b60019250613aaf8961063c565b529050613a4e565b506020823d8211613ae1575b81613ad0602093836105e3565b810103126101b35760019151613aa2565b3d9150613ac3565b613af3818761065c565b516003810290808204600314901517156106955760405163ef8b30f760e01b8152600a9091046004820152602081602481875afa9081156101a8575f91613b45575b50613b3f8861061b565b52613a33565b90506020813d8211613b6e575b81613b5f602093836105e3565b810103126101b357515f613b35565b3d9150613b52565b509496505050505050565b90506020813d602011613bb3575b81613b9c602093836105e3565b810103126101b357613bad90612b13565b5f613a02565b3d9150613b8f565b90506020813d602011613bed575b81613bd6602093836105e3565b810103126101b357613be790612b13565b5f6139cc565b3d9150613bc9565b935094509590505f5b8151811015613d6f576001600160a01b03613c19828461065c565b516001600160a01b038516929116828103613cc25750613c39818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613c90575b60019250613c888761061b565b525b01613bfe565b506020823d8211613cba575b81613ca9602093836105e3565b810103126101b35760019151613c7b565b3d9150613c9c565b6001600160a01b03891692508214613cde575b60019150613c8a565b613ce8818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613d3d575b60019250613d378761063c565b52613cd5565b506020823d8211613d67575b81613d56602093836105e3565b810103126101b35760019151613d2a565b3d9150613d49565b50929450505050565b909650613d909199503d805f833e61246081836105e3565b509991905098955f613985565b909392935f9160601c6040519363ca4f280360e01b85528160048601525f8560248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f95614304575b506001600160a01b038316801580159690959194905f9081888a6142f3575b15614283575050506001805b818061427c575b15613f1857509798613eb698505f97613e9d97613e5b97909692956001600160a01b031694509250613f0f57614aaf565b5050613e6561379b565b90613e6f8261061b565b52613e798161061b565b506040516338ed77fd60e21b8152606060048201529384928392606484019061313c565b3060248401528281036003190160448401526060612f9d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101a857610eb4915f91613efb575061061b565b61193091503d805f833e610ac981836105e3565b82159450614aaf565b9195508092999496939750159081614273575b5015613f83575050613eb69495509181613f5693613f4c83875f9896613251565b9591939094614c68565b60405190613f656020836105e3565b8282526040516338ed77fd60e21b8152938492839260048401614d9f565b613f9290868587989497612b73565b909160058310156104b05782613fab5750505050505050565b909192939495969750606094865f1461426d57507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0382161591821561426757507f0000000000000000000000000000000000000000000000000000000000000000935b60018103614152575050505061402c6136f7565b6040516338d52e0f60e01b8152959094906020876004816001600160a01b0387165afa9687156101a8575f976140f9575b50613eb6965f96959493614096938593919261408a9285916001600160a01b0390811691908a1690614aaf565b9150506117a98761061b565b9150506140a28461063c565b525b6140ac61379b565b92604051926140ba846105c8565b6001600160a01b0316835260208301526040820152600160608201526140df8261061b565b526140e98161061b565b5060405190613f656020836105e3565b909594939296506020813d60201161414a575b81614119602093836105e3565b810103126101b357613eb69661408a61409693855f996141398296612b13565b9b509450509350509293949561405d565b3d915061410c565b91613eb698969594915f9893600281148a146141b257505050506141a09161419484928361417e6136f7565b986001600160a01b0385811691908a1690614aaf565b915050611afb8761061b565b9150506141ac8461063c565b526140a4565b92979194935090916003811489146142005750506141a0929184916141d56136f7565b976141e08484614816565b9150506141ec8a61061b565b526001600160a01b03908116921690614aaf565b6004919794935014614215575b5050506140a4565b61425292955083906142256136f7565b966142308388614908565b91505061423c8961061b565b526001600160a01b039081169190871690614aaf565b91505061425e8461063c565b525f808061420d565b93614018565b94613fe2565b9050155f613f2b565b5080613e2a565b5f9a9693919799959894929a5b88518110156142e3576001600160a01b036142ab828b61065c565b51168b81036142c257509050600180915b01614290565b6001600160a01b038b16146142da575b6001906142bc565b60019b506142d2565b5091939794989650919498613e23565b506001600160a01b03861615613e17565b6143199195503d805f833e61019a81836105e3565b935f613df8565b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168114614414576040516338d52e0f60e01b8152602081600481855afa90816143dd575b5061437b57505f90565b602060249160405192838092636c82bbbf60e11b82523360048301525afa90816143ae575b506143a9575f90565b600190565b6020813d6020116143d5575b816143c7602093836105e3565b810103126101b357516143a0565b3d91506143ba565b6020813d60201161440c575b816143f6602093836105e3565b810103126101b35761440790612b13565b614371565b3d91506143e9565b505f90565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529391929190821690602084604481855afa9384156101a8575f94614558575b505f1984018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481015b03601f1981018852876105e3565b85519082855af1906144be6130b9565b8261451e575b5081614513575b50156144d657505050565b61450e612beb936040519063095ea7b360e01b602083015260248201525f6044820152604481526145086064826105e3565b82614dca565b614dca565b90503b15155f6144cb565b80519192508115918215614536575b5050905f6144c4565b81925090602091810103126101b357602061455191016137db565b5f8061452d565b9093506020813d602011614584575b81614574602093836105e3565b810103126101b35751925f61445d565b3d9150614567565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156101a8575f95614614575b5084018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481016144a0565b9094506020813d602011614640575b81614630602093836105e3565b810103126101b35751935f6145cf565b3d9150614623565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152612beb9161450e6084836105e3565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612beb9161450e6064836105e3565b91906146d2613777565b926146db613777565b506146e4613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916147dc575b5060405192906001600160a01b031661472e846105ad565b82845260208401526001604084015282614746613737565b906147508261061b565b5261475a8161061b565b506040516370a0823160e01b815230600482015290602082602481875afa9182156101a8575f926147a8575b5060405193614794856105c8565b845260208401526040830152606082015291565b9091506020813d6020116147d4575b816147c4602093836105e3565b810103126101b35751905f614786565b3d91506147b7565b90506020813d60201161480e575b816147f7602093836105e3565b810103126101b35761480890612b13565b5f614716565b3d91506147ea565b9061481f613777565b50614828613777565b91614831613699565b506040516001600160a01b03919091169161484b826105ad565b828252826020830152600160408301528192614865613737565b9261486f8461061b565b526148798361061b565b506020600491604051928380926338d52e0f60e01b82525afa9081156101a8575f916148ce575b5060405192906001600160a01b03166148b8846105c8565b8352602083015260408201526001606082015292565b90506020813d602011614900575b816148e9602093836105e3565b810103126101b3576148fa90612b13565b5f6148a0565b3d91506148dc565b90614911613777565b5061491a613777565b91614923613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916149a7575b5060405192906001600160a01b031661496d846105ad565b82845260208401526001604084015282614985613737565b9061498f8261061b565b526149998161061b565b50604051926148b8846105c8565b90506020813d6020116149d9575b816149c2602093836105e3565b810103126101b3576149d390612b13565b5f614955565b3d91506149b5565b919093926149ed613777565b946149f6613777565b506149ff613699565b506040516370a0823160e01b81523360048201526001600160a01b039190911692602082602481875afa9182156101a8575f92614a7b575b5060405194614a45866105ad565b6001600160a01b0390811686521660208501525f604085015283614a67613737565b90614a718261061b565b526147868161061b565b9091506020813d602011614aa7575b81614a97602093836105e3565b810103126101b35751905f614a37565b3d9150614a8a565b929091614aba613777565b50614ac3613777565b94614acc613699565b5015614b43575b60405193614ae0856105ad565b6001600160a01b0390811685521660208401525f604084015282614b02613737565b90614b0c8261061b565b52614b168161061b565b5060405192614b24846105c8565b6001600160a01b03168352602083015260408201526001606082015292565b6040516370a0823160e01b81523360048201526020816024816001600160a01b0388165afa9081156101a8575f91614b7d575b5050614ad3565b90506020813d602011614ba7575b81614b98602093836105e3565b810103126101b357515f614b76565b3d9150614b8b565b919092614bba613777565b50614bc3613777565b93614bcc613699565b506040516370a0823160e01b81523360048201526001600160a01b03919091169290602081602481875afa9081156101a8575f91614c36575b505060405193614c14856105ad565b6001600160a01b0390811685521660208401525f604084015282614985613737565b90506020813d602011614c60575b81614c51602093836105e3565b810103126101b357515f614c05565b3d9150614c44565b9695909492939196614c786136b7565b9760038410156104b0578593600103614d4457508284614cc992614c9f83614ce598614816565b915050614cab8c61061b565b52614cb58b61061b565b506001600160a01b03858116921690614baf565b915050614cd58861063c565b52614cdf8761063c565b50614908565b915050614cf18561064c565b52614cfb8461064c565b50614d0461379b565b9360405192614d12846105c8565b6001600160a01b031683526020830152604082015260016060820152614d378361061b565b52614d418261061b565b50565b91614ce594614d83928592614d59848b614908565b915050614d658d61061b565b52614d6f8c61061b565b506001600160a01b03908116921690614baf565b915050614d8f8861063c565b52614d998761063c565b50614816565b9091614db66107e09360608452606084019061313c565b915f60208201526040818403910152612f9d565b5f80614df29260018060a01b03169360208151910182865af1614deb6130b9565b9083614e3d565b8051908115159182614e1a575b5050614e085750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101b3576020614e3591016137db565b155f80614dff565b90614e615750805115614e5257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580614e92575b614e72575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614e6a56fea2646970667358221220e323e5fa26c6abf091be22f35678640537c279bbf3c0177d321594dfa3820d9b64736f6c634300081b003360c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a5374616b6564205553444360a81b602084015280519161006f8284610373565b6005835264735553444360d81b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b003360c08060405234610371576020816113ed803803809161001f8285610375565b83398101031261037157516001600160a01b03811681036103715760409081519161004a8184610375565b600c83526b0a6e8c2d6cac8408e9e8aa8960a31b60208401528051916100708284610375565b60068352650e68e9e8aa8960d31b602084015283516001600160401b03811161028257600354600181811c91168015610367575b602082101461026457601f8111610304575b50602094601f82116001146102a1579481929394955f92610296575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028257600454600181811c91168015610278575b602082101461026457601f8111610201575b506020601f821160011461019e57819293945f92610193575b50508160011b915f199060031b1c1916176004555b61015181610398565b901561018b575b60a05260805251610fa2908161044b82396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610158565b015190505f80610133565b601f1982169060045f52805f20915f5b8181106101e9575095836001959697106101d1575b505050811b01600455610148565b01515f1960f88460031b161c191690555f80806101c3565b9192602060018192868b0151815501940192016101ae565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061025a575b601f0160051c01905b81811061024f575061011a565b5f8155600101610242565b9091508190610239565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b601f1982169560035f52805f20915f5b8881106102ec575083600195969798106102d4575b505050811b016003556100e7565b01515f1960f88460031b161c191690555f80806102c6565b919260206001819286850151815501940192016102b1565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035d575b601f0160051c01905b81811061035257506100b6565b5f8155600101610345565b909150819061033c565b90607f16906100a4565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028257604052565b5f8091604051602081019063313ce56760e01b8252600481526103bc602482610375565b51916001600160a01b03165afa3d15610442573d906001600160401b03821161028257604051916103f7601f8201601f191660200184610375565b82523d5f602084013e5b80610436575b610413575b505f905f90565b602081805181010312610371576020015160ff811161040c579060ff6001921690565b50602081511015610407565b60609061040156fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220f270e5db4714581ca643030a27a939347bb30d1896f3ece686528fa2decf041d64736f6c634300081b003360c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a0a6e8c2d6cac8408aa890f60ab1b602084015280519161006f8284610373565b60058352640e68aa890f60db1b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220b086c5fd69f84195c720e651bd0c3fdfe94026eb8e5f77216c898ab4d4455cb664736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000440017a1b021006d556d7fc06a54c32e42eb745b4ab7ab316d43345009b2140e0580b072eec7df16000000000000000000000000000000000000000000000000775f661b0bd1739349b9a2a3ef60be277c5d2d29c4ce391d82d164c166df9c8336ddf84206b2f812000000000000000000000000000000000000000000000000a35b1b31ce002fbf2058d22f30f95d405200a15b0000000000000000000000000fe906e030a44ef24ca8c7dc7b7c53a6c4f00ce9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000bfc9d54fc184518a81162f8fb99c2eaca081202f91c11ba4220b7a72e1dc5e92f2b48d3fdf6272600000000000000000000000073746453746f726167652066696e642853746453746f72616765293a20506163a264697066735822122042e76fa1080ae84cb7f9f10596b258c5e516e57219c6f06fae0ff1080187545064736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"632:46320:68:-:0;;;;;;;;;:::i;:::-;-1:-1:-1;632:46320:68;;;;;:::i;:::-;-1:-1:-1;632:46320:68;;3166:4:2;632:46320:68;;3166:4:2;632:46320:68;;;3166:4:2;632:46320:68;3166:4:2;632:46320:68;;1038:4:12;632:46320:68;;;1038:4:12;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:46320:68;;;;;;;;;:::i;:::-;564:29:65;632:46320:68;;-1:-1:-1;;;632:46320:68;;;;;564:29:65;;632:46320:68;;;;:::i;:::-;;;;-1:-1:-1;;;632:46320:68;;;;;564:29:65;;632:46320:68;;;;:::i;:::-;564:29:65;632:46320:68;;-1:-1:-1;;;632:46320:68;;;;564:29:65;;;632:46320:68;;;564:29:65;632:46320:68;;;564:29:65;632:46320:68;;;-1:-1:-1;;632:46320:68;;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;564:29:65;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;-1:-1:-1;;;;;;632:46320:68;;;;;1667:13:28;632:46320:68;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;632:46320:68;;;;-1:-1:-1;;;;;632:46320:68;;;;;1690:17:28;632:46320:68;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;632:46320:68;;923:56;632:46320;;-1:-1:-1;;;;;;632:46320:68;936:42;632:46320;;;;;;;;;;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;;;1690:17:28;632:46320:68;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;1690:17:28;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;;;;;1690:17:28;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;;;;564:29:65;632:46320:68;1690:17:28;632:46320:68;;;;;;;;1667:13:28;632:46320:68;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;1667:13:28;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;;;;;1667:13:28;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;;;;;;;;;;;;;3166:4:2;632:46320:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x61016080604052600436101562000014575f80fd5b5f905f3560e01c90816306fdde03146200e61c5750806308c41745146200e5db578063095ea7b3146200e52d5780630a9254e4146200b3585780630bdca2c1146200aa3b5780630eed78c4146200a76257806318160ddd146200a7425780631e1685c0146200a7175780631ed7831c146200a69257806323b872dd146200a5a25780632ade3880146200a41c578063313ce567146200a3fe578063325a4265146200a2595780633e5e3c23146200a1d45780633f7286f4146200a14f5780633fbb8b681462009f5157806342f331481462009cfa5780634964eb1a14620092895780634c6b2e7e146200925e5780635090a8ce1462008f8557806356733b9114620087515780636181917e1462007ccb57806366d9a9a01462007b0557806367b4dbe714620071a457806370a082311462007168578063790a2a0b1462006e8f57806385226c811462006de85780638c15484614620063bb578063916a17c6146200610f57806395d89b41146200603157806396a2fce61462005d585780639a8ebd3614620052e35780639e8518b314620048b6578063a00872f1146200483f578063a9059cbb1462004807578063b5508aa91462004758578063ba414fa6146200472f578063c102053a14620044c3578063c700ea2e14620041ea578063cf18b43d1462003f11578063d170c3cc1462003c15578063d32913cc14620031d8578063d3a14f16146200291c578063d46cbfcd14620026c5578063d7ffd44d1462001c60578063d85792281462001c35578063dd62ed3e1462001bdc578063e198fb1814620008fc578063e20c9f711462000866578063f08985501462000560578063f3869e2414620002b75763fa7626d41462000290575f80fd5b34620002b45780600319360112620002b457602060ff601e54166040519015158152f35b80fd5b5034620002b4576020366003190112620002b45760295460275460255460405163549387df60e11b81525f5160206201b2605f395f51905f526004808301919091526001600160a01b03948516602483018190529385166044830181905290359594909392859183916064918391165afa9081156200051857906200034591859162000539575b506200eccd565b5184108062000527575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620004fb575b50909391604094855193620003b687866200e74e565b600185526020850190601f198801368337620003d2866200eccd565b52620003dd6200f38e565b602554875163155adc9160e31b81525f5160206201b2605f395f51905f5260048201526024810193909352604483019390935260806064830152935160848201819052909384926001600160a01b03169160a484019190855b818110620004de5750505083838281935003925af1928315620004d357508192620004aa575b50805b8251811015620004a65780620004846200047c600193866200ecec565b51516200f3e3565b6200049f60206200049683876200ecec565b5101516200f3e3565b016200045f565b5080f35b620004cb9192503d8084833e620004c281836200e74e565b8101906200eda6565b905f6200045c565b51913d9150823e3d90fd5b825184528896508795506020938401939092019160010162000436565b8162000507916200e74e565b6200051457825f620003a0565b8280fd5b6040513d86823e3d90fd5b8380fd5b5067016345785d8a000084116200034f565b6200055991503d8087833e6200055081836200e74e565b8101906200ec4a565b5f6200033e565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1405f395f51905f526024830152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca060448301523592918290829060649082906001600160a01b03165afa9081156200081557829162000848575b5062000607620006006200f047565b916200eccd565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162000824575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa80156200081557908291620007fc575b5050604091818351620006c085826200e74e565b600181526020810192601f198601368537620006dc826200eccd565b52620006e76200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620007df5750505083838281935003925af1928315620004d357508192620007bf575b50805b8251811015620004a65780620007a66200047c600193866200ecec565b620007b860206200049683876200ecec565b0162000789565b620007d79192503d8084833e620004c281836200e74e565b905f62000786565b825184528896508795506020938401939092019160010162000760565b8162000808916200e74e565b620002b457805f620006ac565b6040513d84823e3d90fd5b5080fd5b8162000830916200e74e565b6200082057815f62000659565b6040513d85823e3d90fd5b6200085f91503d8084833e6200055081836200e74e565b5f620005f1565b5034620002b45780600319360112620002b45760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110620008dc57620008d885620008cb818703826200e74e565b604051918291826200e7bf565b0390f35b82546001600160a01b0316845260209093019260019283019201620008b0565b5034620002b4576200090e366200e79e565b60295460275460255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201526001600160a01b03938416602482018190529284166044820181905295929492938792839183916064918391165afa9081156200081557829162001bbe575b50821562001bb6576001925b15620018365762000994906200ecdb565b5183108062001824575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762001807575b508060405160208101906370a0823160e01b82523060248201526024815262000a176044826200e74e565b5190865afa5062000a3b62000a2b62010eea565b602080825183010191016200eb28565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a9081600162000aa99301600e556200e912565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549062000aca620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a5260205260408920604051602081019062000b208162000b11888886620113bc565b03601f1981018352826200e74e565b5190208a5260205260ff600360408b2001541615620017f6575b6001600160a01b0384165f908152600d6020526040902090895260205262000b1162000b7660408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462000b9b81866200eb70565b620016cf578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa9687156200133857869762001690575b506001908201610100031b5f1901811b1986165f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206201b1205f395f51905f525af19081156200051857849162001677575b505062000c7b620115b6565b90159081156200166a575b5062001399575050505062000c9a6201218f565b848060405160208101906370a0823160e01b82523060248201526024815262000cc56044826200e74e565b5190865afa5062000cd962000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a9081600162000d2e9301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062000d4f620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a5260205260408920604051602081019062000d968162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562001645575b6001600160a01b0384165f908152600d6020526040902090895260205262000b1162000dec60408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462000e1181866200eb70565b620014eb575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa96871562001338578697620014ac575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529088901b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200148f575b50508562000ef6620115b6565b91901591821562001483575b505062001399575050505062000f176201218f565b60405163095ea7b360e01b81523060048201525f19602482015260208160448189885af18015620013385762001377575b5060255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448189885af18015620013385762001343575b506040516370a0823160e01b815230600482015293602085602481875afa94851562001338578695620012fe575b506040516370a0823160e01b815230600482015290602082602481845afa91821562001163578792620012c4575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f526004820152602481018790526044810183905293906001600160a01b03166002821015620012b0578460a4818b6080948660648401528a60848401525af1938415620012a55788946200126a575b506001036200116e576020602491604051928380926370a0823160e01b82523060048301525afa9081156200116357879162001124575b506024936200109f60209493620010a6936200ed98565b906200f32c565b5192604051928380926370a0823160e01b82523060048301525afa90811562000518578491620010e5575b506200109f90620010e2936200ed98565b80f35b90506020813d6020116200111b575b8162001103602093836200e74e565b81010312620011175751620010e2620010d1565b5f80fd5b3d9150620010f4565b929190506020833d6020116200115a575b8162001144602093836200e74e565b8101031262001117579151909190602462001088565b3d915062001135565b6040513d89823e3d90fd5b9394602060249296604051938480926370a0823160e01b82523060048301525afa918215620011635787926200122d575b506024936200109f60209493620011b6936200ed98565b5192604051928380926370a0823160e01b82523060048301525afa90811562000518578491620011f2575b50620010e2926200109f916200ed98565b90506020813d60201162001224575b8162001210602093836200e74e565b81010312620011175751620010e2620011e1565b3d915062001201565b9291506020833d60201162001261575b816200124c602093836200e74e565b8101031262001117579151909160246200119f565b3d91506200123d565b6001919450620012959060803d6080116200129d575b6200128c81836200e74e565b8101906200ed2c565b939062001051565b503d62001280565b6040513d8a823e3d90fd5b634e487b7160e01b89526021600452602489fd5b9091506020813d602011620012f5575b81620012e3602093836200e74e565b81010312620011175751905f62000fe3565b3d9150620012d4565b9094506020813d6020116200132f575b816200131d602093836200e74e565b81010312620011175751935f62000fb5565b3d91506200130e565b6040513d88823e3d90fd5b620013699060203d6020116200136f575b6200136081836200e74e565b8101906200eb56565b62000f87565b503d62001354565b620013939060203d6020116200136f576200136081836200e74e565b62000f48565b82945054905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f5160206201b1205f395f51905f525af1801562000815576200146a575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b620014778280926200e74e565b620002b4578062001409565b14159050865f62000f02565b816200149b916200e74e565b6200051457825f62000ee9565b8580fd5b955095506020853d602011620014e2575b81620014cc602093836200e74e565b8101031262001117579351948a94908162000e67565b3d9150620014bd565b90919250620014fb81856200eb70565b610100036101008111620016315760ff8111620016315760405163348051d760e11b8152600190911b600482018190528a826024815f5160206201b1205f395f51905f525afa918b83156200162557602093620015c09282606a9392620015fd575b90506040519586925f5160206201b2805f395f51905f52828501525f5160206201b1005f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018452836200e74e565b871015620015d357509088929162000e17565b60405162461bcd60e51b815260206004820152908190620015f99060248301906200e6f2565b0390fd5b6200161d92503d8091833e6200161481836200e74e565b8101906200eabe565b5f8e6200155d565b604051903d90823e3d90fd5b634e487b7160e01b8a52601160045260248afd5b6200164f6201185a565b5062000db0565b634e487b7160e01b86526041600452602486fd5b5f19141590505f62000c86565b8162001683916200e74e565b6200051457825f62000c6f565b955095506020853d602011620016c6575b81620016b0602093836200e74e565b8101031262001117579351948a94908162000bf0565b3d9150620016a1565b620016dc8491866200eb70565b610100036101008111620017e25760ff8111620017e25760405163348051d760e11b8152600190911b600482015281816024815f5160206201b1205f395f51905f525afa9081156200081557606a60209284620017a193620015f99692620017c2575b506040519485925f5160206201b2805f395f51905f52828501525f5160206201b1005f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018352826200e74e565b60405162461bcd60e51b81526020600482015291829160248301906200e6f2565b620017da9192503d8084833e6200161481836200e74e565b90866200173f565b634e487b7160e01b82526011600452602482fd5b620018006201185a565b5062000b3a565b8162001813916200e74e565b6200182057845f620009ec565b8480fd5b5067016345785d8a000083116200099e565b62001841906200eccd565b5183108062001ba4575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762001b8b575b508060405160208101906370a0823160e01b825230602482015260248152620018c46044826200e74e565b5190865afa50620018d862000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a908160016200192d9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200194e620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620019958162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562001b7a575b6001600160a01b0384165f908152600d6020526040902090895260205262000b11620019eb60408a2093604051928391602083019586620113bc565b5190208752602052856040812091600183015492600281015462001a1081866200eb70565b620016cf578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa9687156200133857869762001b3b575b506001908201610100031b5f1901811b1986165f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206201b1205f395f51905f525af19081156200051857849162001b22575b505062001af0620115b6565b901590811562001b15575b5062001399575050505062001b0f6201218f565b62000c9a565b5f19141590505f62001afb565b8162001b2e916200e74e565b6200051457825f62001ae4565b955095506020853d60201162001b71575b8162001b5b602093836200e74e565b8101031262001117579351948a94908162001a65565b3d915062001b4c565b62001b846201185a565b50620019af565b8162001b97916200e74e565b6200182057845f62001899565b5067016345785d8a000083116200184b565b819262000983565b62001bd591503d8084833e6200055081836200e74e565b5f62000977565b5034620002b4576040366003190112620002b457604062001bfc6200e770565b9162001c076200e787565b9260018060a01b031681526021602052209060018060a01b03165f52602052602060405f2054604051908152f35b5034620002b45780600319360112620002b4576027546040516001600160a01b039091168152602090f35b5034620002b45762001c72366200e79e565b15620026be5760015b60255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201525f5160206201b2205f395f51905f526044820152908490829060649082906001600160a01b03165afa90811562000518578491620026a0575b5060028210156200268c57836001831491825f14620025f55762001d10906200ecdb565b51841080620024ef575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa80156200081557620024d6575b50505b838060405160208101906370a0823160e01b82523060248201526024815262001d966044826200e74e565b51905f5160206201b1605f395f51905f525afa5062001db862000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c2579062001e1462000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062001e35620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019062001e7c8162000b11888886620113bc565b519020875260205260ff60036040882001541615620024b1575b6001600160a01b0384165f908152600d6020526040902090865260205262000b1162001ed26040872093604051928391602083019586620113bc565b51902084526020526040832090600182015491600281015462001ef681856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a557889662002465575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162002448575b505062001fd6620115b6565b90159081156200243b575b50620023e65750505062001ff46201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1605f395f51905f525af180156200083d57620023c4575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1605f395f51905f525afa9485156200083d57839562002387575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b2205f395f51905f525afa928315620005185784936200234a575b50608060409583620020e68851620020d18a826200e74e565b60018152601f198a013660208301376200eccd565b526025548751638307c65560e01b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201525f5160206201b2205f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462002324575b5015620022505783516370a0823160e01b81523060048201526020816024815f5160206201b2205f395f51905f525afa908115620022465787916200220b575b50620021b6926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b513d86823e3d90fd5b90506020813d6020116200223d575b8162002229602093836200e74e565b81010312620011175751620021b6620021a5565b3d91506200221a565b85513d89823e3d90fd5b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1605f395f51905f525afa90811562002246578791620022e9575b506200109f906200229d936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2205f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d6020116200231b575b8162002307602093836200e74e565b810103126200111757516200229d6200228c565b3d9150620022f8565b6200234291945060803d6080116200129d576200128c81836200e74e565b925f62002165565b935091506020833d6020116200237e575b816200236a602093836200e74e565b810103126200111757859251915f620020b8565b3d91506200235b565b925093506020823d602011620023bb575b81620023a7602093836200e74e565b810103126200111757849151935f6200207c565b3d915062002398565b620023e09060203d6020116200136f576200136081836200e74e565b62002040565b8492935054905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b5f19141590505f62001fe1565b8162002454916200e74e565b6200182057845f62001fca565b8780fd5b975094506020873d6020116200249b575b8162002485602093836200e74e565b8101031262001117579551899690948162001f4b565b3d915062002476565b620016dc8691856200eb70565b620024bb6201185a565b5062001e96565b634e487b7160e01b85526041600452602485fd5b81620024e2916200e74e565b6200052357835f62001d68565b505060405163313ce56760e01b81526020816004815f5160206201b2205f395f51905f525afa8015620025ea578590620025a6575b60ff91501680600682116200257e575b600c811162002569575b50604d811162002555578490600a0a841162001d1a565b634e487b7160e01b85526011600452602485fd5b60021981019150811162002555575f6200253e565b905f19810190811162002592579062002534565b634e487b7160e01b86526011600452602486fd5b506020813d602011620025e1575b81620025c3602093836200e74e565b8101031262001820575160ff81168103620018205760ff9062002524565b3d9150620025b4565b6040513d87823e3d90fd5b62002600906200eccd565b5184108062002679575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762002660575b505062001d6b565b816200266c916200e74e565b6200052357835f62002658565b50620026846200f1c5565b84116200260a565b634e487b7160e01b84526021600452602484fd5b620026b791503d8086833e6200055081836200e74e565b5f62001cec565b8162001c7b565b5034620002b4576020366003190112620002b45760285460255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201526001600160a01b03928316602482018190525f5160206201b2405f395f51905f52604483015293929091839183916064918391165afa90811562000815578291620028fe575b5062002758620006006004356200f52f565b5181105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620028e5575b50509181604093845190620027c086836200e74e565b600182526020820190601f198701368337620027dc836200eccd565b52620027e76200f38e565b602554865163155adc9160e31b81525f5160206201b1805f395f51905f52600482015260248101959095525f5160206201b2405f395f51905f5260448601526080606486015291516084850181905284926001600160a01b03169160a4840191855b818110620028c85750505083838281935003925af1928315620004d357508192620028a8575b50805b8251811015620004a657806200288f6200047c600193866200ecec565b620028a160206200049683876200ecec565b0162002872565b620028c09192503d8084833e620004c281836200e74e565b905f6200286f565b825184528896508795506020938401939092019160010162002849565b81620028f1916200e74e565b6200082057815f620027aa565b6200291591503d8084833e6200055081836200e74e565b5f62002746565b5034620002b4576200292e366200e79e565b15620031d15760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f526044820152908490829060649082906001600160a01b03165afa90811562000518578491620031b3575b5060028210156200268c57836001831491825f146200311c57620029cc906200ecdb565b5184108062003109575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa80156200081557620030f0575b50505b838060405160208101906370a0823160e01b82523060248201526024815262002a526044826200e74e565b51905f5160206201b2405f395f51905f525afa5062002a7462000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2405f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c2579062002ad062000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062002af1620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019062002b388162000b11888886620113bc565b519020875260205260ff60036040882001541615620030df575b6001600160a01b0384165f908152600d6020526040902090865260205262000b1162002b8e6040872093604051928391602083019586620113bc565b51902084526020526040832090600182015491600281015462002bb281856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a5578896620030a0575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162003087575b505062002c92620115b6565b90159081156200307a575b50620023e65750505062002cb06201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b2405f395f51905f525af180156200083d5762003058575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b2405f395f51905f525afa9485156200083d5783956200301b575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1e05f395f51905f525afa9283156200051857849362002fde575b5060806040958362002d8d8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462002fb8575b501562002ee45783516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9081156200224657879162002ea9575b5062002e5d926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162002edb575b8162002ec7602093836200e74e565b8101031262001117575162002e5d62002e4c565b3d915062002eb8565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b2405f395f51905f525afa9081156200224657879162002f7d575b506200109f9062002f31936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162002faf575b8162002f9b602093836200e74e565b8101031262001117575162002f3162002f20565b3d915062002f8c565b62002fd691945060803d6080116200129d576200128c81836200e74e565b925f62002e0c565b935091506020833d60201162003012575b8162002ffe602093836200e74e565b810103126200111757859251915f62002d74565b3d915062002fef565b925093506020823d6020116200304f575b816200303b602093836200e74e565b810103126200111757849151935f62002d38565b3d91506200302c565b620030749060203d6020116200136f576200136081836200e74e565b62002cfc565b5f19141590505f62002c9d565b8162003093916200e74e565b6200182057845f62002c86565b975094506020873d602011620030d6575b81620030c0602093836200e74e565b8101031262001117579551899690948162002c07565b3d9150620030b1565b620030e96201185a565b5062002b52565b81620030fc916200e74e565b6200052357835f62002a24565b50620031146200f21f565b8411620029d6565b62003127906200eccd565b51841080620031a0575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762003187575b505062002a27565b8162003193916200e74e565b6200052357835f6200317f565b50620031ab6200f21f565b841162003131565b620031ca91503d8086833e6200055081836200e74e565b5f620029a8565b8162002937565b5034620002b457606490620031ed366200e79e565b1562003c0e5760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d57839462003bee575b50600281101562003bda576001811493841562003b405762003287906200ecdb565b5182108062003b2d575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162003b14575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa9485156200051857849562003ada575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200335a6044826200e74e565b51905f5160206201b1405f395f51905f525afa506200337c62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a90816001620033d69301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620033f7620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906200343e8162000b11888886620113bc565b519020895260205260ff600360408a200154161562003ab5575b6001600160a01b0384165f908152600d6020526040902090885260205262000b11620034946040892093604051928391602083019586620113bc565b51902086526020526040852090600182015491600281015497620034b989856200eb70565b62003977575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200392d575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162003910575b5050620035a2620115b6565b91901591821562003904575b5050620023e657505050620035c26201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d57620038e2575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d578395620038a5575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1e05f395f51905f525afa9283156200051857849362003868575b506080604095836200369f8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462003842575b5015620037f65783516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa90811562002246578791620037bb575b506200376f926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d602011620037ed575b81620037d9602093836200e74e565b810103126200111757516200376f6200375e565b3d9150620037ca565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162002f7d57506200109f9062002f31936200ed98565b6200386091945060803d6080116200129d576200128c81836200e74e565b925f6200371e565b935091506020833d6020116200389c575b8162003888602093836200e74e565b810103126200111757859251915f62003686565b3d915062003879565b925093506020823d602011620038d9575b81620038c5602093836200e74e565b810103126200111757849151935f6200364a565b3d9150620038b6565b620038fe9060203d6020116200136f576200136081836200e74e565b6200360e565b141590505f80620035ae565b816200391c916200e74e565b620014a857855f62003596565b8880fd5b985095506020883d60201162003963575b816200394d602093836200e74e565b81010312620011175796518a9790958162003514565b3d91506200393e565b6040513d8b823e3d90fd5b6200398389856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62003a45928d9162003a78575b506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a55579850620034bf565b60405162461bcd60e51b81526020600482015280620015f9602482018d6200e6f2565b62003a8f91503d808f833e6200161481836200e74e565b5f620039e3565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b62003abf6201185a565b5062003458565b634e487b7160e01b84526011600452602484fd5b9094506020813d60201162003b0b575b8162003af9602093836200e74e565b81010312620011175751935f6200331a565b3d915062003aea565b8162003b20916200e74e565b6200051457825f620032e2565b5062003b386200f279565b821162003291565b62003b4b906200eccd565b5182108062003bc7575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162003bae575b5050620032e5565b8162003bba916200e74e565b6200051457825f62003ba6565b5062003bd26200f047565b821162003b55565b634e487b7160e01b83526021600452602483fd5b62003c069194503d8085833e6200055081836200e74e565b925f62003265565b81620031f6565b5034620002b4576040366003190112620002b4576004356001600160a01b038116908181036200051457602435926001600160401b038411620002b45736602385011215620002b45783600401359362003c6f856200ea1a565b9462003c7f60405196876200e74e565b8086526024602087019160051b830101913683116200052357602401905b82821062003f005750505062003cb3846200eccd565b51604051906348bd7dfd60e01b82526004820152816024820152816044820152818160648183885af190811562000815579062003cf991839162003ed9575b506200f54c565b1593815b815181101562003ed55762003d1381836200ecec565b516040519063ecbbc03360e01b825260048201528381602481838a5af19081156200051857908791859162003e07575b506001929162003e009162003d6d896001600160a01b0362003d65846200eccd565b51166200f609565b62003d8389868060a01b0362003d65846200ecdb565b62003dc38262003d9486896200ecec565b51878060a01b0362003da6856200eccd565b5116888060a01b0362003db9866200ecdb565b5116918c6200f760565b62003dcf84876200ecec565b5190858060a01b0362003de2826200ecdb565b51169062003df6878060a01b03916200eccd565b511691896200f760565b0162003cfd565b9150503d8085833e62003e1b81836200e74e565b81019060208183031262001820578051906001600160401b038211620014a857019080601f83011215620018205781519062003e57826200ea1a565b9262003e6760405194856200e74e565b82845260208085019360051b82010191821162003ed1579060208a94939201915b81831062003e9b57505050600162003d43565b825195999793959294509092916001600160a01b0381168103620005145781602092918392520193019095979391899362003e88565b8680fd5b8280f35b62003ef991503d8085833e62003ef081836200e74e565b8101906200efb9565b5f62003cf2565b813581526020918201910162003c9d565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1a05f395f51905f5260248301525f5160206201b1405f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815578291620041cc575b5062003fab620006006200f111565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620041b3575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200419a575b50506040918183516200406485826200e74e565b600181526020810192601f19860136853762004080826200eccd565b526200408b6200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b8181106200417d5750505083838281935003925af1928315620004d3575081926200415d575b50805b8251811015620004a65780620041446200047c600193866200ecec565b6200415660206200049683876200ecec565b0162004127565b620041759192503d8084833e620004c281836200e74e565b905f62004124565b8251845288965087955060209384019390920191600101620040fe565b81620041a6916200e74e565b620002b457805f62004050565b81620041bf916200e74e565b6200082057815f62003ffd565b620041e391503d8084833e6200055081836200e74e565b5f62003f9c565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b1405f395f51905f5260248301525f5160206201b1a05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815578291620044a5575b5062004284620006006200f047565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d579083916200448c575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162004473575b50506040918183516200433d85826200e74e565b600181526020810192601f19860136853762004359826200eccd565b52620043646200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620044565750505083838281935003925af1928315620004d35750819262004436575b50805b8251811015620004a657806200441d6200047c600193866200ecec565b6200442f60206200049683876200ecec565b0162004400565b6200444e9192503d8084833e620004c281836200e74e565b905f620043fd565b8251845288965087955060209384019390920191600101620043d7565b816200447f916200e74e565b620002b457805f62004329565b8162004498916200e74e565b6200082057815f620042d6565b620044bc91503d8084833e6200055081836200e74e565b5f62004275565b5034620002b4576020366003190112620002b45760275460255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091526001600160a01b03938416602483018190525f5160206201b1605f395f51905f5260448401529493903592849183916064918391165afa9081156200083d5790620045559184916200471857506200eccd565b5181108062004704575b5f5160206201b1205f395f51905f523b156200051457604051632631f2b160e11b8152901515600482015282816024815f5160206201b1205f395f51905f525afa80156200083d57908391620046eb575b50509181604093845190620045c686836200e74e565b600182526020820190601f198701368337620045e2836200eccd565b52620045ed6200f38e565b602554865163155adc9160e31b81525f5160206201b2605f395f51905f52600482015260248101959095525f5160206201b1605f395f51905f5260448601526080606486015291516084850181905284926001600160a01b03169160a4840191855b818110620046ce5750505083838281935003925af1928315620004d357508192620046ae575b50805b8251811015620004a65780620046956200047c600193866200ecec565b620046a760206200049683876200ecec565b0162004678565b620046c69192503d8084833e620004c281836200e74e565b905f62004675565b82518452889650879550602093840193909201916001016200464f565b81620046f7916200e74e565b6200082057815f620045b0565b5062004710836200f2d3565b81116200455f565b6200055991503d8086833e6200055081836200e74e565b5034620002b45780600319360112620002b45760206200474e6200ef13565b6040519015158152f35b5034620002b45780600319360112620002b45760195462004779816200ea1a565b916200478960405193846200e74e565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310620047d65760405160208082528190620008d8908201886200e803565b600160208192604051620047f881620047f081896200e993565b03826200e74e565b815201920192019190620047b6565b5034620002b4576040366003190112620002b45762004834620048296200e770565b60243590336200f437565b602060405160018152f35b5034620002b4576020366003190112620002b457600435601f5481101562000820576200486c906200e93f565b919091620048a257604051620008d8906200488d81620047f081876200e993565b6040519182916020835260208301906200e6f2565b634e487b7160e01b81526004819052602490fd5b5034620002b457606490620048cb366200e79e565b15620052dc5760015b60255460405163549387df60e11b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d578394620052bc575b50600281101562003bda5760018114938415620052225762004965906200ecdb565b518210806200520f575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620051f6575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1e05f395f51905f525afa94851562000518578495620051bc575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b82523060248201526024815262004a386044826200e74e565b51905f5160206201b1e05f395f51905f525afa5062004a5a62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a9081600162004ab49301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062004ad5620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019062004b1c8162000b11888886620113bc565b519020895260205260ff600360408a2001541615620051ab575b6001600160a01b0384165f908152600d6020526040902090885260205262000b1162004b726040892093604051928391602083019586620113bc565b5190208652602052604085209060018201549160028101549762004b9789856200eb70565b620050ce575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200508f575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162005076575b505062004c80620115b6565b9190159182156200506a575b5050620023e65750505062004ca06201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1e05f395f51905f525af180156200083d5762005048575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1e05f395f51905f525afa9485156200083d5783956200500b575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1405f395f51905f525afa9283156200051857849362004fce575b5060806040958362004d7d8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462004fa8575b501562004ed45783516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9081156200224657879162004e99575b5062004e4d926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1e05f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162004ecb575b8162004eb7602093836200e74e565b8101031262001117575162004e4d62004e3c565b3d915062004ea8565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1e05f395f51905f525afa9081156200224657879162004f6d575b506200109f9062004f21936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162004f9f575b8162004f8b602093836200e74e565b8101031262001117575162004f2162004f10565b3d915062004f7c565b62004fc691945060803d6080116200129d576200128c81836200e74e565b925f62004dfc565b935091506020833d60201162005002575b8162004fee602093836200e74e565b810103126200111757859251915f62004d64565b3d915062004fdf565b925093506020823d6020116200503f575b816200502b602093836200e74e565b810103126200111757849151935f62004d28565b3d91506200501c565b620050649060203d6020116200136f576200136081836200e74e565b62004cec565b141590505f8062004c8c565b8162005082916200e74e565b620014a857855f62004c74565b985095506020883d602011620050c5575b81620050af602093836200e74e565b81010312620011175796518a9790958162004bf2565b3d9150620050a0565b620050da89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c6200519b928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a5557985062004b9d565b620051b56201185a565b5062004b36565b9094506020813d602011620051ed575b81620051db602093836200e74e565b81010312620011175751935f620049f8565b3d9150620051cc565b8162005202916200e74e565b6200051457825f620049c0565b506200521a6200f047565b82116200496f565b6200522d906200eccd565b51821080620052a9575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162005290575b5050620049c3565b816200529c916200e74e565b6200051457825f62005288565b50620052b46200f279565b821162005237565b620052d49194503d8085833e6200055081836200e74e565b925f62004943565b81620048d4565b5034620002b457606490620052f8366200e79e565b929080841562005d46575064174876e80062989680620053189262010f29565b62005371816200536b604051620053316040826200e74e565b600c81526b109bdd5b990814995cdd5b1d60a21b602082015262000b11604051938492632d839cb360e21b6020850152602484016200eb38565b6201246d565b6027546001600160a01b0316931562005d3e576001905b60255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201526044810187905293859185919082906001600160a01b03165afa9283156200051857849362005d1e575b5060028210156200268c576001821492831562005ca0576200540c906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162005c87575b50505b6040516318160ddd60e01b8152946020866004815f5160206201b1605f395f51905f525afa958615620025ea57859662005c4d575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b825230602482015260248152620054d66044826200e74e565b51905f5160206201b1605f395f51905f525afa50620054f862000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620055529301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062005573620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620055ba8162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562005c3c575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200561060408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620056358a856200eb70565b62005b18575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a98998b9990956020876044815f5160206201b1205f395f51905f525afa96871562005b0d578b9762005ace575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562005aca576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528881606481835f5160206201b1205f395f51905f525af19081156200396c57899162005ab1575b50506200571d620115b6565b91901591821562005aa5575b505062005a4f575050506200573d6201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481885f5160206201b1605f395f51905f525af18015620025ea5762005a2d575b506040516370a0823160e01b8152306004820152946020866024815f5160206201b1605f395f51905f525afa958615620025ea578596620059f0575b506040516370a0823160e01b815230600482015293602085602481865afa94851562001338578695620059b1575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f526024820152604481018590526064810192909252608482018590529095608091879160a4918391906001600160a01b03165af1948515620011635787956200598b575b501562005936576020602491604051928380926370a0823160e01b82523060048301525afa90811562001338578691620058fb575b50620058b0926200109f916200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa90811562000518578491620010e557506200109f90620010e2936200ed98565b90506020813d6020116200592d575b8162005919602093836200e74e565b81010312620011175751620058b06200589f565b3d91506200590a565b92909193604051906370a0823160e01b82523060048301526020826024815f5160206201b1605f395f51905f525afa918215620011635787926200122d57506024936200109f60209493620011b6936200ed98565b620059a991955060803d6080116200129d576200128c81836200e74e565b935f6200586a565b955093506020853d602011620059e7575b81620059d1602093836200e74e565b81010312620011175760808795519490620057f3565b3d9150620059c2565b945094506020843d60201162005a24575b8162005a10602093836200e74e565b810103126200111757859351945f620057c5565b3d915062005a01565b62005a499060203d6020116200136f576200136081836200e74e565b62005789565b869291839154905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b141590505f8062005729565b8162005abd916200e74e565b6200246157875f62005711565b8a80fd5b9a50955060208a3d60201162005b04575b8162005aee602093836200e74e565b81010312620011175798518b999095816200568f565b3d915062005adf565b6040513d8d823e3d90fd5b62005b248a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c62005c1c575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d5262005be9908d6200e74e565b82101562005bf95799506200563b565b60405162461bcd60e51b81526020600482015280620015f9602482018e6200e6f2565b62005c34919c503d808d833e6200161481836200e74e565b9a5f62005b7a565b62005c466201185a565b50620055d4565b9095506020813d60201162005c7e575b8162005c6c602093836200e74e565b81010312620011175751945f62005496565b3d915062005c5d565b8162005c93916200e74e565b6200052357835f6200545e565b62005cab906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162005d05575b505062005461565b8162005d11916200e74e565b6200052357835f62005cfd565b62005d369193503d8086833e6200055081836200e74e565b915f620053ea565b829062005388565b62005d5291506200f4f7565b62005371565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b1e05f395f51905f5260248301525f5160206201b1405f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557829162006013575b5062005df2620006006200f279565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162005ffa575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162005fe1575b505060409181835162005eab85826200e74e565b600181526020810192601f19860136853762005ec7826200eccd565b5262005ed26200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b1e05f395f51905f5260248201525f5160206201b1405f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b81811062005fc45750505083838281935003925af1928315620004d35750819262005fa4575b50805b8251811015620004a6578062005f8b6200047c600193866200ecec565b62005f9d60206200049683876200ecec565b0162005f6e565b62005fbc9192503d8084833e620004c281836200e74e565b905f62005f6b565b825184528896508795506020938401939092019160010162005f45565b8162005fed916200e74e565b620002b457805f62005e97565b8162006006916200e74e565b6200082057815f62005e44565b6200602a91503d8084833e6200055081836200e74e565b5f62005de3565b5034620002b45780600319360112620002b45760405190806024549062006058826200e958565b8085529160018116908115620060e6575060011462006085575b620008d8846200488d818603826200e74e565b602481527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4939250905b808210620060cb575090915081016020016200488d8262006072565b919260018160209254838588010152019101909291620060af565b60ff191660208087019190915292151560051b850190920192506200488d915083905062006072565b5034620002b45780600319360112620002b457601c5462006130816200ea1a565b906200614060405192836200e74e565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310620061865760405180620008d887826200e85f565b60405162006194816200e716565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106200631b57846001979460029794602097946200622a945491818110620062fe575b818110620062e1575b818110620062c4575b818110620062a7575b8181106200628a575b8181106200626d575b81811062006252575b106200623d575b5003826200e74e565b838201528152019201920191906200616e565b6001600160e01b031916815286015f62006221565b828a1b6001600160e01b0319168452928901928b016200621a565b604083901b6001600160e01b0319168452928901928b0162006211565b606083901b6001600160e01b0319168452928901928b0162006208565b608083901b6001600160e01b0319168452928901928b01620061ff565b60a083901b6001600160e01b0319168452928901928b01620061f6565b60c083901b6001600160e01b0319168452928901928b01620061ed565b60e083901b6001600160e01b0319168452928901928b01620061e4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191620061bc565b5034620002b457606490620063d0366200e79e565b1562006de15760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d57839462006dc1575b50600281101562003bda576001811493841562006d27576200646a906200ecdb565b5182108062006d14575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162006cfb575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b2005f395f51905f525afa9485156200051857849562006cc1575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200653d6044826200e74e565b51905f5160206201b2005f395f51905f525afa506200655f62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2005f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c25762000a90816001620065b99301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620065da620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190620066218162000b11888886620113bc565b519020895260205260ff600360408a200154161562006cb0575b6001600160a01b0384165f908152600d6020526040902090885260205262000b11620066776040892093604051928391602083019586620113bc565b519020865260205260408520906001820154916002810154976200669c89856200eb70565b62006bd3575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c57899762006b94575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162006b7b575b505062006785620115b6565b91901591821562006b6f575b5050620023e657505050620067a56201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b2005f395f51905f525af180156200083d5762006b4d575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b2005f395f51905f525afa9485156200083d57839562006b10575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1a05f395f51905f525afa9283156200051857849362006ad3575b50608060409583620068828851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462006aad575b5015620069d95783516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa908115620022465787916200699e575b5062006952926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b2005f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d602011620069d0575b81620069bc602093836200e74e565b810103126200111757516200695262006941565b3d9150620069ad565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b2005f395f51905f525afa9081156200224657879162006a72575b506200109f9062006a26936200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d60201162006aa4575b8162006a90602093836200e74e565b8101031262001117575162006a2662006a15565b3d915062006a81565b62006acb91945060803d6080116200129d576200128c81836200e74e565b925f62006901565b935091506020833d60201162006b07575b8162006af3602093836200e74e565b810103126200111757859251915f62006869565b3d915062006ae4565b925093506020823d60201162006b44575b8162006b30602093836200e74e565b810103126200111757849151935f6200682d565b3d915062006b21565b62006b699060203d6020116200136f576200136081836200e74e565b620067f1565b141590505f8062006791565b8162006b87916200e74e565b620014a857855f62006779565b985095506020883d60201162006bca575b8162006bb4602093836200e74e565b81010312620011175796518a97909581620066f7565b3d915062006ba5565b62006bdf89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62006ca0928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a55579850620066a2565b62006cba6201185a565b506200663b565b9094506020813d60201162006cf2575b8162006ce0602093836200e74e565b81010312620011175751935f620064fd565b3d915062006cd1565b8162006d07916200e74e565b6200051457825f620064c5565b5062006d1f6200f111565b821162006474565b62006d32906200eccd565b5182108062006dae575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa8015620005185790849162006d95575b5050620064c8565b8162006da1916200e74e565b6200051457825f62006d8d565b5062006db96200f16b565b821162006d3c565b62006dd99194503d8085833e6200055081836200e74e565b925f62006448565b81620063d9565b5034620002b45780600319360112620002b457601a5462006e09816200ea1a565b9162006e1960405193846200e74e565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831062006e665760405160208082528190620008d8908201886200e803565b60016020819260405162006e8081620047f081896200e993565b81520192019201919062006e46565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b1405f395f51905f5260248301525f5160206201b1e05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa908115620008155782916200714a575b5062006f29620006006200f047565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162007131575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa8015620008155790829162007118575b505060409181835162006fe285826200e74e565b600181526020810192601f19860136853762006ffe826200eccd565b52620070096200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620070fb5750505083838281935003925af1928315620004d357508192620070db575b50805b8251811015620004a65780620070c26200047c600193866200ecec565b620070d460206200049683876200ecec565b01620070a5565b620070f39192503d8084833e620004c281836200e74e565b905f620070a2565b82518452889650879550602093840193909201916001016200707c565b8162007124916200e74e565b620002b457805f62006fce565b816200713d916200e74e565b6200082057815f62006f7b565b6200716191503d8084833e6200055081836200e74e565b5f62006f1a565b5034620002b4576020366003190112620002b4576020906040906001600160a01b03620071946200e770565b1681528280522054604051908152f35b5034620002b457606490620071b9366200e79e565b929080841562007af25750620071cf906200f52f565b925b6028546001600160a01b0316901562007aea576001935b60255460405163549387df60e11b81525f5160206201b1805f395f51905f526004820152602481018490525f5160206201b2405f395f51905f52604482015293859185919082906001600160a01b03165afa9283156200051857849362007aca575b5060028510156200268c576001851492831562007a4c576200726c906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162007a33575b50505b6040516318160ddd60e01b815294602086600481865afa958615620025ea578596620079f9575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b825230602482015260248152620073286044826200e74e565b5190865afa506200733c62000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620073919301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620073b2620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190620073f98162000b11888886620113bc565b5190208a5260205260ff600360408b2001541615620079e8575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200744f60408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620074748a856200eb70565b620078e7575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a9899979896978b9790956020876044815f5160206201b1205f395f51905f525afa9687156200396c578997620078a8575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af1908115620011635787916200788f575b505062007560620115b6565b91901591821562007883575b5050620023e657505050620075806201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448186895af180156200083d5762007861575b506040516370a0823160e01b815230600482015294602086602481885afa9586156200083d57839662007824575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b2405f395f51905f525afa92831562000518578493620077e5575b50602554604051638307c65560e01b81525f5160206201b1805f395f51905f526004820152602481018890525f5160206201b2405f395f51905f5260448201526064810192909252608482018690529093608091859160a4918391906001600160a01b03165af192831562001163578793620077bf575b5015620076f6576040516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa908115620011635787916200112457506024936200109f60209493620010a6936200ed98565b939190926020602491604051928380926370a0823160e01b82523060048301525afa9081156200133857869162007784575b506200109f9062007739936200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b2405f395f51905f525afa90811562000518578491620011f25750620010e2926200109f916200ed98565b90506020813d602011620077b6575b81620077a2602093836200e74e565b810103126200111757516200773962007728565b3d915062007793565b620077dd91935060803d6080116200129d576200128c81836200e74e565b915f6200769f565b935091506020833d6020116200781b575b8162007805602093836200e74e565b8101031262001117576080879351929062007628565b3d9150620077f6565b925094506020823d60201162007858575b8162007844602093836200e74e565b810103126200111757859151945f620075ec565b3d915062007835565b6200787d9060203d6020116200136f576200136081836200e74e565b620075be565b141590505f806200756c565b816200789b916200e74e565b620014a857855f62007554565b985095506020883d602011620078de575b81620078c8602093836200e74e565b81010312620011175796518b97909581620074d2565b3d9150620078b9565b620078f38a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c620079c8575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d52620079b8908d6200e74e565b82101562005bf95799506200747a565b620079e0919c503d808d833e6200161481836200e74e565b9a5f62007949565b620079f26201185a565b5062007413565b9095506020813d60201162007a2a575b8162007a18602093836200e74e565b81010312620011175751945f620072e8565b3d915062007a09565b8162007a3f916200e74e565b6200052357835f620072be565b62007a57906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162007ab1575b5050620072c1565b8162007abd916200e74e565b6200052357835f62007aa9565b62007ae29193503d8086833e6200055081836200e74e565b915f6200724a565b8293620071e8565b62007afe91506200f52f565b92620071d1565b5034620002b45780600319360112620002b457601b5462007b26816200ea1a565b9062007b3660405192836200e74e565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b83831062007b7c5760405180620008d887826200e85f565b60405162007b8a816200e716565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011062007c2b578460019794600297946020979462007c18945491818110620062fe57818110620062e157818110620062c457818110620062a7578181106200628a578181106200626d578181106200625257106200623d575003826200e74e565b8382015281520192019201919062007b64565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019162007bb2565b5034620002b45760649062007ce0366200e79e565b156200874a5760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0604482015294849186919082906001600160a01b03165afa9384156200083d5783946200872a575b50600281101562003bda5760018114938415620086905762007d80906200ecdb565b51821080620085ba575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620085a1575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa9485156200051857849562008567575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b82523060248201526024815262007e536044826200e74e565b51905f5160206201b1405f395f51905f525afa5062007e7562000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a9081600162007ecf9301600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062007ef0620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019062007f378162000b11888886620113bc565b519020895260205260ff600360408a200154161562008556575b6001600160a01b0384165f908152600d6020526040902090885260205262000b1162007f8d6040892093604051928391602083019586620113bc565b5190208652602052604085209060018201549160028101549762007fb289856200eb70565b62008479575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200843a575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af19081156200116357879162008421575b50506200809b620115b6565b91901591821562008415575b5050620023e657505050620080bb6201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d57620083f3575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d578395620083b6575b506040516370a0823160e01b815230600482015291602083602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9283156200051857849362008379575b506080604095836200819e8851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f526024820152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca060448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462008353575b5015620082795783516370a0823160e01b8152306004820152602081602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa90811562002246578791620037bb57506200376f926200109f916200ed98565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162008318575b506200109f90620082c6936200ed98565b519080516370a0823160e01b8152306004820152602081602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9182156200220257508491620011f25750620010e2926200109f916200ed98565b90506020813d6020116200834a575b8162008336602093836200e74e565b81010312620011175751620082c6620082b5565b3d915062008327565b6200837191945060803d6080116200129d576200128c81836200e74e565b925f62008223565b935091506020833d602011620083ad575b8162008399602093836200e74e565b810103126200111757859251915f62008185565b3d91506200838a565b925093506020823d602011620083ea575b81620083d6602093836200e74e565b810103126200111757849151935f62008143565b3d9150620083c7565b6200840f9060203d6020116200136f576200136081836200e74e565b62008107565b141590505f80620080a7565b816200842d916200e74e565b620014a857855f6200808f565b985095506020883d60201162008470575b816200845a602093836200e74e565b81010312620011175796518a979095816200800d565b3d91506200844b565b6200848589856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c62008546928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a5557985062007fb8565b620085606201185a565b5062007f51565b9094506020813d60201162008598575b8162008586602093836200e74e565b81010312620011175751935f62007e13565b3d915062008577565b81620085ad916200e74e565b6200051457825f62007ddb565b5060405163313ce56760e01b8152602081600481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa8015620005185784906200864c575b60ff915016806006821162008638575b600c811162008623575b50604d811162003ac657600a0a821162007d8a565b60021981019150811162003ac6575f6200860e565b905f19810190811162002555579062008604565b506020813d60201162008687575b8162008669602093836200e74e565b8101031262000523575160ff81168103620005235760ff90620085f4565b3d91506200865a565b6200869b906200eccd565b5182108062008717575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa80156200051857908491620086fe575b505062007dde565b816200870a916200e74e565b6200051457825f620086f6565b50620087226200f047565b8211620086a5565b620087429194503d8085833e6200055081836200e74e565b925f62007d5e565b8162007ce9565b5034620002b45762008763366200e79e565b1562008f7e5760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f526044820152908490829060649082906001600160a01b03165afa9081156200051857849162008f60575b5060028210156200268c57836001831491825f1462008ec95762008801906200ecdb565b5184108062008eb6575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762008e9d575b50505b838060405160208101906370a0823160e01b825230602482015260248152620088876044826200e74e565b51905f5160206201b1a05f395f51905f525afa50620088a962000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1a05f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015620024c257906200890562000a90836001889501600e556200e912565b905560018060a01b0360115416600f5460e01b6010549062008926620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908187526020526040862060405160208101906200896d8162000b11888886620113bc565b519020875260205260ff6003604088200154161562008e8c575b6001600160a01b0384165f908152600d6020526040902090865260205262000b11620089c36040872093604051928391602083019586620113bc565b519020845260205260408320906001820154916002810154620089e781856200eb70565b620024a4578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa958615620012a557889662008e4d575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b1562002461576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528581606481835f5160206201b1205f395f51905f525af19081156200133857869162008e34575b505062008ac7620115b6565b901590811562008e27575b50620023e65750505062008ae56201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1a05f395f51905f525af180156200083d5762008e05575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1a05f395f51905f525afa9485156200083d57839562008dc8575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1405f395f51905f525afa9283156200051857849362008d8b575b5060806040958362008bc28851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1a05f395f51905f5260248201525f5160206201b1405f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af19384156200224657879462008d65575b501562008d195783516370a0823160e01b81523060048201526020816024815f5160206201b1405f395f51905f525afa9081156200224657879162008cde575b5062008c92926200109f916200ed98565b519080516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa9182156200220257508491620010e557506200109f90620010e2936200ed98565b90506020813d60201162008d10575b8162008cfc602093836200e74e565b8101031262001117575162008c9262008c81565b3d915062008ced565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1a05f395f51905f525afa9081156200224657879162004f6d57506200109f9062004f21936200ed98565b62008d8391945060803d6080116200129d576200128c81836200e74e565b925f62008c41565b935091506020833d60201162008dbf575b8162008dab602093836200e74e565b810103126200111757859251915f62008ba9565b3d915062008d9c565b925093506020823d60201162008dfc575b8162008de8602093836200e74e565b810103126200111757849151935f62008b6d565b3d915062008dd9565b62008e219060203d6020116200136f576200136081836200e74e565b62008b31565b5f19141590505f62008ad2565b8162008e40916200e74e565b6200182057845f62008abb565b975094506020873d60201162008e83575b8162008e6d602093836200e74e565b8101031262001117579551899690948162008a3c565b3d915062008e5e565b62008e966201185a565b5062008987565b8162008ea9916200e74e565b6200052357835f62008859565b5062008ec16200f047565b84116200880b565b62008ed4906200eccd565b5184108062008f4d575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa8015620008155762008f34575b50506200885c565b8162008f40916200e74e565b6200052357835f62008f2c565b5062008f586200f111565b841162008ede565b62008f7791503d8086833e6200055081836200e74e565b5f620087dd565b816200876c565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1805f395f51905f526004828101919091525f5160206201b2405f395f51905f5260248301525f5160206201b1e05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557829162009240575b506200901f620006006200f21f565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162009227575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200920e575b5050604091818351620090d885826200e74e565b600181526020810192601f198601368537620090f4826200eccd565b52620090ff6200f38e565b602554855163155adc9160e31b81525f5160206201b1805f395f51905f5260048201525f5160206201b2405f395f51905f5260248201525f5160206201b1e05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b818110620091f15750505083838281935003925af1928315620004d357508192620091d1575b50805b8251811015620004a65780620091b86200047c600193866200ecec565b620091ca60206200049683876200ecec565b016200919b565b620091e99192503d8084833e620004c281836200e74e565b905f62009198565b825184528896508795506020938401939092019160010162009172565b816200921a916200e74e565b620002b457805f620090c4565b8162009233916200e74e565b6200082057815f62009071565b6200925791503d8084833e6200055081836200e74e565b5f62009010565b5034620002b45780600319360112620002b4576028546040516001600160a01b039091168152602090f35b5034620002b4576064906200929e366200e79e565b6027549093916001600160a01b0390911690841562009cf2576001945b60255460405163549387df60e11b81525f5160206201b2605f395f51905f526004820152602481018590525f5160206201b1605f395f51905f52604482015294869186919082906001600160a01b03165afa938415620025ea57859462009cd2575b501562009c37576200932f836200ecdb565b5181108062009c25575b5f5160206201b1205f395f51905f523b156200182057604051632631f2b160e11b8152901515600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009c0c575b50505b60028510156200268c576001851492831562009b8e57620093ae906200ecdb565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009b75575b50505b6040516318160ddd60e01b815294602086600481865afa958615620025ea57859662009b3b575b508560011b95808704600214901517156200255557848060405160208101906370a0823160e01b8252306024820152602481526200946a6044826200e74e565b5190865afa506200947e62000a2b62010eea565b50601180546001600160a01b0319166001600160a01b0385161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620016565762000a90816001620094d39301600e556200e912565b905560018060a01b0360115416600f5460e01b60105490620094f4620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818a526020526040892060405160208101906200953b8162000b11888886620113bc565b5190208a5260205260ff600360408b200154161562009b2a575b6001600160a01b0384165f908152600d6020526040902090895260205262000b116200959160408a2093604051928391602083019586620113bc565b51902087526020526040862090600182015491600281015498620095b68a856200eb70565b62009a29575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052999a9899979896978b9790956020876044815f5160206201b1205f395f51905f525afa9687156200396c578997620099ea575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af190811562001163578791620099d1575b5050620096a2620115b6565b919015918215620099c5575b5050620023e657505050620096c26201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015260208160448186895af180156200083d57620099a3575b506040516370a0823160e01b815230600482015294602086602481885afa9586156200083d57839662009966575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1605f395f51905f525afa9283156200051857849362009927575b50602554604051638307c65560e01b81525f5160206201b2605f395f51905f526004820152602481018890525f5160206201b1605f395f51905f5260448201526064810192909252608482018690529093608091859160a4918391906001600160a01b03165af19283156200116357879362009901575b501562009838576040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa908115620011635787916200112457506024936200109f60209493620010a6936200ed98565b939190926020602491604051928380926370a0823160e01b82523060048301525afa90811562001338578691620098c6575b506200109f906200987b936200ed98565b516040516370a0823160e01b81523060048201526020816024815f5160206201b1605f395f51905f525afa90811562000518578491620011f25750620010e2926200109f916200ed98565b90506020813d602011620098f8575b81620098e4602093836200e74e565b810103126200111757516200987b6200986a565b3d9150620098d5565b6200991f91935060803d6080116200129d576200128c81836200e74e565b915f620097e1565b935091506020833d6020116200995d575b8162009947602093836200e74e565b810103126200111757608087935192906200976a565b3d915062009938565b925094506020823d6020116200999a575b8162009986602093836200e74e565b810103126200111757859151945f6200972e565b3d915062009977565b620099bf9060203d6020116200136f576200136081836200e74e565b62009700565b141590505f80620096ae565b81620099dd916200e74e565b620014a857855f62009696565b985095506020883d60201162009a20575b8162009a0a602093836200e74e565b81010312620011175796518b9790958162009614565b3d9150620099fb565b62009a358a856200eb70565b610100036101008111620016315760ff811162001631576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f5160206201b1205f395f51905f525afa9b8c1562005b0d578b9c62009b0a575b50604051809c602082015f5160206201b2805f395f51905f529052604082015f5160206201b1005f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d5262009afa908d6200e74e565b82101562005bf9579950620095bc565b62009b22919c503d808d833e6200161481836200e74e565b9a5f62009a8b565b62009b346201185a565b5062009555565b9095506020813d60201162009b6c575b8162009b5a602093836200e74e565b81010312620011175751945f6200942a565b3d915062009b4b565b8162009b81916200e74e565b6200052357835f62009400565b62009b99906200eccd565b5181105f5160206201b1205f395f51905f523b15620018205760405190632631f2b160e11b8252600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009bf3575b505062009403565b8162009bff916200e74e565b6200052357835f62009beb565b8162009c18916200e74e565b6200052357835f6200938a565b50670de0b6b3a7640000811162009339565b62009c42836200eccd565b5181108062009cbe575b5f5160206201b1205f395f51905f523b156200182057604051632631f2b160e11b8152901515600482015284816024815f5160206201b1205f395f51905f525afa8015620025ea5790859162009ca5575b50506200938d565b8162009cb1916200e74e565b6200052357835f62009c9d565b5062009cca826200f2d3565b811162009c4c565b62009cea9194503d8087833e6200055081836200e74e565b925f6200931d565b8394620092bb565b5034620002b4576020366003190112620002b45760275460255460405163549387df60e11b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f5260248201526001600160a01b039283166044820181905293929091839183916064918391165afa9081156200081557829162009f33575b5062009d8d620006006004356200f4f7565b5181105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d5790839162009f1a575b5050918160409384519062009df586836200e74e565b600182526020820190601f19870136833762009e11836200eccd565b5262009e1c6200f38e565b602554865163155adc9160e31b81525f5160206201b2605f395f51905f5260048201525f5160206201b1605f395f51905f52602482015260448101959095526080606486015291516084850181905284926001600160a01b03169160a4840191855b81811062009efd5750505083838281935003925af1928315620004d35750819262009edd575b50805b8251811015620004a6578062009ec46200047c600193866200ecec565b62009ed660206200049683876200ecec565b0162009ea7565b62009ef59192503d8084833e620004c281836200e74e565b905f62009ea4565b825184528896508795506020938401939092019160010162009e7e565b8162009f26916200e74e565b6200082057815f62009ddf565b62009f4a91503d8084833e6200055081836200e74e565b5f62009d7b565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091525f5160206201b1605f395f51905f5260248301525f5160206201b2205f395f51905f5260448301523592918290829060649082906001600160a01b03165afa90811562000815579062009fe89183916200a13857506200eccd565b518210806200a125575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a10c575b505080806200a0ae6040948551906200a05d87836200e74e565b60018252601f1987013660208401376200a077826200eccd565b526200a0826200f38e565b602554865163155adc9160e31b81529485936001600160a01b039092169284928391600483016200ee36565b03925af1928315620004d3575081926200a0ec575b50805b8251811015620004a657806200a0e5602062000496600194876200ecec565b016200a0c6565b6200a1049192503d8084833e620004c281836200e74e565b905f6200a0c3565b816200a118916200e74e565b620002b457805f6200a043565b506200a1306200f1c5565b821162009ff2565b6200055991503d8085833e6200055081836200e74e565b5034620002b45780600319360112620002b45760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106200a1b457620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a199565b5034620002b45780600319360112620002b45760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106200a23957620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a21e565b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b2605f395f51905f526004828101919091525f5160206201b1605f395f51905f5260248301525f5160206201b2205f395f51905f5260448301523592918290829060649082906001600160a01b03165afa9081156200081557906200a2f09183916200a13857506200eccd565b518210806200a3ec575b5f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152901515600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a3d3575b505080806200a3656040948551906200a05d87836200e74e565b03925af1928315620004d3575081926200a3b3575b50805b8251811015620004a657806200a39a6200047c600193866200ecec565b6200a3ac60206200049683876200ecec565b016200a37d565b6200a3cb9192503d8084833e620004c281836200e74e565b905f6200a37a565b816200a3df916200e74e565b620002b457805f6200a34b565b5067016345785d8a000082116200a2fa565b5034620002b45780600319360112620002b457602060405160128152f35b5034620002b45780600319360112620002b457601d546200a43d816200ea1a565b6200a44c60405191826200e74e565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106200a50557868587604051928392602084019060208552518091526040840160408260051b8601019392905b8282106200a4bb57505050500390f35b919360019193955060206200a4f48192603f198a82030186526040838a51878060a01b038151168452015191818582015201906200e803565b96019201920185949391926200a4ab565b6040516200a513816200e716565b82546001600160a01b031681526001830180546200a531816200ea1a565b916200a54160405193846200e74e565b8183528a526020808b20908b9084015b8382106200a5795750505050600192826020928360029501528152019201920191906200a47c565b6001602081926040516200a59381620047f0818a6200e993565b8152019301910190916200a551565b5034620002b4576060366003190112620002b4576200a5c06200e770565b6200a5ca6200e787565b6001600160a01b038216808452602160209081526040808620335f90815292529020546044359391600182016200a60a575b50506200483493506200f437565b8482106200a6775780156200a6635733156200a64f578560409162004834975260216020522060018060a01b0333165f526020528360405f20910390555f806200a5fc565b634a1406b160e11b86526004869052602486fd5b63e602df0560e01b86526004869052602486fd5b6064868684637dc7a0d960e11b835233600452602452604452fd5b5034620002b45780600319360112620002b45760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106200a6f757620008d885620008cb818703826200e74e565b82546001600160a01b03168452602090930192600192830192016200a6dc565b5034620002b45780600319360112620002b4576029546040516001600160a01b039091168152602090f35b5034620002b45780600319360112620002b4576020602254604051908152f35b5034620002b4576020366003190112620002b45760255460405163549387df60e11b81525f5160206201b1c05f395f51905f526004828101919091525f5160206201b2005f395f51905f5260248301525f5160206201b1a05f395f51905f5260448301523592918290829060649082906001600160a01b03165afa908115620008155782916200aa1d575b506200a7fc620006006200f16b565b5183105f5160206201b1205f395f51905f523b15620005145760405190632631f2b160e11b8252600482015282816024815f5160206201b1205f395f51905f525afa80156200083d579083916200aa04575b50505f5160206201b1205f395f51905f523b156200082057604051632631f2b160e11b8152908311600482015281816024815f5160206201b1205f395f51905f525afa801562000815579082916200a9eb575b50506040918183516200a8b585826200e74e565b600181526020810192601f1986013685376200a8d1826200eccd565b526200a8dc6200f38e565b602554855163155adc9160e31b81525f5160206201b1c05f395f51905f5260048201525f5160206201b2005f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015260806064820152915160848301819052919384926001600160a01b039092169160a484019190855b8181106200a9ce5750505083838281935003925af1928315620004d3575081926200a9ae575b50805b8251811015620004a657806200a9956200047c600193866200ecec565b6200a9a760206200049683876200ecec565b016200a978565b6200a9c69192503d8084833e620004c281836200e74e565b905f6200a975565b82518452889650879550602093840193909201916001016200a94f565b816200a9f7916200e74e565b620002b457805f6200a8a1565b816200aa10916200e74e565b6200082057815f6200a84e565b6200aa3491503d8084833e6200055081836200e74e565b5f6200a7ed565b5034620002b4576064906200aa50366200e79e565b156200b3515760015b60255460405163549387df60e11b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f52604482015294849186919082906001600160a01b03165afa9384156200083d5783946200b331575b50600281101562003bda57600181149384156200b297576200aaea906200ecdb565b518210806200b284575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa801562000518579084916200b26b575b50505b6040516318160ddd60e01b8152936020856004815f5160206201b1405f395f51905f525afa948515620005185784956200b231575b508460011b948086046002149015171562003ac657838060405160208101906370a0823160e01b8252306024820152602481526200abbd6044826200e74e565b51905f5160206201b1405f395f51905f525afa506200abdf62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1405f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015620024c25762000a908160016200ac399301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200ac5a620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906200aca18162000b11888886620113bc565b519020895260205260ff600360408a20015416156200b220575b6001600160a01b0384165f908152600d6020526040902090885260205262000b116200acf76040892093604051928391602083019586620113bc565b519020865260205260408520906001820154916002810154976200ad1c89856200eb70565b6200b143575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529899979896978a97956020876044815f5160206201b1205f395f51905f525afa9687156200396c5789976200b104575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b1562003929576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528681606481835f5160206201b1205f395f51905f525af1908115620011635787916200b0eb575b50506200ae05620115b6565b9190159182156200b0df575b5050620023e6575050506200ae256201218f565b60255460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481865f5160206201b1405f395f51905f525af180156200083d576200b0bd575b506040516370a0823160e01b8152306004820152936020856024815f5160206201b1405f395f51905f525afa9485156200083d5783956200b080575b506040516370a0823160e01b8152306004820152916020836024815f5160206201b1a05f395f51905f525afa928315620005185784936200b043575b506080604095836200af028851620020d18a826200e74e565b526025548751638307c65560e01b81525f5160206201b1c05f395f51905f5260048201525f5160206201b1405f395f51905f5260248201525f5160206201b1a05f395f51905f5260448201526064810192909252608482018590529095869160a49183916001600160a01b03165af1938415620022465787946200b01d575b50156200afd15783516370a0823160e01b81523060048201526020816024815f5160206201b1a05f395f51905f525afa90811562002246578791620037bb57506200376f926200109f916200ed98565b83516370a0823160e01b81523060048201529194916020816024815f5160206201b1405f395f51905f525afa9081156200224657879162006a7257506200109f9062006a26936200ed98565b6200b03b91945060803d6080116200129d576200128c81836200e74e565b925f6200af81565b935091506020833d6020116200b077575b816200b063602093836200e74e565b810103126200111757859251915f6200aee9565b3d91506200b054565b925093506020823d6020116200b0b4575b816200b0a0602093836200e74e565b810103126200111757849151935f6200aead565b3d91506200b091565b6200b0d99060203d6020116200136f576200136081836200e74e565b6200ae71565b141590505f806200ae11565b816200b0f7916200e74e565b620014a857855f6200adf9565b985095506020883d6020116200b13a575b816200b124602093836200e74e565b81010312620011175796518a979095816200ad77565b3d91506200b115565b6200b14f89856200eb70565b61010003610100811162003aa15760ff811162003aa1576001901b986040519963348051d760e11b8b528060048c0152898b6024815f5160206201b1205f395f51905f525afa9a8b1562003a9657606a60209c6200b210928d9162003a7857506040519d8e915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018d528c6200e74e565b82101562003a555798506200ad22565b6200b22a6201185a565b506200acbb565b9094506020813d6020116200b262575b816200b250602093836200e74e565b81010312620011175751935f6200ab7d565b3d91506200b241565b816200b277916200e74e565b6200051457825f6200ab45565b506200b28f6200f111565b82116200aaf4565b6200b2a2906200eccd565b518210806200b31e575b5f5160206201b1205f395f51905f523b156200052357604051632631f2b160e11b8152901515600482015283816024815f5160206201b1205f395f51905f525afa801562000518579084916200b305575b50506200ab48565b816200b311916200e74e565b6200051457825f6200b2fd565b506200b3296200f047565b82116200b2ac565b6200b3499194503d8085833e6200055081836200e74e565b925f6200aac8565b816200aa59565b503462001117575f366003190112620011175760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206201b1205f395f51905f525afa9081156200e4bb576200b3e8916020915f916200e50f575b50604051809381926371ee464d60e01b83526040600484015260448301906200e6f2565b630146de46602483015203815f5f5160206201b1205f395f51905f525af180156200e4bb576200e4da575b50602654604051906001600160a01b03166150b58083016001600160401b038111848210176200e4c657608092849262012488843973ba1333333333a1ba1108e8412f11850a5c319ba9825260208201526e22d473030f116ddee9f6b43ac78ba360408201525f5160206201b1405f395f51905f5260608201520301905ff080156200e4bb5760018060a01b03166bffffffffffffffffffffffff60a01b60255416176025556040516113eb808201908282106001600160401b038311176200e4c65760209183916201753d83395f5160206201b2205f395f51905f5281520301905ff080156200e4bb57602780546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200111757604051906318caf8e360e31b8252600482015260406024820152600d60448201526c455243343632365f735553444360981b60648201525f81608481835f5160206201b1205f395f51905f525af180156200e4bb576200e4a5575b50604051906113ed91828101928184106001600160401b038511176200e478578183946020926201892883395f5160206201b1605f395f51905f52815203019082f080156200e46b57602980546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b8252600482015260406024820152600e60448201526d08aa486686c646cbee68e9e8aa8960931b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200e48c575b5050604051906113eb91828101928184106001600160401b038511176200e4785781839460209262019d1583395f5160206201b1e05f395f51905f52815203019082f080156200e46b57602880546001600160a01b0319166001600160a01b039290921691821790555f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b8252600482015260406024820152600d60448201526c08aa486686c646cbee68aa890f609b1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200e452575b508060405160208101906370a0823160e01b8252306024820152602481526200b76d6044826200e74e565b51905f5160206201b2205f395f51905f525afa506200b78f62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2205f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200b7e99301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200b80a620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200b8518162000b11888886620113bc565b519020865260205260ff600360408720015416156200e441575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200b8a76040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200b8cc81866200eb70565b6200e33b575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e2fc575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264e8d4a5100090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e2e3575b50506200b9b5620115b6565b90159081156200e2d2575b506200d95357826200b9d16201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200b9fc6044826200e74e565b51905f5160206201b1e05f395f51905f525afa506200ba1e62000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200ba789301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200ba99620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200bae08162000b11888886620113bc565b519020865260205260ff600360408720015416156200e2c1575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200bb366040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200bb5b81866200eb70565b6200e1d4575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e195575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e17c575b50506200bc49620115b6565b90159081156200e166575b506200d95357826200bc656201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200bc906044826200e74e565b51905f5160206201b1605f395f51905f525afa506200bcb262000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1605f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200bd0c9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200bd2d620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200bd748162000b11888886620113bc565b519020865260205260ff600360408720015416156200e155575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200bdca6040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200bdef81866200eb70565b6200e067575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200e028575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091526a084595161401484a00000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200e00f575b50506200bede620115b6565b90159081156200dff8575b506200d95357826200befa6201218f565b60405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b1605f395f51905f525af1801562000815576200dfd6575b5060295460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152906020908290604490829086906001600160a01b03165af1801562000815576200dfb4575b5060405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200df92575b5060405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200df70575b50620151804201804211620017e25765ffffffffffff8291166e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b1605f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df57575b50506029546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c1279260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df3e575b50506e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b2205f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df25575b50506e22d473030f116ddee9f6b43ac78ba33b156200d82c576040516387517c4560e01b81525f5160206201b1e05f395f51905f526004820152739179c06629ef7f17cb5759f501d89997fe0e7b4560248201526001600160a01b036044820152606481018290528281608481836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200df0c575b5060275460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f1960248201529160209183916044918391906001600160a01b03165af180156200083d576200deea575b506027546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c3049260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200ded1575b5060285460405163095ea7b360e01b81526e22d473030f116ddee9f6b43ac78ba360048201525f1960248201529160209183916044918391906001600160a01b03165af180156200083d576200deaf575b506028546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c3c19260405193849283926387517c4560e01b8452600484016200eb7e565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de96575b50506027546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c42e9260405193849283926387517c4560e01b8452600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de7d575b50506028546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de605782826200c49b9260405193849283926387517c4560e01b8452600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af19081156200083d5783916200de64575b50506029546001600160a01b03166e22d473030f116ddee9f6b43ac78ba33b156200de60576040516387517c4560e01b8152918391839182916200c5099190600484016200ebc2565b0381836e22d473030f116ddee9f6b43ac78ba35af1801562000815576200de47575b505060275460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200de25575b5060285460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200de03575b5060295460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1605f395f51905f525af1801562000815576200dde1575b50602754604051636e553f6560e01b8152633b9aca006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200ddac575b50602854604051636e553f6560e01b8152683635c9adc5dea000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200dd77575b50602954604051636e553f6560e01b815269d3c21bcecceda10000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200dd42575b506027546040516359b2d1e160e11b81526001600160a01b0390911660048201526298968060248201819052604482015262895440606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dd0d575b506028546040516359b2d1e160e11b81526001600160a01b039091166004820152678ac7230489e80000602482018190526044820152677ce66c50e2840000606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dcd8575b506029546040516359b2d1e160e11b81526001600160a01b039091166004820152678ac7230489e80000602482018190526044820152677ce66c50e2840000606482015260208160848185739179c06629ef7f17cb5759f501d89997fe0e7b455af1801562000815576200dca3575b50808060405160208101906370a0823160e01b8252306024820152602481526200c85f6044826200e74e565b51905f5160206201b2205f395f51905f525afa506200c88162000a2b62010eea565b50601180546001600160a01b0319165f5160206201b2205f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200c8db9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200c8fc620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200c9438162000b11888886620113bc565b519020865260205260ff600360408720015416156200dc92575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200c9996040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200c9be81866200eb70565b6200dbaa575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200db6b575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264e8d4a5100090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200db52575b50506200caa7620115b6565b90159081156200db41575b506200d95357826200cac36201218f565b808060405160208101906370a0823160e01b8252306024820152602481526200caee6044826200e74e565b51905f5160206201b1e05f395f51905f525afa506200cb1062000a2b62010eea565b50601180546001600160a01b0319165f5160206201b1e05f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200db2d5762000a908160016200cb6a9301600e556200e912565b905560018060a01b0360115416600f5460e01b601054906200cb8b620113d3565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906200cbd28162000b11888886620113bc565b519020865260205260ff600360408720015416156200db1c575b6001600160a01b0384165f908152600d6020526040902090855260205262000b116200cc286040862093604051928391602083019586620113bc565b519020835260205281604081209160018301549260028101546200cc4d81866200eb70565b6200da11575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206201b1205f395f51905f525afa968715620013385786976200d9d2575b506001908201610100031b5f1901811b198616915f5160206201b1205f395f51905f523b15620014a8576040516370ca10bb60e01b81526001600160a01b03861660048201526024810191909152683635c9adc5dea0000090911b9190911760448201528381606481835f5160206201b1205f395f51905f525af1908115620005185784916200d9b9575b50506200cd3a620115b6565b90159081156200d9a4575b506200d95357826200cd566201218f565b60275460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200d931575b5060285460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200d90f575b50602754604051636e553f6560e01b815264e8d4a510006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200d8da575b50602854604051636e553f6560e01b8152683635c9adc5dea000006004820152306024820152906020908290604490829086906001600160a01b03165af1801562000815576200d8a5575b5060405163095ea7b360e01b815273ba1333333333a1ba1108e8412f11850a5c319ba960048201525f196024820152602081604481855f5160206201b2205f395f51905f525af1801562000815576200d883575b5060405163095ea7b360e01b815273ba1333333333a1ba1108e8412f11850a5c319ba960048201525f196024820152602081604481855f5160206201b1e05f395f51905f525af1801562000815576200d861575b505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273ba1333333333a1ba1108e8412f11850a5c319ba9600482015260406024820152600f60448201526e10985b185b98d95c958cd5985d5b1d608a1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d848575b506026546001600160a01b03165f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b19a130ba31b42937baba32b960591b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d82f575b506025546001600160a01b03165f5160206201b1205f395f51905f523b156200d82c57604051906318caf8e360e31b825260048201526040602482015260156044820152742130b630b731b2b92b19a9bbb0b820b230b83a32b960591b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d813575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b2405f395f51905f52600482015260406024820152601160448201527008aa486686c646cbeeec28ae8d0ae8aa89607b1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d7fa575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1e05f395f51905f52600482015260406024820152600a60448201526908aa4866460be8aa890f60b31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d7e1575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b8152734ab7ab316d43345009b2140e0580b072eec7df16600482015260406024820152602560448201527f455243343632365f45524332305f455448785f7761574554485f535441424c4560648201526417d413d3d360da1b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d7c8575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273f91c11ba4220b7a72e1dc5e92f2b48d3fdf62726600482015260406024820152602460448201527f45524332305f45524332305f474f4554485f555344435f57454947485445445f6064820152631413d3d360e21b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d7af575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1605f395f51905f52600482015260406024820152600b60448201526a08aa4866460be8e9e8aa8960ab1b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d796575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b2205f395f51905f52600482015260406024820152600a60448201526945524332305f5553444360b01b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d77d575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b815273c4ce391d82d164c166df9c8336ddf84206b2f812600482015260406024820152602760448201527f455243343632365f455243343632365f574554485f7773744554485f53544142606482015266131157d413d3d360ca1b6084820152818160a481835f5160206201b1205f395f51905f525af1801562000815576200d764575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81525f5160206201b1405f395f51905f52600482015260406024820152600a60448201526908aa4866460beae8aa8960b31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d74b575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b8152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0600482015260406024820152600c60448201526b08aa4866460beeee6e88aa8960a31b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d732575b50505f5160206201b1205f395f51905f523b15620002b4576040516318caf8e360e31b815281908181806200d5f3600482016200ec06565b0381835f5160206201b1205f395f51905f525af1801562000815576200d719575b50505f5160206201b1205f395f51905f523b15620002b4576040516318caf8e360e31b815281908181806200d64c600482016200ec06565b0381835f5160206201b1205f395f51905f525af1801562000815576200d700575b50505f5160206201b1205f395f51905f523b15620002b457806040516318caf8e360e31b81526e22d473030f116ddee9f6b43ac78ba360048201526040602482015260076044820152662832b936b4ba1960c91b60648201528181608481835f5160206201b1205f395f51905f525af1801562000815576200d6ec5750f35b816200d6f8916200e74e565b620002b45780f35b816200d70c916200e74e565b620002b45780826200d66d565b816200d725916200e74e565b620002b45780826200d614565b816200d73e916200e74e565b620002b45780826200d5bb565b816200d757916200e74e565b620002b45780826200d534565b816200d770916200e74e565b620002b45780826200d4b5565b816200d789916200e74e565b620002b45780826200d40d565b816200d7a2916200e74e565b620002b45780826200d38e565b816200d7bb916200e74e565b620002b45780826200d30e565b816200d7d4916200e74e565b620002b45780826200d269565b816200d7ed916200e74e565b620002b45780826200d1c3565b816200d806916200e74e565b620002b45780826200d144565b816200d81f916200e74e565b620002b45780826200d0be565b50fd5b816200d83b916200e74e565b620002b45780826200d038565b816200d854916200e74e565b620002b45780826200cfb2565b6200d87d9060203d6020116200136f576200136081836200e74e565b6200cf29565b6200d89f9060203d6020116200136f576200136081836200e74e565b6200ced5565b6020813d6020116200d8d1575b816200d8c1602093836200e74e565b810103126200111757516200ce81565b3d91506200d8b2565b6020813d6020116200d906575b816200d8f6602093836200e74e565b810103126200111757516200ce36565b3d91506200d8e7565b6200d92b9060203d6020116200136f576200136081836200e74e565b6200cdef565b6200d94d9060203d6020116200136f576200136081836200e74e565b6200cda2565b54905f5160206201b1205f395f51905f523b1562000514576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101620013e8565b683635c9adc5dea0000091501415866200cd45565b816200d9c5916200e74e565b620005145782866200cd2e565b955095506020853d6020116200da08575b816200d9f2602093836200e74e565b810103126200111757935194869490816200cca3565b3d91506200d9e3565b909192506200da2181856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200dae2916020948a916200dafe575b506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b683635c9adc5dea000001015620015d35750908492916200cc53565b6200db1591503d808c833e6200161481836200e74e565b8a6200da80565b6200db266201185a565b506200cbec565b634e487b7160e01b82526041600452602482fd5b64e8d4a5100091501415866200cab2565b816200db5e916200e74e565b620005145782866200ca9b565b955095506020853d6020116200dba1575b816200db8b602093836200e74e565b810103126200111757935194869490816200ca14565b3d91506200db7c565b909192506200dbba81856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200dc7a916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b64e8d4a510001015620015d35750908492916200c9c4565b6200dc9c6201185a565b506200c95d565b6020813d6020116200dccf575b816200dcbf602093836200e74e565b810103126200111757516200c833565b3d91506200dcb0565b6020813d6020116200dd04575b816200dcf4602093836200e74e565b810103126200111757516200c7c4565b3d91506200dce5565b6020813d6020116200dd39575b816200dd29602093836200e74e565b810103126200111757516200c755565b3d91506200dd1a565b6020813d6020116200dd6e575b816200dd5e602093836200e74e565b810103126200111757516200c6f0565b3d91506200dd4f565b6020813d6020116200dda3575b816200dd93602093836200e74e565b810103126200111757516200c6a4565b3d91506200dd84565b6020813d6020116200ddd8575b816200ddc8602093836200e74e565b810103126200111757516200c659565b3d91506200ddb9565b6200ddfd9060203d6020116200136f576200136081836200e74e565b6200c613565b6200de1f9060203d6020116200136f576200136081836200e74e565b6200c5c6565b6200de419060203d6020116200136f576200136081836200e74e565b6200c579565b816200de53916200e74e565b620002b45780826200c52b565b5050fd5b816200de70916200e74e565b6200d82c5781846200c4c0565b816200de89916200e74e565b6200d82c5781846200c453565b816200dea2916200e74e565b6200d82c5781846200c3e6565b6200decb9060203d6020116200136f576200136081836200e74e565b6200c37a565b816200dedd916200e74e565b6200d82c5781846200c329565b6200df069060203d6020116200136f576200136081836200e74e565b6200c2bd565b816200df18916200e74e565b6200d82c5781846200c26c565b816200df31916200e74e565b6200d82c5781846200c1dc565b816200df4a916200e74e565b6200d82c5781846200c14c565b816200df63916200e74e565b6200d82c5781846200c0df565b6200df8c9060203d6020116200136f576200136081836200e74e565b6200c038565b6200dfae9060203d6020116200136f576200136081836200e74e565b6200bfe9565b6200dfd09060203d6020116200136f576200136081836200e74e565b6200bf9a565b6200dff29060203d6020116200136f576200136081836200e74e565b6200bf48565b6a084595161401484a00000091501415866200bee9565b816200e01b916200e74e565b620005145782866200bed2565b955095506020853d6020116200e05e575b816200e048602093836200e74e565b810103126200111757935194869490816200be45565b3d91506200e039565b909192506200e07781856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e137916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b6a084595161401484a0000001015620015d35750908492916200bdf5565b6200e15f6201185a565b506200bd8e565b69152d02c7e14af680000091501415866200bc54565b816200e188916200e74e565b620005145782866200bc3d565b955095506020853d6020116200e1cb575b816200e1b5602093836200e74e565b810103126200111757935194869490816200bbb1565b3d91506200e1a6565b909192506200e1e481856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e2a4916020948a916200dafe57506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b69152d02c7e14af68000001015620015d35750908492916200bb61565b6200e2cb6201185a565b506200bafa565b64e8d4a51000915014155f6200b9c0565b816200e2ef916200e74e565b6200051457825f6200b9a9565b955095506020853d6020116200e332575b816200e31c602093836200e74e565b810103126200111757935194869490816200b922565b3d91506200e30d565b909192506200e34b81856200eb70565b610100036101008111620025925760ff8111620025925760405163348051d760e11b8152600190911b6004820181905286826024815f5160206201b1205f395f51905f525afa80156200116357606a6200e40b916020948a916200e42357506040519485915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f1981018452836200e74e565b64e8d4a510001015620015d35750908492916200b8d2565b6200e43a91503d808c833e6200161481836200e74e565b5f6200da80565b6200e44b6201185a565b506200b86b565b816200e45e916200e74e565b620002b457805f6200b742565b50604051903d90823e3d90fd5b634e487b7160e01b83526041600452602483fd5b816200e498916200e74e565b620002b457805f6200b668565b6200e4b391505f906200e74e565b5f5f6200b58e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d6020116200e506575b816200e4f6602093836200e74e565b810103126200111757516200b413565b3d91506200e4e7565b6200e52691503d805f833e6200161481836200e74e565b5f6200b3c4565b346200111757604036600319011262001117576200e54a6200e770565b6024359033156200e5c8576001600160a01b03169081156200e5b557335f52602160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3462001117576040366003190112620011175760206200e6146040516200e602816200e716565b6004358152602435838201526200ea51565b604051908152f35b3462001117575f36600319011262001117575f6023546200e63d816200e958565b80845290600181169081156200e6cc57506001146200e66a575b620008d8836200488d818503826200e74e565b60235f9081527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f4230939250905b8082106200e6b1575090915081016020016200488d6200e657565b9192600181602092548385880101520191019092916200e696565b60ff191660208086019190915291151560051b840190910191506200488d90506200e657565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604081019081106001600160401b038211176200e4c657604052565b606081019081106001600160401b038211176200e4c657604052565b90601f801991011681019081106001600160401b038211176200e4c657604052565b600435906001600160a01b03821682036200111757565b602435906001600160a01b03821682036200111757565b60409060031901126200111757600435906024358015158103620011175790565b60206040818301928281528451809452019201905f5b8181106200e7e35750505090565b82516001600160a01b03168452602093840193909201916001016200e7d5565b9080602083519182815201916020808360051b8301019401925f915b8383106200e82f57505050505090565b90919293946020806200e84f600193601f1986820301875289516200e6f2565b970193019301919392906200e81f565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106200e89257505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106200e8ee57505050602080600192970193019301919392906200e882565b82516001600160e01b0319168452602093840193909201916001909101906200e8cd565b600e548110156200e92b57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156200e92b57601f5f5260205f2001905f90565b90600182811c921680156200e988575b60208310146200e97457565b634e487b7160e01b5f52602260045260245ffd5b91607f16916200e968565b5f92918154916200e9a4836200e958565b80835292600181169081156200e9fd57506001146200e9c257505050565b5f9081526020812093945091925b8383106200e9e2575060209250010190565b6001816020929493945483858701015201910191906200e9d0565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116200e4c65760051b60200190565b81156200ea3d570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156200ea8e5760206200ea8b920151906200ea32565b90565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381116200e4c657601f01601f191660200190565b60208183031262001117578051906001600160401b03821162001117570181601f8201121562001117578051906200eaf6826200eaa2565b926200eb0660405194856200e74e565b828452602083830101116200111757815f9260208093018386015e8301015290565b9081602091031262001117575190565b9291906200eb516020916040865260408601906200e6f2565b930152565b908160209103126200111757518015158103620011175790565b919082018092116200ea8e57565b6001600160a01b039182168152739179c06629ef7f17cb5759f501d89997fe0e7b456020820152604081019190915265ffffffffffff909116606082015260800190565b6001600160a01b03918216815273ba1333333333a1ba1108e8412f11850a5c319ba96020820152604081019190915265ffffffffffff909116606082015260800190565b6080905f5160206201b2005f395f51905f52815260406020820152601560408201527408aa486686c646cbeeec28ae8d098d2c8deae8aa89605b1b60608201520190565b60208183031262001117578051906001600160401b0382116200111757019080601f83011215620011175781516200ec82816200ea1a565b926200ec9260405194856200e74e565b81845260208085019260051b8201019283116200111757602001905b8282106200ecbc5750505090565b81518152602091820191016200ecae565b8051156200e92b5760200190565b8051600110156200e92b5760400190565b80518210156200e92b5760209160051b010190565b919082604091031262001117576040516200ed1c816200e716565b6020808294805184520151910152565b9060808282031262001117576200ed629060408051936200ed4d856200e732565b8051855260208101516020860152016200ed01565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b919082039182116200ea8e57565b60208183031262001117578051906001600160401b03821162001117570181601f82011215620011175780516200eddd816200ea1a565b926200eded60405194856200e74e565b81845260208085019260061b840101928184116200111757602001915b8383106200ee19575050505090565b60206040916200ee2a84866200ed01565b8152019201916200ee0a565b602060a06080830192737c8e08dd21105bd3970ee2f49795a469fefb139360611b81525f5160206201b1605f395f51905f52838201525f5160206201b2205f395f51905f526040820152608060608201528451809452019201905f5b8181106200eea05750505090565b82518452602093840193909201916001016200ee92565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106200eefc5750505090565b82518452602093840193909201916001016200eeee565b60085460ff1680156200ef235790565b50604051630667f9d760e41b81525f5160206201b1205f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206201b1205f395f51905f525afa9081156200e4bb575f916200ef81575b50151590565b90506020813d6020116200efb0575b816200ef9f602093836200e74e565b810103126200111757515f6200ef7b565b3d91506200ef90565b60208183031262001117578051906001600160401b0382116200111757019080601f8301121562001117578151906200eff2826200ea1a565b926200f00260405194856200e74e565b82845260208085019360051b8201019182116200111757602001915b8183106200f02c5750505090565b8251600a81101562001117578152602092830192016200f01e565b60405163313ce56760e01b81526020816004815f5160206201b1405f395f51905f525afa80156200e4bb575f906200f0cd575b60ff91501680600682116200f0b9575b600c81116200f0a4575b50604d81116200ea8e57600a0a90565b6002198101915081116200ea8e575f6200f094565b905f1981019081116200ea8e57906200f08a565b506020813d6020116200f108575b816200f0ea602093836200e74e565b8101031262001117575160ff81168103620011175760ff906200f07a565b3d91506200f0db565b60405163313ce56760e01b81526020816004815f5160206201b1a05f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b2005f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b1605f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b2405f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b81526020816004815f5160206201b1e05f395f51905f525afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa80156200e4bb575f906200f0cd5760ff91501680600682116200f0b957600c81116200f0a45750604d81116200ea8e57600a0a90565b905f5160206201b1205f395f51905f523b1562001117576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b5f6200f38c916200e74e565b565b5f5160206201b1205f395f51905f523b1562001117576040516323f2866760e11b81525f60048201525f60248201525f81604481835f5160206201b1205f395f51905f525af180156200e4bb576200f3805750565b5f5160206201b1205f395f51905f523b15620011175760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b6001600160a01b03169081156200f4e4576001600160a01b03169182156200f4d157815f526020805260405f20548181106200f4b857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f528380520360405f2055845f5281805260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b683635c9adc5dea0000067016345785d8a00006200f5159262010f29565b906200f38c826200536b604051620053316040826200e74e565b683635c9adc5dea0000066038d7ea4c680006200f5159262010f29565b5f5b81518110156200f59b576200f56481836200ecec565b51600a8110156200f587576005146200f580576001016200f54e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b81518110156200f59b576200f5b981836200ecec565b51600a8110156200f587576009146200f580576001016200f5a3565b5f5b81518110156200f59b576200f5ed81836200ecec565b51600a8110156200f587576008146200f580576001016200f5d7565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526200f6436064846200e74e565b82516001600160a01b038316915f91829182855af1906200f66362010eea565b826200f6cd575b50816200f6c1575b50156200f67e57505050565b6200f6bb6200f38c936040519063095ea7b360e01b602083015260248201525f6044820152604481526200f6b46064826200e74e565b82620110d4565b620110d4565b90503b15155f6200f672565b805191925081159182156200f6e7575b5050905f6200f66a565b6200f6fc92506020809183010191016200eb56565b5f806200f6dd565b604051906200f7156060836200e74e565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af180156200e4bb576200f7cc915f9162010ed357506200eccd565b5161010052606060a08190526040516200f82c916200f7ec90826200e74e565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261010051620111a1565b60a051506200f8ea6200f8bb6200536b6040516200f84d60a051826200e74e565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a48301906200e6f2565b6001600160a01b0389811660448401528616606483015261010051608483015203601f1981018352826200e74e565b6040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156200e4bb576200f946915f9162010eb5575b506200f5a1565b90604051916200f95860a0846200e74e565b6004835260803660208501371562010ea7575f5b6200f977836200eccd565b526103e861010051046200f98b836200ecdb565b528151600210156200e92b5760a05182016101005160011c90528151600310156200e92b5761010051608083015260405163155adc9160e31b8152935f85806200f9dc86868b8a600486016200eeb7565b0381836001600160a01b0386165af19485156200e4bb575f9562010e87575b506200fa126200fa0b866200eccd565b516200ea51565b85515f198101919082116200ea8e576200fa356200fa0b6200fa9293896200ecec565b60a05160405192906200fa4990846200e74e565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526201120f565b6200faa16200fa0b866200eccd565b85515f198101919082116200ea8e576200536b6200fb48916200facd6200fa0b6200fb62958b6200ecec565b60a0516040519291906200fae290846200e74e565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a051602486015260848501906200e6f2565b916044840152606483015203601f1981018352826200e74e565b60a0516040516200fbb7916200fb7990826200e74e565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b604082015262011248565b6200fc0f6200fbc6866200eccd565b5151604060e0819052805191906200fbdf90836200e74e565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152620111a1565b6200fc6660206200fc20876200eccd565b51015160e051805191906200fc3690836200e74e565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152620111a1565b6200fc756200fa0b866200eccd565b9460e051506200fcb88660e051516200fc9160e051826200e74e565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b60208201526201127a565b60e051516200fcc7816200e732565b5f81525f602082015260e05151906200fce0826200e716565b5f808352602083015260e051015283515f1981019081116200ea8e576200fd0890856200ecec565b5160058181020481036200ea8e575f8060e0515160208101906370a0823160e01b8252306024820152602481526200fd426044826200e74e565b51908b5afa506200fd5662000a2b62010eea565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156200e4c65762000a908160016200fdab9301600e556200e912565b90556011546001600160a01b031661014052600f546010549060e01b6200fdd1620113d3565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e0515160208101906200fe1d8162000b11888886620113bc565b5190205f5260205260ff600360e0515f200154161562010e76575b610140516001600160a01b03165f908152600d60205260409020905f5260205262000b116200fe7960e0515f209360e05151928391602083019586620113bc565b5190205f5260205260e0515f2060018101549160028201546200fe9d81856200eb70565b62010d4d575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f5160206201b1205f395f51905f525afa95861562010d07575f9662010d13575b506001908201610100031b5f1901811b1985165f5160206201b1205f395f51905f523b15620011175760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f5160206201b1205f395f51905f525af1801562010d075762010cef575b506200ff84620115b6565b901591821562010ce0575b505062010be35750506200ffa26201218f565b60e05151634b88b8ad60e11b8152602081600481610120515f5160206201b1205f395f51905f525af18015620104c0576101205160805262010baa575b5060015b84518110156201059f57620100d2620100aa6200536b62010004846200e93f565b5062010011858a6200ecec565b51620100bd620047f06201008360e05151946201003160a051876200e74e565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e05151928380926200e993565b60e05151635821efa160e01b602082015260a051602482015295869460848601906200e6f2565b848103602319016044860152906200e6f2565b90606483015203601f1981018352826200e74e565b620100e26200fa0b82846200ecec565b620101856201015f6200536b620100fa858a6200ecec565b5160e05151906201010e60e051836200e74e565b601782527f544553543a205377617070696e67202564206f66202573000000000000000000602083015260e0515193849263038fd88960e31b602085015260a051602485015260848401906200e6f2565b60448301919091526001600160a01b038e16606483015203601f1981018352826200e74e565b8460808a89620101b86201019a878c6200ecec565b5160e05151638307c65560e01b81529586948594600486016200ed6a565b03816101205160018060a01b038a165af1908115620104c05761012051916201057c575b508051806a084595161401484a0000008102046a084595161401484a000000148115171562010562576201022f6201023b916a084595161401484a00000062010226878c6200ecec565b5191026200ea32565b9160e05101516200ea51565b91620102838260e051516201025360e051826200e74e565b601d81527f544553543a20202d2045786563757465642070726963653a202020256400000060208201526201127a565b620102ca8160e051516201029a60e051826200e74e565b601d81527f544553543a20202d20507269636520617420616d6f756e743a2020256400000060208201526201127a565b620103118360e05151620102e160e051826200e74e565b601d81527f544553543a20202d20507269636520616674657220737761703a20256400000060208201526201127a565b60c05115620104cf5760a05160e051516201045294620103f4939092620103879291906201034090836200e74e565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285620112a5565b60a05160e0515191906201039c90836200e74e565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e051830152836201120f565b60a05160e0515191906201040990836200e74e565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e051830152896201120f565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f5160206201b1205f395f51905f525af1918215620104c0576001926201049d575b50016200ffe3565b620104b89060203d81116200136f576200136081836200e74e565b505f62010495565b60e051513d61012051823e3d90fd5b6201050190620104ef6201055c94620104e76200f704565b908d620112a5565b620104f96200f704565b908b620112a5565b60e05151906201051460a051836200e74e565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289620112a5565b62010452565b634e487b7160e01b61012051526011600452602461012051fd5b62010598915060803d81116200129d576200128c81836200e74e565b5f620101dc565b50509150919392506069610100510261010051810460691461010051151715620105625760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015620104c0576201062891610120519162010b89575b506200f5d5565b1562010a1057620106958460e051516201064560a051826200e74e565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e0518201526201127a565b60e05180519490620106a890866200e74e565b6001855260e051601f1901366020870137620106c4856200eccd565b5260e0515163155adc9160e31b8152610120518180620106eb8888878c600486016200eeb7565b03816101205160018060a01b0388165af19081620109f1575b506201098557600162010716620112de565b6308c379a014620108ee575b620104c057620107346080946200eccd565b51946201075960e0515196879586948594638307c65560e01b8652600486016200ed6a565b61012051919003926001600160a01b03165af19081620108cc575b506201086a57600162010786620112de565b6308c379a014620107de575b620104c0575b6200f38c60e05151620107ae60e051826200e74e565b601781527f544553543a20416c6c207465737473207061737365642e000000000000000000602082015262011248565b620107e8620112fa565b80620107f6575b5062010792565b6101205160a05160e05151919350620108639291906201081790826200e74e565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e05182015262011372565b5f620107ef565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b620108e89060803d6080116200129d576200128c81836200e74e565b62010774565b620108f8620112fa565b8062010906575b5062010722565b6101205160a05160e051519193506201097e9291906201092790826200e74e565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e05182015262011372565b5f620108ff565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b62010a0a903d8061012051833e620004c281836200e74e565b62010704565b60a05160e0515162010a769186919062010a2b90826200e74e565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e0518201526201127a565b60e0518051949062010a8990866200e74e565b6001855260e051601f190136602087013762010aa5856200eccd565b5260e051519363155adc9160e31b855261012051858062010acd8488878c600486016200eeb7565b03816101205160018060a01b0388165af1908115620104c05760809562010afa9262010b6a57506200eccd565b519462010b1f60e0515196879586948594638307c65560e01b8652600486016200ed6a565b61012051919003926001600160a01b03165af18015620104c05762010b46575b5062010798565b62010b629060803d6080116200129d576200128c81836200e74e565b505f62010b3f565b62010b83903d8061012051833e620004c281836200e74e565b6200033e565b62010ba391503d8061012051833e62003ef081836200e74e565b5f62010621565b6020813d60201162010bda575b8162010bc6602093836200e74e565b810103126200111757516080525f6200ffdf565b3d915062010bb7565b545f5160206201b1205f395f51905f523b1562010cd95760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f5160206201b1205f395f51905f525af18015620104c05762010cba575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6101205162010cc9916200e74e565b6101205162010cd9578062010c58565b6101205180fd5b600502141590505f806200ff8f565b5f62010cfb916200e74e565b5f610120525f6200ff79565b60e051513d5f823e3d90fd5b9095506020813d60201162010d44575b8162010d32602093836200e74e565b8101031262001117575194816200fef7565b3d915062010d23565b62010d5981856200eb70565b6101000361010081116200ea8e5760ff81116200ea8e5760e0515163348051d760e11b81526001821b60048201525f816024815f5160206201b1205f395f51905f525afa91821562010d075762010e1e606a6020946001945f9162010e58575b5060e051519586915f5160206201b2805f395f51905f52828401525f5160206201b1005f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f1981018552846200e74e565b1b83600502101562010e3157506200fea3565b60e0515162461bcd60e51b815260206004820152908190620015f99060248301906200e6f2565b62010e6f91503d805f833e6200161481836200e74e565b5f62010db9565b62010e806201185a565b506200fe38565b62010e9f9195503d805f833e620004c281836200e74e565b935f6200f9fb565b61271061010051046200f96c565b62010ecc91503d805f833e62003ef081836200e74e565b5f6200f93f565b6200055991503d805f833e6200055081836200e74e565b3d1562010f19573d9062010efe826200eaa2565b9162010f0e60405193846200e74e565b82523d5f602084013e565b606090565b81156200ea3d570690565b5f908383116201106957828110918215806201105e575b620110565762010f5184866200ed98565b92600184018094116200ea8e576003831115806201104c575b6201103b576003198310158062011030575b6201101d578583111562010fcb5750509062010f9d8462010fa3936200ed98565b62010f1e565b90811562010fc65762010fb792506200eb70565b5f1981019081116200ea8e5790565b505090565b95949291909562010fdd575b50505050565b8394955062010f9d9062010ff293946200ed98565b90811562010fc6576201100692506200ed98565b600181018091116200ea8e57905f80808062010fd7565b505090506200ea8b92915019906200ed98565b508219841162010f7c565b50509190506200ea8b92506200eb70565b5082841162010f6a565b509250505090565b508482111562010f40565b60405162461bcd60e51b815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e00006064820152608490fd5b815162011103926001600160a01b03909216915f91829160200182855af1620110fc62010eea565b9162011792565b8051908162011110575050565b602080620111239383010191016200eb56565b156201112b57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6200ea8b93926060928252602082015281604082015201906200e6f2565b5f5160206201b1205f395f51905f523b156200111757620111ed915f916040519384928392636cd1e26960e11b845260048401528460248401526060604484015260648301906200e6f2565b03815f5160206201b1205f395f51905f525afa80156200e4bb576200f3805750565b905f5160206201b1205f395f51905f523b1562001117575f91620111ed6040519485938493636cd1e26960e11b85526004850162011183565b62000b116200536b6200f38c9260405192839163104c13eb60e21b60208401526020602484015260448301906200e6f2565b906200536b6200f38c9262000b11604051938492632d839cb360e21b6020850152602484016200eb38565b905f5160206201b1205f395f51905f523b1562001117575f91620111ed6040519485938493630389490b60e61b85526004850162011183565b5f9060033d11620112eb57565b905060045f803e5f5160e01c90565b5f60443d106200ea8b576040513d600319016004823e8051913d60248401116001600160401b038411176201136c57828201928351916001600160401b03831162011364573d840160031901858401602001116201136457506200ea8b929101602001906200e74e565b949350505050565b92915050565b6200536b620113a99162000b116200f38c94604051948593634b5c427760e01b60208601526040602486015260648501906200e6f2565b838103602319016044850152906200e6f2565b60209291908391805192839101825e019081520190565b620113e06014546200e958565b620114ad576040519081826020600e549283815201600e5f5260205f20925f5b8181106201149357505062011418925003836200e74e565b81518060051b90808204602014901517156200ea8e5762011439816200eaa2565b906201144960405192836200e74e565b8082526201145a601f19916200eaa2565b013660208301375f5b83518110156201148e57806201147c600192866200ecec565b5160208260051b850101520162011463565b509150565b845483526001948501948794506020909301920162011400565b6040516200ea8b81620047f08160146200e993565b6007810190620114d382546200e958565b6201159f57600191500190604051808360208295549384815201905f5260205f20925f5b818110620115855750506201150f925003836200e74e565b81518060051b90808204602014901517156200ea8e5762011530816200eaa2565b906201154060405192836200e74e565b80825262011551601f19916200eaa2565b013660208301375f5b83518110156201148e578062011573600192866200ecec565b5160208260051b85010152016201155a565b8454835260019485019487945060209093019201620114f7565b506200ea8b620047f091604051928380926200e993565b5f806020600f5460e01b620116086024620115d2600d620114c2565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f1981018452836200e74e565b6011549151916001600160a01b03165afa906201162462010eea565b601054909290600581901b906001600160fb1b038116036200ea8e575f938051602081115f14620116b757506020905b5f925b8284106201166757505050509190565b909192956201167787836200eb70565b83518110156200e92b57830160200151600388901b91906001600160f81b031916881560088a85041417156200ea8e576001921c17960192919062011657565b9062011654565b905f806020600285015460e01b620116dc6024620115d288620114c2565b60048601549151916001600160a01b03165afa6003620116fb62010eea565b930154600581901b906001600160fb1b038116036200ea8e575f938051602081115f146201178b57506020905b5f925b8284106201173b57505050509190565b909192956201174b87836200eb70565b83518110156200e92b57830160200151600388901b91906001600160f81b031916881560088a85041417156200ea8e576001921c1796019291906201172b565b9062011728565b90620117b85750805115620117a957805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580620117eb575b620117cb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15620117c2565b9080601f83011215620011175781516201180f816200ea1a565b926201181f60405194856200e74e565b81845260208085019260051b8201019283116200111757602001905b828210620118495750505090565b81518152602091820191016201183b565b601154600f546010546001600160a01b03909216915f9160e01b62011880600d620114c2565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f206040516020810190620118bc8162000b11888886620113bc565b5190205f5260205260ff600360405f200154166201214b575f5160206201b1205f395f51905f523b15620011175760405163266cf10960e01b81525f81600481835f5160206201b1205f395f51905f525af180156200e4bb5762012133575b5062011928600d620116be565b90506040516365bc948160e01b81528660048201528581602481835f5160206201b1205f395f51905f525af190811562001338578691620120c9575b508051620119d657608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015620120c057816020620119f58362011a26956200ecec565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206201b1205f395f51905f525afa928315620012a557889362012087575b5082156201202b575b62011a5e82826200ecec565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206201b1205f395f51905f525afa90811562005b0d578b9162011ff4575b5062011abe600d620116be565b91909382155f1462011fec575f19905b5f5160206201b1205f395f51905f523b1562011fcf576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206201b1205f395f51905f525af1801562011f4c57908d9162011fd3575b505062011b46600d620116be565b601154909491506001600160a01b03165f5160206201b1205f395f51905f523b1562011fcf576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206201b1205f395f51905f525af1801562011fc457908c9162011fab575b50508262011f9f575b50501562011f94578793889360ff6013541662011dfc575b6001868601610100031b5f1901851b16841c810362011ded57509062011c70917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b8962000b1162011c428d604051928391602083019586620113bc565b51902062011c5186866200ecec565b51906040519283528a602084015260408301526060820152a16200ecec565b51906040519060808201928284106001600160401b038511176200e4c65760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019062011cdd8162000b118d8d86620113bc565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019062011d3b8162000b11888886620113bc565b519020855260205260ff6003604086200154161562011d90576040948452600d60205284842090845260205262000b1162011d84858520938651928391602083019586620113bc565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01620119d8565b945062011e4a935062011e1083836200ecec565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206201b1205f395f51905f525afa94851562003a96578a9562011f5b575b5062011e7b86600d620122b2565b95909662011e8b81600d6201239b565b60115490939192906001600160a01b03165f5160206201b1205f395f51905f523b1562011f57576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206201b1205f395f51905f525af1801562011f4c57908d9162011f2f575b50508762011f26575b50949562011be257509350915060019062011df5565b96505f62011f10565b8162011f3b916200e74e565b62011f48578b5f62011f07565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d821162011f8b575b8162011f79602093836200e74e565b81010312620011175751935f62011e6d565b3d915062011f6a565b915060019062011df5565b141590505f8062011bca565b8162011fb7916200e74e565b62005aca578a5f62011bc1565b6040513d8e823e3d90fd5b8d80fd5b8162011fdf916200e74e565b62011f48578b5f62011b38565b8c9062011ace565b90506020813d821162012022575b8162012011602093836200e74e565b810103126200111757515f62011ab1565b3d915062012002565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56201207e6201205c84846200ecec565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a162011a52565b9092506020813d8211620120b7575b81620120a5602093836200e74e565b81010312620011175751915f62011a49565b3d915062012096565b50505062011d0b565b90503d8087833e620120dc81836200e74e565b810160408282031262003ed15781516001600160401b03811162002461578162012108918401620117f5565b916020810151906001600160401b03821162003929576201212b929101620117f5565b505f62011964565b620121429194505f906200e74e565b5f925f6201191b565b91939092505f52600d60205260405f20905f5260205262000b116201218060405f2093604051928391602083019586620113bc565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806201226d575b505f60105560ff1960135416601355620121dd6014546200e958565b80620121e65750565b601f8111600114620121f957505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106201226157505060145f525f602081208160145555565b5f815560010162012247565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110620122a65750620121c1565b5f815560010162012297565b91905f5b6101008110620122ca57505090505f905f90565b8060ff0360ff81116200ea8e576004850154600190911b906001600160a01b03165f5160206201b1205f395f51905f523b1562001117576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206201b1205f395f51905f525af180156200e4bb5762012388575b506201235e84620116be565b816201237d575b506201237457600101620122b6565b92505060019190565b905015155f62012365565b5f62012394916200e74e565b5f62012352565b91905f5b6101008110620123b357505090505f905f90565b60048401546001821b906001600160a01b03165f5160206201b1205f395f51905f523b1562001117576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206201b1205f395f51905f525af180156200e4bb576201245a575b506201243984620116be565b816201244f575b5062012374576001016201239f565b905015155f62012440565b5f62012466916200e74e565b5f6201242d565b5f80916020815191016a636f6e736f6c652e6c6f675afa5056fe610100346101b757601f6150b538819003918201601f19168301916001600160401b038311848410176101bb578084926080946040528339810103126101b75780516001600160a01b03811691908290036101b757610060602082016101cf565b6100786060610071604085016101cf565b93016101cf565b6080939093526001600160a01b031660a05260e05260c052604051614ed190816101e48239608051818181609a01528181610810015281816122cb01528181612ba00152818161327f0152818161394b0152613dc8015260a0518181816109ba01528181610b1701528181610b9201528181610e5301528181610f2e015281816110030152818161113d015281816112f201528181611656015281816118a70152818161197b01528181611dd801528181611eea0152613ebb015260c05181818161095501528181610c6601528181610ded0152818161107801528181611599015281816115ca015281816116bf015281816116f701528181611c3001528181611c6401528181613fc101528181613ff7015261432e015260e051818181610bc601528181610fa901528181611109015281816112bf01526115f90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101b75756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146104c45750806348bd7dfd146104175780638307c655146103b1578063a9270fbe14610356578063aad6e488146101b75763ecbbc0331461006a575f61000f565b346101b35760203660031901126101b35760405163ca4f280360e01b81526004803560601c908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101a8575f91610186575b508051906100f86100e283610604565b926100f060405194856105e3565b808452610604565b602083019190601f19013683375f5b8151811015610138576001906001600160a01b03610125828561065c565b5116610131828761065c565b5201610107565b505090604051918291602083019060208452518091526040830191905f5b818110610164575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610156565b6101a291503d805f833e61019a81836105e3565b8101906107bb565b5f6100d2565b6040513d5f823e3d90fd5b5f80fd5b346101b35760803660031901126101b3576004356101d3610518565b906101dc61052e565b91606435916001600160401b0383116101b357366023840112156101b35782600401359261020984610604565b9361021760405195866105e3565b8085526024602086019160051b830101913683116101b357602401905b8282106103465750505082519361024a85610604565b9461025860405196876105e3565b808652610267601f1991610604565b015f5b8181106103235750505f5b84518110156102d2578061028b6001928761065c565b51610294610670565b506102a181858888613d9d565b90604051916102af8361057e565b825260208201526102c0828961065c565b526102cb818861065c565b5001610275565b856040518091602082016020835281518091526020604084019201905f5b8181106102fe575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102f0565b6020906040516103328161057e565b5f81525f8382015282828a0101520161026a565b8135815260209182019101610234565b346101b35761036d61036736610544565b916122ab565b6040518091602082016020835281518091526020604084019201905f5b818110610398575050500390f35b825184528594506020938401939092019160010161038a565b346101b35760a03660031901126101b3576103ca610518565b6103d261052e565b6064359160028310156101b3576080926103f292608435926004356106a9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101b35761042536610544565b5050506040516104366080826105e3565b60038152602081016060368237600161044e8361061b565b52600261045a8361063c565b5260086104668361064c565b52604051906020820192602083525180935260408201905f935b80851061048d5783830384f35b9091825190600a8210156104b05760208160019382935201930194019390610480565b634e487b7160e01b5f52602160045260245ffd5b346101b35760403660031901126101b357631d04569d60e21b815260206004820181905260248201527f42616c616e636572563353776170416461707465722e676574506f6f6c4964736044820152606490fd5b602435906001600160a01b03821682036101b357565b604435906001600160a01b03821682036101b357565b60609060031901126101b357600435906024356001600160a01b03811681036101b357906044356001600160a01b03811681036101b35790565b604081019081106001600160401b0382111761059957604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761059957604052565b608081019081106001600160401b0382111761059957604052565b90601f801991011681019081106001600160401b0382111761059957604052565b6001600160401b0381116105995760051b60200190565b8051156106285760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156106285760400190565b8051600210156106285760600190565b80518210156106285760209160051b010190565b6040519061067d8261057e565b5f6020838281520152565b9190820391821161069557565b634e487b7160e01b5f52601160045260245ffd5b919493929094604051956106bc876105ad565b5f87525f602088015260408701966040516106d68161057e565b5f81525f602082015288528097861561072957505061070693926106fd9286925a956107ed565b85525a90610688565b60208401528251906040519161071b8361057e565b825260208201526040830152565b9550959650505050506040519061073f8261057e565b5f8252600160208301525290565b9080601f830112156101b35781519061076582610604565b9261077360405194856105e3565b82845260208085019360051b8201019182116101b357602001915b81831061079b5750505090565b82516001600160a01b03811681036101b35781526020928301920161078e565b906020828203126101b35781516001600160401b0381116101b3576107e0920161074d565b90565b600211156104b057565b60405163ca4f280360e01b8152606082901c600482015291945f949385846024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101a8575f9461228f575b506001600160a01b038716968715958615959091905f9081898961227e575b1561220a575050506001805b8180612203575b156110bf5750505060019061088e816107e3565b03610d95576001600160a01b03168015928515610d21578647955b8781610d1a575b6108b8613777565b506108c1613777565b506108ca613699565b50479015610cad575b604051936108e0856105ad565b60601c84528460208501528260408501526108f9613737565b936109038561061b565b5261090d8461061b565b506040519361091b856105c8565b8b85526020850152604084015284606084015261093661379b565b926109408461061b565b5261094a8361061b565b50858815610b7c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109868461061b565b51525b8715610aed576109b5928891610ae5575b604051634758db2f60e11b815293849283926004840161303b565b0381887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610ab5575b50935b15610aa9575090808080610a1d94335af1610a176130b9565b506130f7565b61061b565b5193849215610a92575082610a3981938293610688565b335af1610a446130b9565b5015610a4d5790565b60405162461bcd60e51b815260206004820152601960248201527f4661696c656420746f207472616e7366657220455448283229000000000000006044820152606490fd5b916107e09350610aa191610688565b90339061468c565b610a1d9250339061468c565b610ad191503d8086833e610ac981836105e3565b810190612e51565b9150505f6109fb565b6040513d89823e3d90fd5b86915061099a565b610b12928291610ae557604051634758db2f60e11b815293849283926004840161303b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610ada5791610a2294939188938491610b5f575b50936109fe565b610b7391503d8086833e610ac981836105e3565b9150505f610b58565b909150610c64575b610b908630338c614648565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc4818b614419565b7f0000000000000000000000000000000000000000000000000000000000000000610bef818c614419565b6001600160a01b0316803b15610c6057610c23918a918c836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991610c3c575b5090610989565b81610c46916105e3565b610c5157875f610c35565b8780fd5b6040513d8b823e3d90fd5b8980fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166020610ca581610c9d8661061b565b51015161061b565b510152610b84565b506040516370a0823160e01b81523360048201529091506020816024818d5afa908115610c5557908992918391610ce5575b506108d3565b9250506020823d602011610d12575b81610d01602093836105e3565b810103126101b3578891515f610cdf565b3d9150610cf4565b50856108b0565b6040516370a0823160e01b81523360048201526020816024818c5afa908115610d8a579088918291610d55575b50956108a9565b9150506020813d602011610d82575b81610d71602093836105e3565b810103126101b3578790515f610d4e565b3d9150610d64565b6040513d8a823e3d90fd5b9596956001600160a01b031680159594909392610dc2908290849087908c90886110b7575b60601c614aaf565b505097610dcd61379b565b98610dd78a61061b565b52610de18961061b565b50868215610f965750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1e8961061b565b51525b8015610eff5790610e4f978593610ef7575b60405180998194829363286f580d60e01b8452600484016131c6565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610ecf575b50925b15610eb85750808080610a1d93610ea88661061b565b51335af1610a176130b9565b5190565b610a1d9150610ec68361061b565b5190339061468c565b610ee391503d8085833e610ac981836105e3565b9150505f610e8f565b6040513d84823e3d90fd5b869250610e33565b50508290610f29968291610f8e575b60405163286f580d60e01b81529788928392600484016131c6565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610eec57610eb494958391610f71575b5092610e92565b610f8591503d8085833e610ac981836105e3565b9150505f610f6a565b859150610f0e565b611076575b610fa783303384614648565b7f0000000000000000000000000000000000000000000000000000000000000000610fd384828461458c565b6001600160a01b031690813b15611072576040516387517c4560e01b8152918791839190829084908290611035907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060048401612dc8565b03925af180156110675790869161104e575b5050610e21565b81611058916105e3565b61106357845f611047565b8480fd5b6040513d88823e3d90fd5b8680fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660206110af81610c9d8d61061b565b510152610f9b565b8b9450610dba565b819a98939695949a9792971590816121fa575b5015611564575050506110e98260601c8886613251565b95919390946110f7816107e3565b611272576111078330338a614648565b7f000000000000000000000000000000000000000000000000000000000000000061113384828a61458c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811698911690813b15610c60578861118d928b92836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c555791899796959493918b9361124d575b50916111bd9593916111ed9997959360601c614c68565b90604051916111cd6020846105e3565b8383528360405180968195829463286f580d60e01b845260048401613194565b03925af1918215611241579161120f91836107e09492611223575b505061061b565b5191829033906001600160a01b031661468c565b61123792503d8091833e610ac981836105e3565b9150505f80611208565b604051903d90823e3d90fd5b61126091935097809294959697986105e3565b610c515787959493929189915f6111a6565b929094879492989697506112846136b7565b92604051966370a0823160e01b88523360048901526020886024818d5afa978815610ada578798611530575b506112bd8830338d614648565b7f00000000000000000000000000000000000000000000000000000000000000006112e8818c614419565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116959116803b1561152c578886611341928e836040518096819582946387517c4560e01b845260048401612dc8565b03925af18015610c5557908991611517575b505060038110156115035791879594939160018d94145f146114a25750906113b5838361145599611388836113d19897614816565b9150506113948a61061b565b5261139e8961061b565b506001600160a01b0385811692169060601c6149e1565b9150506113c18661063c565b526113cb8561063c565b506146c8565b9150506113dd8361064c565b526113e78261064c565b506113f061379b565b91604051906113fe826105c8565b898252602082015286604082015289606082015261141b8361061b565b526114258261061b565b50604051916114356020846105e3565b83835283604051809681958294634758db2f60e11b845260048401612fc1565b03925af19182156112415761147f6107e0969593611498959383611493949261122357505061061b565b5196879333906001600160a01b031661468c565b610688565b9033903090614648565b9683926114b56114e2956114559a6146c8565b9150506114c18861061b565b526114cb8761061b565b506001600160a01b0390811692169060601c6149e1565b9150506114ee8361063c565b526114f88261063c565b506113d18988614816565b634e487b7160e01b88526021600452602488fd5b81611521916105e3565b610c5157875f611353565b8880fd5b9097506020813d60201161155c575b8161154c602093836105e3565b810103126101b35751965f6112b0565b3d915061153f565b89975061157f9060019a888760609a98999596979a1c612b73565b99909161158b816107e3565b14908694845f146121f457507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389166121ed577f0000000000000000000000000000000000000000000000000000000000000000935b8381156121e057612171575b7f000000000000000000000000000000000000000000000000000000000000000061162c83826001600160a01b038b1661458c565b6001600160a01b0316803b156101b3576040516387517c4560e01b8152905f9082908183816116887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f60048401612dc8565b03925af180156101a85761215c575b505b83611c0957611bee575b506060998a956001600160a01b0381161591908215611be857507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0381169c8d15918215611be257507f0000000000000000000000000000000000000000000000000000000000000000945b6005811015611bce57918d93918360018e95145f14611aad5750505050505061173f6136f7565b6040516338d52e0f60e01b81529097906020816004816001600160a01b0388165afa908115611aa257918a93918d9695938791611a4a575b506117af94939261179d92909185916001600160a01b03918216918b169060601c614aaf565b9150506117a98a61061b565b52614816565b9150506117bb8761063c565b525b156119fa57506117cb61379b565b6040516370a0823160e01b815230600482015290916001600160a01b031690602081602481855afa908115610c55579089959493929186916119bd575b5061183e939495966040519261181d846105c8565b8352602083015260408201528660608201526118388261061b565b5261061b565b505b15611944576118a3926118836040519261185b6020856105e3565b84845260405163286f580d60e01b81526080600482015295869485938493608485019061313c565b5f1960248501526001604485015283810360031901606485015290612f9d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575b5061061b565b519283916001600160a01b031615611908576107e09250339061468c565b50908080806107e094335af1610a176130b9565b61193091503d8086833e610ac981836105e3565b9150505f6118e4565b6040513d85823e3d90fd5b6119769250604051906119586020836105e3565b82825260405163286f580d60e01b8152938492839260048401613194565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561193957906118ea91849161191c575061061b565b93949550506020833d6020116119f2575b816119db602093836105e3565b810103126101b3579151889493929061183e611808565b3d91506119ce565b939250611a0561379b565b9260405191611a13836105c8565b6001600160a01b0316825260208201526040810185905260016060820152611a3a8361061b565b52611a448261061b565b50611840565b92945050919394506020813d602011611a9a575b81611a6b602093836105e3565b81010312611a96579261179d6117af938b80948f9897611a8a90612b13565b92949596509250611777565b8b80fd5b3d9150611a5e565b6040513d8e823e3d90fd5b859897939596949650600281145f14611b13575050505090611aef8392611b0194611ad66136f7565b9b6001600160a01b0385811691908b169060601c614aaf565b915050611afb8a61061b565b52614908565b915050611b0d8761063c565b526117bd565b929b9195949350909160038103611b6357505090611b01939291611b356136f7565b9a611b408484614816565b915050611b4c8d61061b565b526001600160a01b0390811692169060601c614aaf565b6004919b9594935014611b7a575b505050506117bd565b611bb8939950611b886136f7565b99611b938389614908565b915050611b9f8c61061b565b526001600160a01b03908116919088169060601c614aaf565b915050611bc48761063c565b525f808881611b71565b634e487b7160e01b8e52602160045260248efd5b94611718565b946116e0565b611c039030336001600160a01b038916614648565b5f6116a3565b9794918897919496999a9b935047986120db575b6060936001600160a01b038b166120d4577f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0389161580156120cd577f0000000000000000000000000000000000000000000000000000000000000000935b60058110156120b857918f91838f959360018d96145f14611fcf5750505050505050611caf6136f7565b6040516338d52e0f60e01b815290926020826004816001600160a01b0387165afa918215611fc257908c8f928a94611f72575b50611d169492611d0a926001600160a01b0392831615928692811691908b169060601c614aaf565b9150506117a98561061b565b915050611d228261063c565b525b611d2c61379b565b6040516370a0823160e01b815230600482015290936001600160a01b031691602082602481865afa918215611f6757908d95949392918692611f30575b5060405192611d77846105c8565b835260208301526040820152856060820152611d928361061b565b52611d9c8261061b565b5015611eb357611dd49260405191611db56020846105e3565b838352604051809581948293634758db2f60e11b845260048401612fc1565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b519788976001600160a01b031615611e865750611e459133906001600160a01b031661468c565b15611e6957506107e092611e5891610688565b9033906001600160a01b031661468c565b80809350611e7b6107e0958294610688565b335af1610a176130b9565b611e9a925080808093335af1610a176130b9565b611e45565b61193091503d8088833e610ac981836105e3565b611ee5925060405190611ec76020836105e3565b828252604051634758db2f60e11b8152938492839260048401612fc1565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610d8a578894939291611e1e918691611e9f575061061b565b955090506020853d602011611f5f575b81611f4d602093836105e3565b810103126101b3578c9451905f611d69565b3d9150611f40565b6040513d8f823e3d90fd5b92505091506020813d602011611fba575b81611f90602093836105e3565b81010312611fb65791611d0a8c898094611fac611d1697612b13565b9496509250611ce2565b8d80fd5b3d9150611f83565b8e604051903d90823e3d90fd5b95969495939492936002820361203057505050505061201261201e939483611ff56136f7565b966001600160a01b039081161592858216918b169060601c614aaf565b915050611afb8561061b565b91505061202a8261063c565b52611d24565b9397929650909493926003820361206857505061201e9495506120516136f7565b9561205c8484614816565b915050611b4c8861061b565b6004929350501461207d575b50505050611d24565b6120a293945061208b6136f7565b946120968389614908565b915050611b9f8761061b565b9150506120ae8261063c565b525f808681612074565b50634e487b7160e01b8f52602160045260248ffd5b8993611c85565b8a94611c51565b6040516370a0823160e01b81523360048201526001600160a01b038b1699506020816024818d5afa8015611f675786908e90612126575b61212192509a30903390614648565b611c1d565b50506020813d602011612154575b81612141602093836105e3565b810103126101b357856121219151612112565b3d9150612134565b612169919b505f906105e3565b5f995f611697565b6040516370a0823160e01b81523360048201529091506020816024816001600160a01b038b165afa9081156101a8575f916121ae575b50906115f7565b90506020813d6020116121d8575b816121c9602093836105e3565b810103126101b357515f6121a7565b3d91506121bc565b1561169957479150611699565b88936115eb565b946115ba565b9050155f6110d2565b508061087a565b5f9b9a9794929b999693919895995b895181101561226c576001600160a01b03612234828c61065c565b51168c810361224b57509050600180915b01612219565b6001600160a01b038c1614612263575b600190612245565b60019c5061225b565b50919396999a90929598949750610873565b506001600160a01b03861615610867565b6122a49194503d805f833e61019a81836105e3565b925f610848565b60405163ca4f280360e01b8152606082811c6004830181905295949391927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290915f85602481875afa9485156101a8575f95612af7575b506001600160a01b038216945f908187158015612ae6575b15612a76575050506001805b8180612a6f575b156124725750505050505f604051956123516060886105e3565b6002875260403660208901376024604051809481936333f0703b60e11b835260048301525afa9283156101a8575f915f94612449575b506001600160a01b0316915f5b825181101561244257816001600160a01b036123b0838661065c565b511614612411575b836001600160a01b036123cb838661065c565b5116146123db575b600101612394565b6123e5818661065c565b519060038202918083046003149015171561069557600a600192046124098961063c565b5290506123d3565b61241b818661065c565b5160038102908082046003149015171561069557600a900461243c8861061b565b526123b8565b5050505050565b90935061246891503d805f833e61246081836105e3565b8101906137e8565b509390505f612387565b8196949695929395159081612a66575b50156124a5575050505061249b6107e094958483613251565b949192909361390d565b889550865f9893956124b99395989a612b73565b969094604051946124ca81876105e3565b60028652601f19013660208701376024604051809581936333f0703b60e11b835260048301525afa9586156101a8575f925f97612a41575b505f9460058110156104b0576001810361268e575093966001600160a01b031693505f5b825181101561261b576001600160a01b03612541828561065c565b51168681146125ea575b6040516338d52e0f60e01b81526020816004818a5afa9081156101a8575f916125b1575b506001600160a01b031614612587575b600101612526565b9650612593878761065c565b5160038102908082046003149015171561069557600a90049661257f565b90506020813d82116125e2575b816125cb602093836105e3565b810103126101b3576125dc90612b13565b5f61256f565b3d91506125be565b6125f4828961065c565b5160038102908082046003149015171561069557600a90046126158661061b565b5261254b565b509591945050602091925060246040518094819363ef8b30f760e01b835260048301525afa9081156101a8575f9161265c575b506126588261063c565b5290565b90506020813d602011612686575b81612677602093836105e3565b810103126101b357515f61264e565b3d915061266a565b9397949695949093600281036127875750505f5b825181101561273f576001600160a01b036126bd828561065c565b51168581036126fd57506126d1818761065c565b519060038202918083046003149015171561069557600a600192046126f58a61061b565b525b016126a2565b6001600160a01b03851614612715575b6001906126f7565b9550612721868661065c565b5160038102908082046003149015171561069557600a90049561270d565b5060405163266d6a8360e11b81526004810196909652959493506020925083916024915082906001600160a01b03165afa9081156101a8575f9161265c57506126588261063c565b93965090939092600381036128ab575092946001600160a01b03928316935091909116905f5b815181101561244257836001600160a01b036127c9838561065c565b5116848114612817575b146127e1575b6001016127ad565b6127eb818661065c565b519060038202918083046003149015171561069557600a6001920461280f8961063c565b5290506127d9565b9050612823828761065c565b51906003820291808304600314901517156106955760405163266d6a8360e11b8152600a9092046004830152602082602481885afa80156101a85786925f91612877575b506128718a61061b565b526127d3565b9250506020823d82116128a3575b81612892602093836105e3565b810103126101b3578591515f612867565b3d9150612885565b600491959394979650146128c1575b5050505090565b9294939290916001600160a01b0316905f5b8151811015612a31576001600160a01b036128ee828461065c565b5116838114612a00575b6040516338d52e0f60e01b81526020816004818c5afa9081156101a8575f916129c7575b506001600160a01b031614612934575b6001016128d3565b61293e818561065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818b5afa80156101a8575f90612995575b6001925061298d8761061b565b52905061292c565b506020823d82116129bf575b816129ae602093836105e3565b810103126101b35760019151612980565b3d91506129a1565b90506020813d82116129f8575b816129e1602093836105e3565b810103126101b3576129f290612b13565b5f61291c565b3d91506129d4565b612a0a828661065c565b5160038102908082046003149015171561069557600a9004612a2b8761063c565b526128f8565b505050509091505f8080806128ba565b909650612a599192503d805f833e61246081836105e3565b509291905091955f612502565b9050155f612482565b5080612337565b5f99959391969492999897985b8751811015612ad6576001600160a01b03612a9e828a61065c565b51168a8103612ab557509050600180915b01612a83565b6001600160a01b038a1614612acd575b600190612aaf565b60019a50612ac5565b5091939550919397969596612330565b506001600160a01b03891615612324565b612b0c9195503d805f833e61019a81836105e3565b935f61230c565b51906001600160a01b03821682036101b357565b15612b2e57565b60405162461bcd60e51b815260206004820152601760248201527f546f6b656e206e6f7420666f756e6420696e20706f6f6c0000000000000000006044820152606490fd5b60405163ca4f280360e01b81526001600160a01b0391821660048201525f949092918590849060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9283156101a8575f93612dac575b5015612cc15750612be082614320565b15612bed5750506001915b565b5f5b8151811015612cb9576001600160a01b03612c0a828461065c565b5116612c1581614320565b80612c47575b612c285750600101612bef565b93505050505b612c426001600160a01b0382161515612b27565b600291565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612c80575b506001600160a01b03858116911614612c1b565b90506020813d8211612cb1575b81612c9a602093836105e3565b810103126101b357612cab90612b13565b5f612c6c565b3d9150612c8d565b505050612c2e565b9150612ccc82614320565b15612cd8575050600491565b5f5b8151811015612da4576001600160a01b03612cf5828461065c565b5116612d0081614320565b80612d32575b612d135750600101612cda565b93505050505b612d2d6001600160a01b0382161515612b27565b600391565b506040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91612d6b575b506001600160a01b03858116911614612d06565b90506020813d8211612d9c575b81612d85602093836105e3565b810103126101b357612d9690612b13565b5f612d57565b3d9150612d78565b505050612d19565b612dc19193503d805f833e61019a81836105e3565b915f612bd0565b6001600160a01b0391821681529181166020830152604082015265ffffffffffff606082015260800190565b9080601f830112156101b3578151612e0b81610604565b92612e1960405194856105e3565b81845260208085019260051b8201019283116101b357602001905b828210612e415750505090565b8151815260209182019101612e34565b916060838303126101b35782516001600160401b0381116101b35782612e78918501612df4565b9260208101516001600160401b0381116101b357810183601f820112156101b357805190612ea582610604565b91612eb360405193846105e3565b80835260208084019160051b830101918683116101b357602001905b828210612ef7575050509260408201516001600160401b0381116101b3576107e09201612df4565b60208091612f0484612b13565b815201910190612ecf565b90608081019160018060a01b038151168252602081015192608060208401528351809152602060a084019401905f5b818110612f5e575050506060816040829301516040850152015191015290565b825180516001600160a01b0390811688526020828101519091168189015260409182015115159188019190915260609096019590920191600101612f3e565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9291608084019360808152825180955260a0810194602060a08260051b8401019401905f5b818110613010575050506107e09394505f1960208201525f60408201526060818403910152612f9d565b90919460208061302c600193609f19888203018c528951612f0f565b97019801910196919096612fe6565b9291926080810160808252825180915260a0820190602060a08260051b8501019401915f905b82821061308e57505050506107e092935f1960208301521515604082015260608183039101526060612f9d565b909192946020806130ab600193609f198982030186528951612f0f565b970192019201909291613061565b3d156130f2573d906001600160401b03821161059957604051916130e7601f8201601f1916602001846105e3565b82523d5f602084013e565b606090565b156130fe57565b60405162461bcd60e51b815260206004820152601660248201527508cc2d2d8cac840e8de40e8e4c2dce6cccae4408aa8960531b6044820152606490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061316757505050505090565b9091929394602080613185600193601f198682030187528951612f0f565b97019301930191939290613158565b90916131ab6107e09360808452608084019061313c565b915f1960208201525f60408201526060818403910152612f9d565b6131dc6107e0939260808352608083019061313c565b5f1960208301529115156040820152808203606091820152612f9d565b1561320057565b60405162461bcd60e51b8152602060048201526024808201527f435553544f4d5f5752415028343632362d34363236293a20496e76616c696420604482015263141bdbdb60e21b6064820152608490fd5b60405163ca4f280360e01b81526001600160a01b039384166004820152925f929183918290869060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f9561367d575b506132b981614320565b8061366e575b1561346c576040516338d52e0f60e01b81529190602090839060049082906001600160a01b03165afa9182156101a8575f9261342b575b506040516338d52e0f60e01b815292602090849060049082906001600160a01b03165afa9283156101a8575f936133ef575b505f5b85518110156133e5576001600160a01b03613346828861065c565b51166001600160a01b0383161515806133d3575b61339a576001600160a01b0384168114613392575b6001600160a01b0385168114613389575b5060010161332b565b94506001613380565b91508161336f565b5050935050505b6001600160a01b0382161515806133c1575b6133bc906131f9565b600292565b506001600160a01b03811615156133b3565b506001600160a01b038616151561335a565b50935050506133a1565b9092506020813d602011613423575b8161340b602093836105e3565b810103126101b35761341c90612b13565b915f613328565b3d91506133fe565b9291506020833d602011613464575b81613447602093836105e3565b810103126101b357602061345c600494612b13565b9293506132f6565b3d915061343a565b91949061347883614320565b158061365e575b15613619575f5b855181101561360e576001600160a01b036134a1828861065c565b51166134ac81614320565b6134ba575b50600101613486565b6001600160a01b0383161515806135fc575b6135c2576040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613589575b506001600160a01b03868116911614613581575b6040516338d52e0f60e01b8152602081600481855afa9081156101a8575f91613548575b506001600160a01b038981169116036134b157945060016134b1565b90506020813d8211613579575b81613562602093836105e3565b810103126101b35761357390612b13565b5f61352c565b3d9150613555565b915081613508565b90506020813d82116135ba575b816135a3602093836105e3565b810103126101b3576135b490612b13565b5f6134f4565b3d9150613596565b505093509350505b6001600160a01b0382161515806135ea575b6135e5906131f9565b600192565b506001600160a01b03811615156135dc565b506001600160a01b03861615156134cc565b5093509350506135ca565b60405162461bcd60e51b815260206004820152601b60248201527f435553544f4d5f575241503a20496e76616c696420746f6b656e7300000000006044820152606490fd5b5061366886614320565b1561347f565b5061367883614320565b6132bf565b6136929195503d805f833e61019a81836105e3565b935f6132af565b604051906136a6826105ad565b5f6040838281528260208201520152565b604051608091906136c883826105e3565b6003815291601f1901825f5b8281106136e057505050565b6020906136eb613699565b828285010152016136d4565b6040516060919061370883826105e3565b6002815291601f1901825f5b82811061372057505050565b60209061372b613699565b82828501015201613714565b6040805190919061374883826105e3565b6001815291601f1901825f5b82811061376057505050565b60209061376b613699565b82828501015201613754565b60405190613784826105c8565b5f6060838281528160208201528260408201520152565b604080519091906137ac83826105e3565b6001815291601f1901825f5b8281106137c457505050565b6020906137cf613777565b828285010152016137b8565b519081151582036101b357565b906080828203126101b35781516001600160401b0381116101b3578161380f91840161074d565b9260208301516001600160401b0381116101b357830182601f820112156101b357805161383b81610604565b9161384960405193846105e3565b818352602060608185019302820101908582116101b357602001915b8183106138ad575050509260408101516001600160401b0381116101b3578361388f918301612df4565b9260608201516001600160401b0381116101b3576107e09201612df4565b6060838703126101b357604051906138c4826105ad565b835160028110156101b35782526020840151906001600160a01b03821682036101b357826020928360609501526138fd604087016137db565b6040820152815201920191613865565b959460405161391d6060826105e3565b6002815260403660208301376040516333f0703b60e11b815260609890981c60048901529485905f896024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9586156101a8575f995f97613d78575b5060038110156104b057600114613bf55750506040516338d52e0f60e01b81526001600160a01b0392909216969190506020816004818a5afa9081156101a8575f91613bbb575b506040516338d52e0f60e01b81526001600160a01b039384169791909316926020816004818b5afa9081156101a8575f91613b81575b506001600160a01b0316925f5b8351811015613b7657816001600160a01b03613a2b838761065c565b511614613ae9575b846001600160a01b03613a46838761065c565b511614613a56575b600101613a0f565b613a60818761065c565b51906003820291808304600314901517156106955760405163ef8b30f760e01b8152600a90920460048301526020826024818d5afa80156101a8575f90613ab7575b60019250613aaf8961063c565b529050613a4e565b506020823d8211613ae1575b81613ad0602093836105e3565b810103126101b35760019151613aa2565b3d9150613ac3565b613af3818761065c565b516003810290808204600314901517156106955760405163ef8b30f760e01b8152600a9091046004820152602081602481875afa9081156101a8575f91613b45575b50613b3f8861061b565b52613a33565b90506020813d8211613b6e575b81613b5f602093836105e3565b810103126101b357515f613b35565b3d9150613b52565b509496505050505050565b90506020813d602011613bb3575b81613b9c602093836105e3565b810103126101b357613bad90612b13565b5f613a02565b3d9150613b8f565b90506020813d602011613bed575b81613bd6602093836105e3565b810103126101b357613be790612b13565b5f6139cc565b3d9150613bc9565b935094509590505f5b8151811015613d6f576001600160a01b03613c19828461065c565b516001600160a01b038516929116828103613cc25750613c39818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613c90575b60019250613c888761061b565b525b01613bfe565b506020823d8211613cba575b81613ca9602093836105e3565b810103126101b35760019151613c7b565b3d9150613c9c565b6001600160a01b03891692508214613cde575b60019150613c8a565b613ce8818661065c565b5160038102908082046003149015171561069557600a6024602092604051958693849263266d6a8360e11b84520460048301525afa80156101a8575f90613d3d575b60019250613d378761063c565b52613cd5565b506020823d8211613d67575b81613d56602093836105e3565b810103126101b35760019151613d2a565b3d9150613d49565b50929450505050565b909650613d909199503d805f833e61246081836105e3565b509991905098955f613985565b909392935f9160601c6040519363ca4f280360e01b85528160048601525f8560248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9485156101a8575f95614304575b506001600160a01b038316801580159690959194905f9081888a6142f3575b15614283575050506001805b818061427c575b15613f1857509798613eb698505f97613e9d97613e5b97909692956001600160a01b031694509250613f0f57614aaf565b5050613e6561379b565b90613e6f8261061b565b52613e798161061b565b506040516338ed77fd60e21b8152606060048201529384928392606484019061313c565b3060248401528281036003190160448401526060612f9d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101a857610eb4915f91613efb575061061b565b61193091503d805f833e610ac981836105e3565b82159450614aaf565b9195508092999496939750159081614273575b5015613f83575050613eb69495509181613f5693613f4c83875f9896613251565b9591939094614c68565b60405190613f656020836105e3565b8282526040516338ed77fd60e21b8152938492839260048401614d9f565b613f9290868587989497612b73565b909160058310156104b05782613fab5750505050505050565b909192939495969750606094865f1461426d57507f0000000000000000000000000000000000000000000000000000000000000000945b6001600160a01b0382161591821561426757507f0000000000000000000000000000000000000000000000000000000000000000935b60018103614152575050505061402c6136f7565b6040516338d52e0f60e01b8152959094906020876004816001600160a01b0387165afa9687156101a8575f976140f9575b50613eb6965f96959493614096938593919261408a9285916001600160a01b0390811691908a1690614aaf565b9150506117a98761061b565b9150506140a28461063c565b525b6140ac61379b565b92604051926140ba846105c8565b6001600160a01b0316835260208301526040820152600160608201526140df8261061b565b526140e98161061b565b5060405190613f656020836105e3565b909594939296506020813d60201161414a575b81614119602093836105e3565b810103126101b357613eb69661408a61409693855f996141398296612b13565b9b509450509350509293949561405d565b3d915061410c565b91613eb698969594915f9893600281148a146141b257505050506141a09161419484928361417e6136f7565b986001600160a01b0385811691908a1690614aaf565b915050611afb8761061b565b9150506141ac8461063c565b526140a4565b92979194935090916003811489146142005750506141a0929184916141d56136f7565b976141e08484614816565b9150506141ec8a61061b565b526001600160a01b03908116921690614aaf565b6004919794935014614215575b5050506140a4565b61425292955083906142256136f7565b966142308388614908565b91505061423c8961061b565b526001600160a01b039081169190871690614aaf565b91505061425e8461063c565b525f808061420d565b93614018565b94613fe2565b9050155f613f2b565b5080613e2a565b5f9a9693919799959894929a5b88518110156142e3576001600160a01b036142ab828b61065c565b51168b81036142c257509050600180915b01614290565b6001600160a01b038b16146142da575b6001906142bc565b60019b506142d2565b5091939794989650919498613e23565b506001600160a01b03861615613e17565b6143199195503d805f833e61019a81836105e3565b935f613df8565b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168114614414576040516338d52e0f60e01b8152602081600481855afa90816143dd575b5061437b57505f90565b602060249160405192838092636c82bbbf60e11b82523360048301525afa90816143ae575b506143a9575f90565b600190565b6020813d6020116143d5575b816143c7602093836105e3565b810103126101b357516143a0565b3d91506143ba565b6020813d60201161440c575b816143f6602093836105e3565b810103126101b35761440790612b13565b614371565b3d91506143e9565b505f90565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529391929190821690602084604481855afa9384156101a8575f94614558575b505f1984018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481015b03601f1981018852876105e3565b85519082855af1906144be6130b9565b8261451e575b5081614513575b50156144d657505050565b61450e612beb936040519063095ea7b360e01b602083015260248201525f6044820152604481526145086064826105e3565b82614dca565b614dca565b90503b15155f6144cb565b80519192508115918215614536575b5050905f6144c4565b81925090602091810103126101b357602061455191016137db565b5f8061452d565b9093506020813d602011614584575b81614574602093836105e3565b810103126101b35751925f61445d565b3d9150614567565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156101a8575f95614614575b5084018094116106955760405163095ea7b360e01b602082019081526001600160a01b03909216602482015260448101949094525f9081906144ae86606481016144a0565b9094506020813d602011614640575b81614630602093836105e3565b810103126101b35751935f6145cf565b3d9150614623565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152612beb9161450e6084836105e3565b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152612beb9161450e6064836105e3565b91906146d2613777565b926146db613777565b506146e4613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916147dc575b5060405192906001600160a01b031661472e846105ad565b82845260208401526001604084015282614746613737565b906147508261061b565b5261475a8161061b565b506040516370a0823160e01b815230600482015290602082602481875afa9182156101a8575f926147a8575b5060405193614794856105c8565b845260208401526040830152606082015291565b9091506020813d6020116147d4575b816147c4602093836105e3565b810103126101b35751905f614786565b3d91506147b7565b90506020813d60201161480e575b816147f7602093836105e3565b810103126101b35761480890612b13565b5f614716565b3d91506147ea565b9061481f613777565b50614828613777565b91614831613699565b506040516001600160a01b03919091169161484b826105ad565b828252826020830152600160408301528192614865613737565b9261486f8461061b565b526148798361061b565b506020600491604051928380926338d52e0f60e01b82525afa9081156101a8575f916148ce575b5060405192906001600160a01b03166148b8846105c8565b8352602083015260408201526001606082015292565b90506020813d602011614900575b816148e9602093836105e3565b810103126101b3576148fa90612b13565b5f6148a0565b3d91506148dc565b90614911613777565b5061491a613777565b91614923613699565b506040516338d52e0f60e01b81526001600160a01b039190911690602081600481855afa9081156101a8575f916149a7575b5060405192906001600160a01b031661496d846105ad565b82845260208401526001604084015282614985613737565b9061498f8261061b565b526149998161061b565b50604051926148b8846105c8565b90506020813d6020116149d9575b816149c2602093836105e3565b810103126101b3576149d390612b13565b5f614955565b3d91506149b5565b919093926149ed613777565b946149f6613777565b506149ff613699565b506040516370a0823160e01b81523360048201526001600160a01b039190911692602082602481875afa9182156101a8575f92614a7b575b5060405194614a45866105ad565b6001600160a01b0390811686521660208501525f604085015283614a67613737565b90614a718261061b565b526147868161061b565b9091506020813d602011614aa7575b81614a97602093836105e3565b810103126101b35751905f614a37565b3d9150614a8a565b929091614aba613777565b50614ac3613777565b94614acc613699565b5015614b43575b60405193614ae0856105ad565b6001600160a01b0390811685521660208401525f604084015282614b02613737565b90614b0c8261061b565b52614b168161061b565b5060405192614b24846105c8565b6001600160a01b03168352602083015260408201526001606082015292565b6040516370a0823160e01b81523360048201526020816024816001600160a01b0388165afa9081156101a8575f91614b7d575b5050614ad3565b90506020813d602011614ba7575b81614b98602093836105e3565b810103126101b357515f614b76565b3d9150614b8b565b919092614bba613777565b50614bc3613777565b93614bcc613699565b506040516370a0823160e01b81523360048201526001600160a01b03919091169290602081602481875afa9081156101a8575f91614c36575b505060405193614c14856105ad565b6001600160a01b0390811685521660208401525f604084015282614985613737565b90506020813d602011614c60575b81614c51602093836105e3565b810103126101b357515f614c05565b3d9150614c44565b9695909492939196614c786136b7565b9760038410156104b0578593600103614d4457508284614cc992614c9f83614ce598614816565b915050614cab8c61061b565b52614cb58b61061b565b506001600160a01b03858116921690614baf565b915050614cd58861063c565b52614cdf8761063c565b50614908565b915050614cf18561064c565b52614cfb8461064c565b50614d0461379b565b9360405192614d12846105c8565b6001600160a01b031683526020830152604082015260016060820152614d378361061b565b52614d418261061b565b50565b91614ce594614d83928592614d59848b614908565b915050614d658d61061b565b52614d6f8c61061b565b506001600160a01b03908116921690614baf565b915050614d8f8861063c565b52614d998761063c565b50614816565b9091614db66107e09360608452606084019061313c565b915f60208201526040818403910152612f9d565b5f80614df29260018060a01b03169360208151910182865af1614deb6130b9565b9083614e3d565b8051908115159182614e1a575b5050614e085750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101b3576020614e3591016137db565b155f80614dff565b90614e615750805115614e5257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580614e92575b614e72575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614e6a56fea2646970667358221220e323e5fa26c6abf091be22f35678640537c279bbf3c0177d321594dfa3820d9b64736f6c634300081b003360c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a5374616b6564205553444360a81b602084015280519161006f8284610373565b6005835264735553444360d81b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b003360c08060405234610371576020816113ed803803809161001f8285610375565b83398101031261037157516001600160a01b03811681036103715760409081519161004a8184610375565b600c83526b0a6e8c2d6cac8408e9e8aa8960a31b60208401528051916100708284610375565b60068352650e68e9e8aa8960d31b602084015283516001600160401b03811161028257600354600181811c91168015610367575b602082101461026457601f8111610304575b50602094601f82116001146102a1579481929394955f92610296575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028257600454600181811c91168015610278575b602082101461026457601f8111610201575b506020601f821160011461019e57819293945f92610193575b50508160011b915f199060031b1c1916176004555b61015181610398565b901561018b575b60a05260805251610fa2908161044b82396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610158565b015190505f80610133565b601f1982169060045f52805f20915f5b8181106101e9575095836001959697106101d1575b505050811b01600455610148565b01515f1960f88460031b161c191690555f80806101c3565b9192602060018192868b0151815501940192016101ae565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061025a575b601f0160051c01905b81811061024f575061011a565b5f8155600101610242565b9091508190610239565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b601f1982169560035f52805f20915f5b8881106102ec575083600195969798106102d4575b505050811b016003556100e7565b01515f1960f88460031b161c191690555f80806102c6565b919260206001819286850151815501940192016102b1565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035d575b601f0160051c01905b81811061035257506100b6565b5f8155600101610345565b909150819061033c565b90607f16906100a4565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028257604052565b5f8091604051602081019063313ce56760e01b8252600481526103bc602482610375565b51916001600160a01b03165afa3d15610442573d906001600160401b03821161028257604051916103f7601f8201601f191660200184610375565b82523d5f602084013e5b80610436575b610413575b505f905f90565b602081805181010312610371576020015160ff811161040c579060ff6001921690565b50602081511015610407565b60609061040156fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220f270e5db4714581ca643030a27a939347bb30d1896f3ece686528fa2decf041d64736f6c634300081b003360c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a0a6e8c2d6cac8408aa890f60ab1b602084015280519161006f8284610373565b60058352640e68aa890f60db1b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220b086c5fd69f84195c720e651bd0c3fdfe94026eb8e5f77216c898ab4d4455cb664736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000440017a1b021006d556d7fc06a54c32e42eb745b4ab7ab316d43345009b2140e0580b072eec7df16000000000000000000000000000000000000000000000000775f661b0bd1739349b9a2a3ef60be277c5d2d29c4ce391d82d164c166df9c8336ddf84206b2f812000000000000000000000000000000000000000000000000a35b1b31ce002fbf2058d22f30f95d405200a15b0000000000000000000000000fe906e030a44ef24ca8c7dc7b7c53a6c4f00ce9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000bfc9d54fc184518a81162f8fb99c2eaca081202f91c11ba4220b7a72e1dc5e92f2b48d3fdf6272600000000000000000000000073746453746f726167652066696e642853746453746f72616765293a20506163a264697066735822122042e76fa1080ae84cb7f9f10596b258c5e516e57219c6f06fae0ff1080187545064736f6c634300081b0033","sourceMap":"632:46320:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;632:46320:68;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;42771:14;1669:42;42821:13;1747:42;42951:7;1049:42;632:46320;;-1:-1:-1;;;42951:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;42951:39;;;632:46320;;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;;;;2260:42;;;632:46320;;;;;;;;;;;;;;2260:42;;632:46320;;;42951:39;;;;;;;;43021:9;42951:39;;;;;632:46320;43021:9;;:::i;:::-;632:46320;43011:19;;:37;;;632:46320;-1:-1:-1;;;;;;;;;;;43001:48:68;;;;632:46320;;-1:-1:-1;;;43001:48:68;;632:46320;;;;43001:48;;632:46320;43001:48;632:46320;43001:48;632:46320;-1:-1:-1;;;;;;;;;;;43001:48:68;;;;;;;;;;;632:46320;2260:42;;;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;43113:20;;;:::i;:::-;2260:42;43113:20;;:::i;:::-;42951:7;1049:42;632:46320;;-1:-1:-1;;;43200:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;43200:44;;632:46320;43001:48;632:46320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;43200:44;;;;;;;;;;;;;;;632:46320;43260:13;;43294:3;632:46320;;43275:17;;;;;43322:9;43313:32;43322:9;632:46320;43322:9;;;:::i;:::-;;632:46320;43313:32;:::i;:::-;43359:34;632:46320;43368:9;;;;:::i;:::-;;:21;632:46320;43359:34;:::i;:::-;632:46320;43260:13;;43275:17;;632:46320;;43200:44;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;632:46320;;1590:14:0;;-1:-1:-1;632:46320:68;1590:14:0;;;;632:46320:68;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;43001:48;;;;;:::i;:::-;632:46320;;43001:48;;;;632:46320;;;;43001:48;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;43001:48:68;632:46320;;;43011:37;43034:14;43044:4;43034:14;;43011:37;;42951:39;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;36981:7;1049:42;632:46320;;-1:-1:-1;;;36981:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;36981:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;2064:42;2260;;;632:46320;;;;;;;;36981:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;36981:39;;;;;;;;;;;632:46320;37056:25;37112:9;37056:25;;:::i;:::-;37112:9;;:::i;:::-;632:46320;37102:19;;-1:-1:-1;;;;;;;;;;;37092:30:68;;;;632:46320;;1590:14:0;;;;37092:30:68;;632:46320;37092:30;;632:46320;37092:30;;2260:42;37092:30;-1:-1:-1;;;;;;;;;;;37092:30:68;;;;;;;;;;;632:46320;37132:35;;-1:-1:-1;;;;;;;;;;;37132:35:68;;;;632:46320;;-1:-1:-1;;;37132:35:68;;37142:24;;;632:46320;37132:35;;632:46320;37132:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;37132:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;37231:20;;;:::i;:::-;2260:42;37231:20;;:::i;:::-;36981:7;1049:42;632:46320;;-1:-1:-1;;;37318:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;37318:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;2064:42;2260;632:46320;;;;36981:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;37318:44;;;;;;;;;;;;;;;632:46320;37378:13;;37412:3;632:46320;;37393:17;;;;;37440:9;37431:32;37440:9;632:46320;37440:9;;;:::i;37431:32::-;37477:34;632:46320;37486:9;;;;:::i;37477:34::-;632:46320;37378:13;;37318:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;37132:35;;;;;:::i;:::-;632:46320;;37132:35;;;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;37132:35:68;632:46320;;;37092:30;;;;;:::i;:::-;632:46320;;37092:30;;;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;36981:39:68;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;;;;;;;;;;;;2421:18:5;632:46320:68;;;;;;;2421:18:5;632:46320:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43594:14;1669:42;43644:13;1747:42;43774:7;1049:42;632:46320;;-1:-1:-1;;;43774:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;43774:39;;632:46320;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;;;;2260:42;;;632:46320;;;;;;;;;;;;;;2260:42;;632:46320;;;43774:39;;;;;;;;;;;632:46320;-1:-1:-1;43840:38:68;;;;43848:13;43840:38;;43889:315;;;43942:9;;;:::i;:::-;632:46320;43924:27;;:53;;;43889:315;-1:-1:-1;;;;;;;;;;;43914:64:68;;;;632:46320;;-1:-1:-1;;;43914:64:68;;632:46320;;;;43914:64;;632:46320;43914:64;632:46320;43914:64;632:46320;-1:-1:-1;;;;;;;;;;;43914:64:68;;;;;;;;43889:315;632:46320;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;44013:4:68;43914:64;27501:38:3;;632:46320:68;43914:64;27501:38:3;;;;;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;:::-;632:46320:68;;;;27568:30:3;;;;;;:::i;:::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;43949:1;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;44013:4;;;;632:46320;;;;;;;;;3663:17;;;632:46320;;;;;;;;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;27501:38:3;;15735:37:8;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;;;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;43889:315:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;;;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;632:46320:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;;;;;;;15943:15:8;43949:1:68;15943:15:8;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;43889:315:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;43889:315:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;43889:315:68;16720:176:8;;;14785:4;;;;;;:::i;:::-;632:46320:68;;;;27501:38:3;;;1590:14:0;;;;27501:38:3;;44235:4:68;27501:38:3;;;632:46320:68;27501:38:3;;;;;;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;27501:38:3;632:46320:68;;;;;;27501:38:3;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;27501:38:3;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;43889:315:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;27501:38:3;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;27501:38:3;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;27501:38:3;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;43889:315:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;27501:38:3;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;43889:315:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;43889:315:68;16678:31:8;;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;43889:315:68;16720:176:8;;;;14785:4;;;;;;:::i;:::-;632:46320:68;;-1:-1:-1;;;44269:58:68;;44235:4;632:46320;44269:58;;632:46320;-1:-1:-1;;27501:38:3;1442:42:68;;632:46320;27501:38:3;632:46320:68;27501:38:3;632:46320:68;44269:58;;;;;;;;;;43889:315;-1:-1:-1;43774:7:68;1049:42;632:46320;;-1:-1:-1;;;44337:61:68;;-1:-1:-1;;;;;632:46320:68;;;;44337:61;;632:46320;-1:-1:-1;;27501:38:3;1442:42:68;;632:46320;27501:38:3;632:46320:68;27501:38:3;632:46320:68;44337:61;;;;;;;;;;43889:315;-1:-1:-1;632:46320:68;;-1:-1:-1;;;44424:41:68;;44235:4;632:46320;44424:41;;632:46320;;27501:38:3;632:46320:68;27501:38:3;632:46320:68;44424:41;;;;;;;;;;;;43889:315;-1:-1:-1;632:46320:68;;-1:-1:-1;;;44490:41:68;;44235:4;632:46320;44490:41;;632:46320;;27501:38:3;632:46320:68;27501:38:3;632:46320:68;1590:14:0;44490:41:68;;;;;;;;;;;43889:315;-1:-1:-1;43774:7:68;1049:42;632:46320;;-1:-1:-1;;;44575:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;44575:57;;632:46320;27501:38:3;2260:42:68;;632:46320;;;27501:38:3;2260:42:68;;632:46320;;;;;-1:-1:-1;;;;;632:46320:68;7009:9:8;2260:42:68;;;;;;44575:57;2260:42;;;;;;;;;;;;;632:46320;44575:57;;;;;;;;;;;43889:315;-1:-1:-1;7505:10:8;44647:21:68;7505:10:8;;27501:38:3;;632:46320:68;;;1590:14:0;;;;;;;44743:41:68;;44235:4;632:46320;44743:41;;632:46320;44743:41;;;;;;;;;;;44643:609;44743:48;27501:38:3;44743:48:68;;27501:38:3;44743:48:68;;;;;:::i;:::-;;;:::i;:::-;632:46320;;;;1590:14:0;;;;;;;44892:41:68;;44235:4;632:46320;44892:41;;632:46320;44892:41;;;;;;;;;;;44643:609;44885:48;;;;;;:::i;:::-;632:46320;;44892:41;;;27501:38:3;44892:41:68;;27501:38:3;44892:41:68;;;;;;1590:14:0;44892:41:68;;;:::i;:::-;;;1590:14:0;;;;;44885:48:68;44892:41;;1590:14:0;-1:-1:-1;632:46320:68;;44892:41;;;-1:-1:-1;44892:41:68;;44743;;;;;27501:38:3;44743:41:68;;27501:38:3;44743:41:68;;;;;;1590:14:0;44743:41:68;;;:::i;:::-;;;1590:14:0;;;;;;44743:41:68;;1590:14:0;27501:38:3;44743:41:68;;;;;-1:-1:-1;44743:41:68;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;44643:609:68;632:46320;;27501:38:3;;632:46320:68;;;;1590:14:0;;;;;;;45044:41:68;;44235:4;632:46320;45044:41;;632:46320;45044:41;;;;;;;;;;;44643:609;45037:48;27501:38:3;45037:48:68;;27501:38:3;45037:48:68;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;;;;;45179:41:68;;44235:4;632:46320;45179:41;;632:46320;45179:41;;;;;;;;;;;44643:609;45179:48;;;;;;:::i;:41::-;;;27501:38:3;45179:41:68;;27501:38:3;45179:41:68;;;;;;1590:14:0;45179:41:68;;;:::i;:::-;;;1590:14:0;;;;;45179:48:68;:41;;;;;-1:-1:-1;45179:41:68;;45044;;;;27501:38:3;45044:41:68;;27501:38:3;45044:41:68;;;;;;1590:14:0;45044:41:68;;;:::i;:::-;;;1590:14:0;;;;;;45044:41:68;;27501:38:3;45044:41:68;;;;;-1:-1:-1;45044:41:68;;44575:57;7505:10:8;44575:57:68;;;;;2260:42;44575:57;2260:42;44575:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;2260:42:68;-1:-1:-1;;;2260:42:68;;;632:46320;2260:42;27501:38:3;632:46320:68;2260:42;44490:41;;;;27501:38:3;44490:41:68;;27501:38:3;44490:41:68;;;;;;1590:14:0;44490:41:68;;;:::i;:::-;;;1590:14:0;;;;;44490:41:68;;;;;;;-1:-1:-1;44490:41:68;;44424;;;;27501:38:3;44424:41:68;;27501:38:3;44424:41:68;;;;;;1590:14:0;44424:41:68;;;:::i;:::-;;;1590:14:0;;;;;44424:41:68;;;;;;;-1:-1:-1;44424:41:68;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;44337:61:68;;;27501:38:3;44337:61:68;27501:38:3;44337:61:68;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;44269:58;;;27501:38:3;44269:58:68;27501:38:3;44269:58:68;;;;;;;:::i;:::-;;;16720:176:8;632:46320:68;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;632:46320:68;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;632:46320:68;;;;16769:41:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;16769:41;;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;632:46320:68;;-1:-1:-1;;;16824:61:8;;27501:38:3;632:46320:68;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;632:46320:68;12810:59:8;27501:38:3;632:46320:68;;12810:59:8;-1:-1:-1;;;12810:59:8;;;;16824:61;;;16769:41;;;;;;:::i;:::-;632:46320:68;;16769:41:8;;;16724:29;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;;632:46320:68;;;16424:32:8;;;;;27501:38:3;16424:32:8;;27501:38:3;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;27501:38:3;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;;27501:38:3;16314:19:8;16170:185;16314:19;;12810:59;16314:19;;;;15938:460;632:46320:68;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;632:46320:68;;-1:-1:-1;;;12810:59:8;;27501:38:3;632:46320:68;12810:59:8;;632:46320:68;;;;;;27501:38:3;632:46320:68;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;632:46320:68;;1590:14:0;;;;;;;;632:46320:68;-1:-1:-1;;;523:5:65;;6854:12:8;632:46320:68;523:5:65;27501:38:3;632:46320:68;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;27501:38:3;632:46320:68;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3663:17:68;16724:29:8;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;632:46320:68;16424:32:8;;632:46320:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;43949:1:68;632:46320;;;;16314:19:8;;632:46320:68;16314:19:8;632:46320:68;43914:64;632:46320;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;632:46320:68;16314:19:8;;16170:185;16314:19;632:46320:68;16314:19:8;;;;15938:460;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;632:46320:68;;-1:-1:-1;;;12810:59:8;;632:46320:68;;12810:59:8;;632:46320:68;;;;43914:64;632:46320;;;;:::i;16314:19:8:-;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320:68;-1:-1:-1;;;523:5:65;;6854:12:8;632:46320:68;523:5:65;43914:64:68;632:46320;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;43914:64:68;;;;;:::i;:::-;632:46320;;43914:64;;;;632:46320;;;;43924:53;43955:22;43973:4;43955:22;;43924:53;;43889:315;44097:9;;;:::i;:::-;632:46320;44079:27;;:53;;;43889:315;-1:-1:-1;;;;;;;;;;;44069:64:68;;;;632:46320;;-1:-1:-1;;;44069:64:68;;632:46320;;;;44069:64;;632:46320;44069:64;632:46320;44069:64;632:46320;-1:-1:-1;;;;;;;;;;;44069:64:68;;;;;;;;43889:315;632:46320;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;44168:4:68;44069:64;27501:38:3;;632:46320:68;44069:64;27501:38:3;;;;;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;;;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;43889:315:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;;;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;632:46320:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;;;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;43889:315:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;43889:315:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;43889:315:68;16720:176:8;;;14785:4;;;;;;:::i;:::-;43889:315:68;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3663:17:68;16724:29:8;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;632:46320:68;16424:32:8;;632:46320:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;44069:64:68;;;;;:::i;:::-;632:46320;;44069:64;;;;44079:53;44110:22;44128:4;44110:22;;44079:53;;43840:38;;;;;43774:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;3657:11:28;632:46320:68;;;3657:27:28;632:46320:68;;;;;;-1:-1:-1;632:46320:68;;;;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;;;;;;;2393:30;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;:::i;:::-;14180:38;;;14188:13;14180:38;14333:7;1049:42;632:46320;;-1:-1:-1;;;14333:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;14333:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;14333:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;14333:39;;;;;;;;;;;14180:38;2260:42;;;;;;;14387:21;14395:13;14387:21;;14383:353;;;14387:21;;;14469:9;;;:::i;:::-;632:46320;14451:27;;:94;;;14383:353;-1:-1:-1;;;;;;;;;;;14424:135:68;;;;632:46320;;-1:-1:-1;;;14424:135:68;;632:46320;;;;14424:135;;632:46320;14424:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;14424:135:68;;;;;;;;14383:353;;;;632:46320;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;14767:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;;;14395:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;14383:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;14395:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;14383:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;14383:353:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;14383:353:68;16720:176:8;;;14785:4;;;;;:::i;:::-;14333:7:68;1049:42;632:46320;;-1:-1:-1;;;14802:59:68;;-1:-1:-1;;;;;632:46320:68;;;;14802:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;14802:59;-1:-1:-1;;;;;;;;;;;14802:59:68;;;;;;;;14383:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;14887:39:68;;14767:4;632:46320;14887:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;14887:39:68;;;;;;;;;;;14383:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;14951:39:68;;14767:4;632:46320;14951:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;14951:39:68;;;;;;;;;;;14383:353;2260:42;;632:46320;;;15054:28;632:46320;;;;;;:::i;:::-;14395:13;2260:42;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;;;15054:28;:::i;:::-;2260:42;14333:7;1049:42;632:46320;;-1:-1:-1;;;15125:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;15125:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;14333:39;2260:42;;;;;;;;;632:46320;;;;;;;15125:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;15125:57;;;;;;;;;;;14383:353;-1:-1:-1;15197:21:68;;;632:46320;;-1:-1:-1;;;15277:39:68;;14767:4;632:46320;15277:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;15277:39:68;;;;;;;;;;;15193:569;15277:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;15424:39:68;;14767:4;632:46320;15424:39;;632:46320;2260:42;15424:39;2260:42;15424:39;-1:-1:-1;;;;;;;;;;;15424:39:68;;;;;;;;;;;;15417:46;;;;;;:::i;15424:39::-;632:46320;1590:14:0;632:46320:68;;1590:14:0;;;;15277:39:68;;;2260:42;15277:39;;2260:42;15277:39;;;;;;1590:14:0;15277:39:68;;;:::i;:::-;;;1590:14:0;;;;;15277:46:68;:39;;;;;-1:-1:-1;15277:39:68;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;15193:569:68;632:46320;;-1:-1:-1;;;15558:39:68;;14767:4;632:46320;15558:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;15558:39:68;;;;;;;;;;;15193:569;15551:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;15691:39:68;;14767:4;632:46320;15691:39;;632:46320;2260:42;15691:39;2260:42;15691:39;-1:-1:-1;;;;;;;;;;;15691:39:68;;;;;;;;;;;;:46;;;;;;:::i;15558:39::-;;;2260:42;15558:39;;2260:42;15558:39;;;;;;1590:14:0;15558:39:68;;;:::i;:::-;;;1590:14:0;;;;;15551:46:68;15558:39;;;;;-1:-1:-1;15558:39:68;;15125:57;;;;;2260:42;15125:57;2260:42;15125:57;;;;;;;:::i;:::-;;;;;14951:39;;;;;2260:42;14951:39;;2260:42;14951:39;;;;;;1590:14:0;14951:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;14951:39:68;;;;;;;-1:-1:-1;14951:39:68;;14887;;;;;2260:42;14887:39;;2260:42;14887:39;;;;;;1590:14:0;14887:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;14887:39:68;;;;;;;-1:-1:-1;14887:39:68;;14802:59;;;2260:42;14802:59;2260:42;14802:59;;;;;;;:::i;:::-;;;16720:176:8;632:46320:68;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;632:46320:68;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;632:46320:68;;;;16769:41:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3663:17:68;16724:29:8;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;;632:46320:68;;;16424:32:8;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;15698:126::-;13208:33;;:::i;:::-;;15698:126;;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;2260:42;632:46320;;14424:135;;;;;:::i;:::-;632:46320;;14424:135;;;;14451:94;-1:-1:-1;;632:46320:68;;-1:-1:-1;;;46578:23:68;;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;;;;;14451:94;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;14451:94;46778:2;46767:13;;46763:94;;14451;632:46320;;;;;;;;;;14502:43;;14451:94;;632:46320;-1:-1:-1;;;523:5:65;;;632:46320:68;523:5:65;2260:42:68;632:46320;523:5:65;46763:94:68;-1:-1:-1;;2260:42:68;;;-1:-1:-1;2260:42:68;;;;46763:94;;;46676:78;3663:17;-1:-1:-1;;2260:42:68;;;;;;;46676:78;;;2260:42;-1:-1:-1;;;523:5:65;;;632:46320:68;523:5:65;2260:42:68;632:46320;523:5:65;46578:23:68;;2260:42;46578:23;;2260:42;46578:23;;;;;;2260:42;46578:23;;;:::i;:::-;;;632:46320;;;;;;;;;;;;;46578:23;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;1590:14:0;632:46320:68;;1590:14:0;;;;14383:353:68;14635:9;;;:::i;:::-;632:46320;14617:27;;:94;;;14383:353;-1:-1:-1;;;;;;;;;;;14590:135:68;;;;632:46320;;-1:-1:-1;;;14590:135:68;;632:46320;;;;14590:135;;632:46320;14590:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;14590:135:68;;;;;;;;14383:353;;;;;14590:135;;;;;:::i;:::-;632:46320;;14590:135;;;;14617:94;14686:25;;;:::i;:::-;14668:43;;14617:94;;2260:42;-1:-1:-1;;;2260:42:68;;;632:46320;2260:42;;632:46320;2260:42;14333:39;;;;;;;;;;;;;:::i;:::-;;;;14180:38;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;39729:13;1442:42;39905:7;1049:42;632:46320;;-1:-1:-1;;;39905:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;39905:39;;632:46320;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;;39905:39;;632:46320;;;39905:39;;;;;;;;;;;632:46320;;40076:9;40005:41;632:46320;;40005:41;:::i;40076:9::-;632:46320;40066:19;;-1:-1:-1;;;;;;;;;;;40056:30:68;;;;632:46320;;1590:14:0;;;;40056:30:68;;632:46320;40056:30;;632:46320;40056:30;;2260:42;40056:30;-1:-1:-1;;;;;;;;;;;40056:30:68;;;;;;;;;;;632:46320;2260:42;;;632:46320;;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;40150:20;;;:::i;:::-;2260:42;40150:20;;:::i;:::-;39905:7;1049:42;632:46320;;-1:-1:-1;;;40237:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;40237:44;;632:46320;2260:42;632:46320;;;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;39905:39;632:46320;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;40237:44;;;;;;;;;;;;;;;632:46320;40297:13;;40331:3;632:46320;;40312:17;;;;;40359:9;40350:32;40359:9;632:46320;40359:9;;;:::i;40350:32::-;40396:34;632:46320;40405:9;;;;:::i;40396:34::-;632:46320;40297:13;;40237:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;40056:30;;;;;:::i;:::-;632:46320;;40056:30;;;;39905:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;;:::i;:::-;11388:38;;;11396:13;11388:38;11542:7;1049:42;632:46320;;-1:-1:-1;;;11542:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;11542:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;11542:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;11542:39;;;;;;;;;;;11388:38;2260:42;;;;;;;11596:21;11604:13;11596:21;;11592:353;;;11596:21;;;11678:9;;;:::i;:::-;632:46320;11660:27;;:94;;;11592:353;-1:-1:-1;;;;;;;;;;;11633:135:68;;;;632:46320;;-1:-1:-1;;;11633:135:68;;632:46320;;;;11633:135;;632:46320;11633:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;11633:135:68;;;;;;;;11592:353;;;;632:46320;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;11976:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;7009:9:8;632:46320:68;;-1:-1:-1;;632:46320:68;27524:10:3;632:46320:68;;;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;;;11604:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;11592:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;11604:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;11592:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;11592:353:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;11592:353:68;16720:176:8;;;14785:4;;;;;:::i;:::-;11542:7:68;1049:42;632:46320;;-1:-1:-1;;;12011:61:68;;-1:-1:-1;;;;;632:46320:68;;;;12011:61;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;12011:61;-1:-1:-1;;;;;;;;;;;12011:61:68;;;;;;;;11592:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;12098:41:68;;11976:4;632:46320;12098:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;12098:41:68;;;;;;;;;;;11592:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;12164:39:68;;11976:4;632:46320;12164:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;12164:39:68;;;;;;;;;;;11592:353;2260:42;;632:46320;;;12267:28;632:46320;;;;;;:::i;12267:28::-;2260:42;11542:7;1049:42;632:46320;;-1:-1:-1;;;12338:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;12338:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;11542:39;2260:42;;;;;;;;;632:46320;;;;;;;12338:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;12338:57;;;;;;;;;;;11592:353;-1:-1:-1;12410:21:68;;;632:46320;;-1:-1:-1;;;12490:39:68;;11976:4;632:46320;12490:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;12490:39:68;;;;;;;;;;;12406:589;12490:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;12637:41:68;;11976:4;632:46320;12637:41;;632:46320;2260:42;12637:41;2260:42;12637:41;-1:-1:-1;;;;;;;;;;;12637:41:68;;;;;;;;;;;;12630:48;;;;;;:::i;12490:39::-;;;2260:42;12490:39;;2260:42;12490:39;;;;;;1590:14:0;12490:39:68;;;:::i;:::-;;;1590:14:0;;;;;12490:46:68;:39;;;;;-1:-1:-1;12490:39:68;;12406:589;632:46320;;-1:-1:-1;;;12789:41:68;;11976:4;632:46320;12789:41;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;12789:41:68;;;;;;;;;;;12406:589;12782:48;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;12924:39:68;;11976:4;632:46320;12924:39;;632:46320;2260:42;12924:39;2260:42;12924:39;-1:-1:-1;;;;;;;;;;;12924:39:68;;;;;;;;;;;;:46;;;;;;:::i;12789:41::-;;;2260:42;12789:41;;2260:42;12789:41;;;;;;1590:14:0;12789:41:68;;;:::i;:::-;;;1590:14:0;;;;;12782:48:68;12789:41;;;;;-1:-1:-1;12789:41:68;;12338:57;;;;;2260:42;12338:57;2260:42;12338:57;;;;;;;:::i;:::-;;;;;12164:39;;;;;2260:42;12164:39;;2260:42;12164:39;;;;;;1590:14:0;12164:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;12164:39:68;;;;;;;-1:-1:-1;12164:39:68;;12098:41;;;;;2260:42;12098:41;;2260:42;12098:41;;;;;;1590:14:0;12098:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;12098:41:68;;;;;;;-1:-1:-1;12098:41:68;;12011:61;;;2260:42;12011:61;2260:42;12011:61;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3663:17:68;16724:29:8;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;11633:135:68;;;;;:::i;:::-;632:46320;;11633:135;;;;11660:94;11729:25;;;:::i;:::-;11711:43;;11660:94;;11592:353;11844:9;;;:::i;:::-;632:46320;11826:27;;:94;;;11592:353;-1:-1:-1;;;;;;;;;;;11799:135:68;;;;632:46320;;-1:-1:-1;;;11799:135:68;;632:46320;;;;11799:135;;632:46320;11799:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;11799:135:68;;;;;;;;11592:353;;;;;11799:135;;;;;:::i;:::-;632:46320;;11799:135;;;;11826:94;11895:25;;;:::i;:::-;11877:43;;11826:94;;11542:39;;;;;;;;;;;;;:::i;:::-;;;;11388:38;;;;632:46320;;;;;35030:39;632:46320;;;;:::i;:::-;34876:38;;;34884:13;34876:38;35030:7;1049:42;632:46320;;-1:-1:-1;;;35030:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;35030:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;35030:39;;;;;;;;;;;34876:38;2260:42;;;;;;;35092:13;35084:21;;;;;;;35166:9;;;:::i;:::-;632:46320;35148:27;;:94;;;35080:353;-1:-1:-1;;;;;;;;;;;35121:135:68;;;;632:46320;;-1:-1:-1;;;35121:135:68;;632:46320;;;;35121:135;;632:46320;35121:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;35121:135:68;;;;;;;;;;;35080:353;;;;632:46320;;-1:-1:-1;;;35471:28:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;35471:28:68;;;;;;;;;;;35080:353;523:5:65;;35092:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;35464:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;35092:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;35080:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;35092:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;35080:353:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;35080:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;35080:353:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;35080:353:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;35030:7:68;1049:42;632:46320;;-1:-1:-1;;;35514:59:68;;-1:-1:-1;;;;;632:46320:68;;;;35514:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;35514:59;-1:-1:-1;;;;;;;;;;;35514:59:68;;;;;;;;35080:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;35599:39:68;;35464:4;632:46320;35599:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;35599:39:68;;;;;;;;;;;35080:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;35663:39:68;;35464:4;632:46320;35663:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;35663:39:68;;;;;;;;;;;35080:353;2260:42;;632:46320;;;35766:28;632:46320;;;;;;:::i;35766:28::-;2260:42;35030:7;1049:42;632:46320;;-1:-1:-1;;;35837:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;35837:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;35030:39;2260:42;;;;;;;;;632:46320;;;;;;;35837:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;35837:57;;;;;;;;;;;35080:353;-1:-1:-1;35909:21:68;;;632:46320;;-1:-1:-1;;;35989:39:68;;35464:4;632:46320;35989:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;35989:39:68;;;;;;;;;;;35905:569;35989:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;36136:39:68;;35464:4;632:46320;36136:39;;632:46320;2260:42;36136:39;2260:42;36136:39;-1:-1:-1;;;;;;;;;;;36136:39:68;;;;;;;;;;;;36129:46;;;;;;:::i;35989:39::-;;;2260:42;35989:39;;2260:42;35989:39;;;;;;1590:14:0;35989:39:68;;;:::i;:::-;;;1590:14:0;;;;;35989:46:68;:39;;;;;-1:-1:-1;35989:39:68;;35905:569;632:46320;;-1:-1:-1;;;36270:39:68;;35464:4;632:46320;36270:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;36270:39:68;;;;;;;;;;;36263:46;;;;;;:::i;35837:57::-;;;;;2260:42;35837:57;2260:42;35837:57;;;;;;;:::i;:::-;;;;;35663:39;;;;;2260:42;35663:39;;2260:42;35663:39;;;;;;1590:14:0;35663:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;35663:39:68;;;;;;;-1:-1:-1;35663:39:68;;35599;;;;;2260:42;35599:39;;2260:42;35599:39;;;;;;1590:14:0;35599:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;35599:39:68;;;;;;;-1:-1:-1;35599:39:68;;35514:59;;;2260:42;35514:59;2260:42;35514:59;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;;632:46320:68;;;16424:32:8;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;632:46320:68;;1590:14:0;632:46320:68;;1590:14:0;;;;15938:460:8;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;35092:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2260:42:68;16314:19:8;16170:185;16314:19;;;;;15938:460;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;12810:59;632:46320:68;;-1:-1:-1;;;12810:59:8;;2260:42:68;632:46320;12810:59:8;;632:46320:68;;;2260:42;632:46320;;;;:::i;16314:19:8:-;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;632:46320:68;;1590:14:0;632:46320:68;;1590:14:0;;;;632:46320:68;-1:-1:-1;;;523:5:65;;6854:12:8;632:46320:68;523:5:65;2260:42:68;632:46320;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;523:5:65;-1:-1:-1;;;523:5:65;;;632:46320:68;523:5:65;2260:42:68;632:46320;523:5:65;35471:28:68;;;;2260:42;35471:28;;2260:42;35471:28;;;;;;1590:14:0;35471:28:68;;;:::i;:::-;;;1590:14:0;;;;;35471:28:68;;;;;;;-1:-1:-1;35471:28:68;;35121:135;;;;;:::i;:::-;632:46320;;35121:135;;;;35148:94;35217:25;;;:::i;:::-;35199:43;;35148:94;;35080:353;35332:9;;;:::i;:::-;632:46320;35314:27;;:94;;;35080:353;-1:-1:-1;;;;;;;;;;;35287:135:68;;;;632:46320;;-1:-1:-1;;;35287:135:68;;632:46320;;;;35287:135;;632:46320;35287:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;35287:135:68;;;;;;;;;;;35080:353;;;;;35287:135;;;;;:::i;:::-;632:46320;;35287:135;;;;35314:94;35383:25;;;:::i;:::-;35365:43;;35314:94;;2260:42;-1:-1:-1;;;2260:42:68;;;632:46320;2260:42;;632:46320;2260:42;35030:39;;;;;;;;;;;;;;:::i;:::-;;;;;34876:38;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1126:10:65;;;;;;:::i;:::-;632:46320:68;;;1590:14:0;;;;1102:59:65;;632:46320:68;1102:59:65;;632:46320:68;2260:42;632:46320;2260:42;;632:46320;2260:42;;;;632:46320;1102:59:65;;;;;;;;;;;;;;1075:134;1102:59;;;;;632:46320:68;1075:134:65;;:::i;:::-;1074:135;1224:13;;1259:3;632:46320:68;;1239:18:65;;;;;1322:10;;;;:::i;:::-;632:46320:68;;;1590:14:0;;;;1304:29:65;;632:46320:68;1304:29:65;;632:46320:68;1304:29:65;;632:46320:68;1304:29:65;;;;;;;;;;;;;;;;;1259:3;-1:-1:-1;1442:1:65;;632:46320:68;1708:14:65;;1396:17;632:46320:68;-1:-1:-1;;;;;1354:9:65;632:46320:68;1354:9:65;:::i;:::-;632:46320:68;;1396:17:65;:::i;:::-;1477;632:46320:68;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;632:46320:68;;;;;;1566:9:65;;;:::i;:::-;632:46320:68;;;;;;;1577:9:65;;;:::i;:::-;632:46320:68;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;632:46320:68;;;;;;;1686:9:65;;;:::i;:::-;632:46320:68;;;1697:9:65;632:46320:68;;;;;1697:9:65;;:::i;:::-;632:46320:68;;1708:14:65;;;:::i;:::-;632:46320:68;1224:13:65;;1304:29;;;;;;;;;;;;;:::i;:::-;;;632:46320:68;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1304:29:65;;;1442:1;1304:29;;632:46320:68;;;;;;;;;;-1:-1:-1;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1239:18:65;;632:46320:68;;1102:59:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;28255:7;1049:42;632:46320;;-1:-1:-1;;;28255:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;28255:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;28255:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;28255:39;;;;;;;;;;;632:46320;28330:25;28386:9;28330:25;;:::i;28386:9::-;632:46320;28376:19;;-1:-1:-1;;;;;;;;;;;28366:30:68;;;;632:46320;;1590:14:0;;;;28366:30:68;;632:46320;28366:30;;632:46320;28366:30;;2260:42;28366:30;-1:-1:-1;;;;;;;;;;;28366:30:68;;;;;;;;;;;632:46320;28406:35;;-1:-1:-1;;;;;;;;;;;28406:35:68;;;;632:46320;;-1:-1:-1;;;28406:35:68;;28416:24;;;632:46320;28406:35;;632:46320;28406:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;28406:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;28505:20;;;:::i;:::-;2260:42;28505:20;;:::i;:::-;28255:7;1049:42;632:46320;;-1:-1:-1;;;28592:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;28592:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;28255:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;28592:44;;;;;;;;;;;;;;;632:46320;28652:13;;28686:3;632:46320;;28667:17;;;;;28714:9;28705:32;28714:9;632:46320;28714:9;;;:::i;28705:32::-;28751:34;632:46320;28760:9;;;;:::i;28751:34::-;632:46320;28652:13;;28592:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;28406:35;;;;;:::i;:::-;632:46320;;28406:35;;;;28366:30;;;;;:::i;:::-;632:46320;;28366:30;;;;28255:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;25297:7;1049:42;632:46320;;-1:-1:-1;;;25297:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;25297:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;25297:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;25297:39;;;;;;;;;;;632:46320;25372:25;25428:9;25372:25;;:::i;25428:9::-;632:46320;25418:19;;-1:-1:-1;;;;;;;;;;;25408:30:68;;;;632:46320;;1590:14:0;;;;25408:30:68;;632:46320;25408:30;;632:46320;25408:30;;2260:42;25408:30;-1:-1:-1;;;;;;;;;;;25408:30:68;;;;;;;;;;;632:46320;25448:35;;-1:-1:-1;;;;;;;;;;;25448:35:68;;;;632:46320;;-1:-1:-1;;;25448:35:68;;25458:24;;;632:46320;25448:35;;632:46320;25448:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;25448:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;25547:20;;;:::i;:::-;2260:42;25547:20;;:::i;:::-;25297:7;1049:42;632:46320;;-1:-1:-1;;;25634:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;25634:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;25297:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;25634:44;;;;;;;;;;;;;;;632:46320;25694:13;;25728:3;632:46320;;25709:17;;;;;25756:9;25747:32;25756:9;632:46320;25756:9;;;:::i;25747:32::-;25793:34;632:46320;25802:9;;;;:::i;25793:34::-;632:46320;25694:13;;25634:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;25448:35;;;;;:::i;:::-;632:46320;;25448:35;;;;25408:30;;;;;:::i;:::-;632:46320;;25408:30;;;;25297:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;19182:13;1747:42;19350:7;1049:42;632:46320;;-1:-1:-1;;;19350:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;19350:39;;;632:46320;;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;;;19350:39;;632:46320;;;19350:39;;;;;;;;19420:9;19350:39;;;;;19420:9;;:::i;:::-;632:46320;19410:19;;:58;;;632:46320;-1:-1:-1;;;;;;;;;;;19400:69:68;;;;632:46320;;-1:-1:-1;;;19400:69:68;;632:46320;;;;19400:69;;632:46320;19400:69;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;19400:69:68;;;;;;;;;;;632:46320;2260:42;;;632:46320;;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;19533:20;;;:::i;:::-;2260:42;19533:20;;:::i;:::-;19350:7;1049:42;632:46320;;-1:-1:-1;;;19620:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;19620:44;;632:46320;2260:42;632:46320;;;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;19350:39;632:46320;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;19620:44;;;;;;;;;;;;;;;632:46320;19680:13;;19714:3;632:46320;;19695:17;;;;;19742:9;19733:32;19742:9;632:46320;19742:9;;;:::i;19733:32::-;19779:34;632:46320;19788:9;;;;:::i;19779:34::-;632:46320;19680:13;;19620:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;19400:69;;;;;:::i;:::-;632:46320;;19400:69;;;;19410:58;19443:25;;;;:::i;:::-;19433:35;;19410:58;;19350:39;;;;;;;;;;;;;:::i;632:46320::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;632:46320:68;2260:42;;;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;2273:18:5;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;3459:5:28;632:46320:68;;:::i;:::-;;;735:10:34;;3459:5:28;:::i;:::-;632:46320:68;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;;534:59:65;632:46320:68;534:59:65;;;;;;;;:::i;:::-;632:46320:68;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;632:46320:68;;;;;;;;;;;;;;32104:39;632:46320;;;;:::i;:::-;31950:38;;;31958:13;31950:38;32104:7;1049:42;632:46320;;-1:-1:-1;;;32104:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;32104:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;32104:39;;;;;;;;;;;31950:38;2260:42;;;;;;;32166:13;32158:21;;;;;;;32240:9;;;:::i;:::-;632:46320;32222:27;;:94;;;32154:353;-1:-1:-1;;;;;;;;;;;32195:135:68;;;;632:46320;;-1:-1:-1;;;32195:135:68;;632:46320;;;;32195:135;;632:46320;32195:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;32195:135:68;;;;;;;;;;;32154:353;;;;632:46320;;-1:-1:-1;;;32545:28:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;32545:28:68;;;;;;;;;;;32154:353;523:5:65;;32166:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;32538:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;32166:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;32154:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;32166:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;32154:353:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;32154:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;32154:353:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;32154:353:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;32104:7:68;1049:42;632:46320;;-1:-1:-1;;;32588:59:68;;-1:-1:-1;;;;;632:46320:68;;;;32588:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;32588:59;-1:-1:-1;;;;;;;;;;;32588:59:68;;;;;;;;32154:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;32673:39:68;;32538:4;632:46320;32673:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;32673:39:68;;;;;;;;;;;32154:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;32737:39:68;;32538:4;632:46320;32737:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;32737:39:68;;;;;;;;;;;32154:353;2260:42;;632:46320;;;32840:28;632:46320;;;;;;:::i;32840:28::-;2260:42;32104:7;1049:42;632:46320;;-1:-1:-1;;;32911:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;32911:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;32104:39;2260:42;;;;;;;;;632:46320;;;;;;;32911:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;32911:57;;;;;;;;;;;32154:353;-1:-1:-1;32983:21:68;;;632:46320;;-1:-1:-1;;;33063:39:68;;32538:4;632:46320;33063:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;33063:39:68;;;;;;;;;;;32979:569;33063:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;33210:39:68;;32538:4;632:46320;33210:39;;632:46320;2260:42;33210:39;2260:42;33210:39;-1:-1:-1;;;;;;;;;;;33210:39:68;;;;;;;;;;;;33203:46;;;;;;:::i;33063:39::-;;;2260:42;33063:39;;2260:42;33063:39;;;;;;1590:14:0;33063:39:68;;;:::i;:::-;;;1590:14:0;;;;;33063:46:68;:39;;;;;-1:-1:-1;33063:39:68;;32979:569;632:46320;;-1:-1:-1;;;33344:39:68;;32538:4;632:46320;33344:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;33344:39:68;;;;;;;;;;;32979:569;33337:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;33477:39:68;;32538:4;632:46320;33477:39;;632:46320;2260:42;33477:39;2260:42;33477:39;-1:-1:-1;;;;;;;;;;;33477:39:68;;;;;;;;;;;;:46;;;;;;:::i;33344:39::-;;;2260:42;33344:39;;2260:42;33344:39;;;;;;1590:14:0;33344:39:68;;;:::i;:::-;;;1590:14:0;;;;;33337:46:68;33344:39;;;;;-1:-1:-1;33344:39:68;;32911:57;;;;;2260:42;32911:57;2260:42;32911:57;;;;;;;:::i;:::-;;;;;32737:39;;;;;2260:42;32737:39;;2260:42;32737:39;;;;;;1590:14:0;32737:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;32737:39:68;;;;;;;-1:-1:-1;32737:39:68;;32673;;;;;2260:42;32673:39;;2260:42;32673:39;;;;;;1590:14:0;32673:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;32673:39:68;;;;;;;-1:-1:-1;32673:39:68;;32588:59;;;2260:42;32588:59;2260:42;32588:59;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;32166:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2260:42:68;16314:19:8;16170:185;16314:19;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;32545:28:68;;;;2260:42;32545:28;;2260:42;32545:28;;;;;;1590:14:0;32545:28:68;;;:::i;:::-;;;1590:14:0;;;;;32545:28:68;;;;;;;-1:-1:-1;32545:28:68;;32195:135;;;;;:::i;:::-;632:46320;;32195:135;;;;32222:94;32291:25;;;:::i;:::-;32273:43;;32222:94;;32154:353;32406:9;;;:::i;:::-;632:46320;32388:27;;:94;;;32154:353;-1:-1:-1;;;;;;;;;;;32361:135:68;;;;632:46320;;-1:-1:-1;;;32361:135:68;;632:46320;;;;32361:135;;632:46320;32361:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;32361:135:68;;;;;;;;;;;32154:353;;;;;32361:135;;;;;:::i;:::-;632:46320;;32361:135;;;;32388:94;32457:25;;;:::i;:::-;32439:43;;32388:94;;32104:39;;;;;;;;;;;;;;:::i;:::-;;;;;31950:38;;;;632:46320;;;;;17536:39;632:46320;;;;:::i;:::-;;;;17046:222;;;;17105:54;17142:16;17128:12;3033:19:11;17105:54:68;3033:19:11;:::i;:::-;9766:7;632:46320:68;10418:54:11;632:46320:68;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:46320:68;;;;10418:54:11;632:46320:68;;10418:54:11;;;;;;632:46320:68;10418:54:11;;;;;;;:::i;:::-;9766:7;:::i;:::-;17341:13:68;1747:42;-1:-1:-1;;;;;632:46320:68;;17383:38;;;17391:13;17383:38;;17536:7;1049:42;632:46320;;-1:-1:-1;;;17536:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;17536:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;2260:42;;;632:46320;;;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;17536:39;;;;;;;;;;;17383:38;2260:42;;;;;;;17598:13;17590:21;;;;;;;17655:9;;;:::i;:::-;632:46320;17637:27;;-1:-1:-1;;;;;;;;;;;17627:38:68;;;;632:46320;;1590:14:0;;;;17627:38:68;;632:46320;17627:38;;632:46320;17627:38;;2260:42;17627:38;-1:-1:-1;;;;;;;;;;;17627:38:68;;;;;;;;;;;17586:159;;;;632:46320;;-1:-1:-1;;;17783:28:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;17783:28:68;;;;;;;;;;;17586:159;523:5:65;;17598:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;17776:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;17598:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;17586:159:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;17598:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;17586:159:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;17586:159:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;17586:159:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;17586:159:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;17536:7:68;1049:42;632:46320;;-1:-1:-1;;;17826:59:68;;-1:-1:-1;;;;;632:46320:68;;;;17826:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;17826:59;-1:-1:-1;;;;;;;;;;;17826:59:68;;;;;;;;17586:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;17911:39:68;;17776:4;632:46320;17911:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;17911:39:68;;;;;;;;;;;17586:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;17975:41:68;;17776:4;632:46320;17975:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;17975:41;;;;;;;;;;;;17586:159;-1:-1:-1;17536:7:68;1049:42;632:46320;;-1:-1:-1;;;18060:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;18060:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;2260:42;;;632:46320;;;17536:39;2260:42;;;;;;;;;632:46320;;;;;2260:42;;632:46320;;18060:57;;632:46320;;1590:14:0;-1:-1:-1;;;;;632:46320:68;18060:57;;;;;;;;;;;17586:159;-1:-1:-1;18132:21:68;;;2260:42;;632:46320;;;1590:14:0;;;;;;;18228:41:68;;17776:4;632:46320;18228:41;;632:46320;18228:41;;;;;;;;;;;18128:589;18228:48;;;;;;:::i;:::-;632:46320;;;-1:-1:-1;;;18377:39:68;;17776:4;632:46320;18377:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;18377:39:68;;;;;;;;;;;18370:46;;;;;;:::i;18228:41::-;;;2260:42;18228:41;;2260:42;18228:41;;;;;;1590:14:0;18228:41:68;;;:::i;:::-;;;1590:14:0;;;;;18228:48:68;:41;;;;;-1:-1:-1;18228:41:68;;18128:589;632:46320;;;;;;1590:14:0;;;;18511:39:68;;17776:4;632:46320;18511:39;;632:46320;2260:42;18511:39;2260:42;18511:39;-1:-1:-1;;;;;;;;;;;18511:39:68;;;;;;;;;;;18504:46;2260:42;18504:46;;2260:42;18504:46;;;;;:::i;18060:57::-;;;;;2260:42;18060:57;2260:42;18060:57;;;;;;;:::i;:::-;;;;;17975:41;;;;;2260:42;17975:41;;2260:42;17975:41;;;;;;1590:14:0;17975:41:68;;;:::i;:::-;;;1590:14:0;;;;2260:42:68;1590:14:0;;;17975:41:68;;;;;;;-1:-1:-1;17975:41:68;;17911:39;;;;;2260:42;17911:39;;2260:42;17911:39;;;;;;1590:14:0;17911:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;17911:39:68;;;;;;;-1:-1:-1;17911:39:68;;17826:59;;;2260:42;17826:59;2260:42;17826:59;;;;;;;:::i;:::-;;;16720:176:8;632:46320:68;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;632:46320:68;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;632:46320:68;;;;16769:41:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;;632:46320:68;;;16424:32:8;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;632:46320:68;;1590:14:0;632:46320:68;;1590:14:0;;;;15938:460:8;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;17598:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;;;;;15938:460;632:46320:68;;;16170:185:8;;2260:42:68;16170:185:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;632:46320:68;12810:59:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;2260:42:68;12810:59:8;;-1:-1:-1;;;12810:59:8;;632:46320:68;;2260:42;632:46320;;;12810:59:8;;;632:46320:68;;;;12810:59:8;632:46320:68;;;16170:185:8;12810:59;16170:185;27501:38:3;;16170:185:8;;;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;12810:59;632:46320:68;;-1:-1:-1;;;12810:59:8;;2260:42:68;632:46320;12810:59:8;;632:46320:68;;;2260:42;632:46320;;;;:::i;16314:19:8:-;;;;;;;;;;;;;;:::i;:::-;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;17783:28:68;;;;2260:42;17783:28;;2260:42;17783:28;;;;;;1590:14:0;17783:28:68;;;:::i;:::-;;;1590:14:0;;;;;17783:28:68;;;;;;;-1:-1:-1;17783:28:68;;17627:38;;;;;:::i;:::-;632:46320;;17627:38;;;;17586:159;17724:9;;;:::i;:::-;632:46320;17706:27;;-1:-1:-1;;;;;;;;;;;17696:38:68;;;;632:46320;;1590:14:0;;;;17696:38:68;;632:46320;17696:38;;632:46320;17696:38;;2260:42;17696:38;-1:-1:-1;;;;;;;;;;;17696:38:68;;;;;;;;;;;17586:159;;;;;17696:38;;;;;:::i;:::-;632:46320;;17696:38;;;;17536:39;;;;;;;;;;;;;;:::i;:::-;;;;;17383:38;;;;;17046:222;17208:49;;;;:::i;:::-;17046:222;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;31165:7;1049:42;632:46320;;-1:-1:-1;;;31165:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;31165:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;31165:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;31165:39;;;;;;;;;;;632:46320;31240:25;31296:9;31240:25;;:::i;31296:9::-;632:46320;31286:19;;-1:-1:-1;;;;;;;;;;;31276:30:68;;;;632:46320;;1590:14:0;;;;31276:30:68;;632:46320;31276:30;;632:46320;31276:30;;2260:42;31276:30;-1:-1:-1;;;;;;;;;;;31276:30:68;;;;;;;;;;;632:46320;31316:35;;-1:-1:-1;;;;;;;;;;;31316:35:68;;;;632:46320;;-1:-1:-1;;;31316:35:68;;31326:24;;;632:46320;31316:35;;632:46320;31316:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;31316:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;31415:20;;;:::i;:::-;2260:42;31415:20;;:::i;:::-;31165:7;1049:42;632:46320;;-1:-1:-1;;;31502:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;31502:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;31165:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;31502:44;;;;;;;;;;;;;;;632:46320;31562:13;;31596:3;632:46320;;31577:17;;;;;31624:9;31615:32;31624:9;632:46320;31624:9;;;:::i;31615:32::-;31661:34;632:46320;31670:9;;;;:::i;31661:34::-;632:46320;31562:13;;31502:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;31316:35;;;;;:::i;:::-;632:46320;;31316:35;;;;31276:30;;;;;:::i;:::-;632:46320;;31276:30;;;;31165:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;;;;;;;;;;;2060:7:28;632:46320:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2060:7:28;632:46320:68;;;;;-1:-1:-1;632:46320:68;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;3190:18:5;632:46320:68;2260:42;;;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;3190:18:5;632:46320:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2260:42;632:46320;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;1590:14:0;632:46320:68;1590:14:0;632:46320:68;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;;;;;;23270:39;632:46320;;;;:::i;:::-;23114:38;;;23122:13;23114:38;23270:7;1049:42;632:46320;;-1:-1:-1;;;23270:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;23270:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;23270:39;;;;;;;;;;;23114:38;2260:42;;;;;;;23332:13;23324:21;;;;;;;23406:9;;;:::i;:::-;632:46320;23388:27;;:94;;;23320:353;-1:-1:-1;;;;;;;;;;;23361:135:68;;;;632:46320;;-1:-1:-1;;;23361:135:68;;632:46320;;;;23361:135;;632:46320;23361:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;23361:135:68;;;;;;;;;;;23320:353;;;;632:46320;;-1:-1:-1;;;23711:30:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;23711:30:68;;;;;;;;;;;23320:353;523:5:65;;23332:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;23704:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;7009:9:8;632:46320:68;;-1:-1:-1;;632:46320:68;27524:10:3;632:46320:68;;;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;23332:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;23320:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;23332:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;23320:353:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;23320:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;23320:353:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;23320:353:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;23270:7:68;1049:42;632:46320;;-1:-1:-1;;;23756:61:68;;-1:-1:-1;;;;;632:46320:68;;;;23756:61;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;23756:61;-1:-1:-1;;;;;;;;;;;23756:61:68;;;;;;;;23320:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;23843:41:68;;23704:4;632:46320;23843:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;23843:41:68;;;;;;;;;;;23320:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;23909:41:68;;23704:4;632:46320;23909:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;23909:41:68;;;;;;;;;;;23320:353;2260:42;;632:46320;;;24014:28;632:46320;;;;;;:::i;24014:28::-;2260:42;23270:7;1049:42;632:46320;;-1:-1:-1;;;24085:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;24085:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;23270:39;2260:42;;;;;;;;;632:46320;;;;;;;24085:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;24085:57;;;;;;;;;;;23320:353;-1:-1:-1;24157:21:68;;;632:46320;;-1:-1:-1;;;24253:41:68;;23704:4;632:46320;24253:41;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;24253:41:68;;;;;;;;;;;24153:609;24253:48;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;24402:41:68;;23704:4;632:46320;24402:41;;632:46320;2260:42;24402:41;2260:42;24402:41;-1:-1:-1;;;;;;;;;;;24402:41:68;;;;;;;;;;;;24395:48;;;;;;:::i;24253:41::-;;;2260:42;24253:41;;2260:42;24253:41;;;;;;1590:14:0;24253:41:68;;;:::i;:::-;;;1590:14:0;;;;;24253:48:68;:41;;;;;-1:-1:-1;24253:41:68;;24153:609;632:46320;;-1:-1:-1;;;24554:41:68;;23704:4;632:46320;24554:41;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;24554:41:68;;;;;;;;;;;24153:609;24547:48;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;24689:41:68;;23704:4;632:46320;24689:41;;632:46320;2260:42;24689:41;2260:42;24689:41;-1:-1:-1;;;;;;;;;;;24689:41:68;;;;;;;;;;;;:48;;;;;;:::i;24554:41::-;;;2260:42;24554:41;;2260:42;24554:41;;;;;;1590:14:0;24554:41:68;;;:::i;:::-;;;1590:14:0;;;;;24547:48:68;24554:41;;;;;-1:-1:-1;24554:41:68;;24085:57;;;;;2260:42;24085:57;2260:42;24085:57;;;;;;;:::i;:::-;;;;;23909:41;;;;;2260:42;23909:41;;2260:42;23909:41;;;;;;1590:14:0;23909:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;23909:41:68;;;;;;;-1:-1:-1;23909:41:68;;23843;;;;;2260:42;23843:41;;2260:42;23843:41;;;;;;1590:14:0;23843:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;23843:41:68;;;;;;;-1:-1:-1;23843:41:68;;23756:61;;;2260:42;23756:61;2260:42;23756:61;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;23332:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2260:42:68;16314:19:8;16170:185;16314:19;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;23711:30:68;;;;2260:42;23711:30;;2260:42;23711:30;;;;;;1590:14:0;23711:30:68;;;:::i;:::-;;;1590:14:0;;;;;23711:30:68;;;;;;;-1:-1:-1;23711:30:68;;23361:135;;;;;:::i;:::-;632:46320;;23361:135;;;;23388:94;23457:25;;;:::i;:::-;23439:43;;23388:94;;23320:353;23572:9;;;:::i;:::-;632:46320;23554:27;;:94;;;23320:353;-1:-1:-1;;;;;;;;;;;23527:135:68;;;;632:46320;;-1:-1:-1;;;23527:135:68;;632:46320;;;;23527:135;;632:46320;23527:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;23527:135:68;;;;;;;;;;;23320:353;;;;;23527:135;;;;;:::i;:::-;632:46320;;23527:135;;;;23554:94;23623:25;;;:::i;:::-;23605:43;;23554:94;;23270:39;;;;;;;;;;;;;;:::i;:::-;;;;;23114:38;;;;632:46320;;;;;;;;;;;;;2707:18:5;632:46320:68;2260:42;;;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;2707:18:5;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;34079:7;1049:42;632:46320;;-1:-1:-1;;;34079:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;34079:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;34079:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;34079:39;;;;;;;;;;;632:46320;34154:25;34210:9;34154:25;;:::i;34210:9::-;632:46320;34200:19;;-1:-1:-1;;;;;;;;;;;34190:30:68;;;;632:46320;;1590:14:0;;;;34190:30:68;;632:46320;34190:30;;632:46320;34190:30;;2260:42;34190:30;-1:-1:-1;;;;;;;;;;;34190:30:68;;;;;;;;;;;632:46320;34230:35;;-1:-1:-1;;;;;;;;;;;34230:35:68;;;;632:46320;;-1:-1:-1;;;34230:35:68;;34240:24;;;632:46320;34230:35;;632:46320;34230:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;34230:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;34329:20;;;:::i;:::-;2260:42;34329:20;;:::i;:::-;34079:7;1049:42;632:46320;;-1:-1:-1;;;34416:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;34416:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;34079:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;34416:44;;;;;;;;;;;;;;;632:46320;34476:13;;34510:3;632:46320;;34491:17;;;;;34538:9;34529:32;34538:9;632:46320;34538:9;;;:::i;34529:32::-;34575:34;632:46320;34584:9;;;;:::i;34575:34::-;632:46320;34476:13;;34416:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;34230:35;;;;;:::i;:::-;632:46320;;34230:35;;;;34190:30;;;;;:::i;:::-;632:46320;;34190:30;;;;34079:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;;:::i;:::-;;;;;;;;;;;;;;;;;;;;41137:39;632:46320;;;;:::i;:::-;;;;40661:201;;;;40704:49;;;;:::i;:::-;40661:201;;40897:13;1442:42;-1:-1:-1;;;;;632:46320:68;;40983:38;;;40991:13;40983:38;;41137:7;1049:42;632:46320;;-1:-1:-1;;;41137:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;41137:39;;632:46320;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;41137:39;;;;;;;;;;;40983:38;2260:42;;;;;;;41199:13;41191:21;;;;;;;41256:9;;;:::i;:::-;632:46320;41238:27;;-1:-1:-1;;;;;;;;;;;41228:38:68;;;;632:46320;;1590:14:0;;;;41228:38:68;;632:46320;41228:38;;632:46320;41228:38;;2260:42;41228:38;-1:-1:-1;;;;;;;;;;;41228:38:68;;;;;;;;;;;41187:159;;;;632:46320;;-1:-1:-1;;;41424:30:68;;632:46320;2260:42;632:46320;;;41424:30;;;;;;;;;;;;41187:159;523:5:65;;41199:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;41417:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;41199:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;41187:159:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;41199:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;41187:159:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;41187:159:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;41187:159:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;41187:159:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;41137:7:68;1049:42;632:46320;;-1:-1:-1;;;41469:61:68;;-1:-1:-1;;;;;632:46320:68;;;;41469:61;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;41469:61;;;;;;;;;;41187:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;41556:41:68;;41417:4;632:46320;41556:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;41556:41;;;;;;;;;;;;41187:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;41622:41:68;;41417:4;632:46320;41622:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;41622:41:68;;;;;;;;;;;41187:159;-1:-1:-1;41137:7:68;1049:42;632:46320;;-1:-1:-1;;;41707:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;41707:57;;632:46320;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;41137:39;2260:42;;;;;;;;;632:46320;;;;;2260:42;;632:46320;;41707:57;;632:46320;;1590:14:0;-1:-1:-1;;;;;632:46320:68;41707:57;;;;;;;;;;;41187:159;-1:-1:-1;41779:21:68;;;632:46320;;-1:-1:-1;;;41875:41:68;;41417:4;632:46320;41875:41;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;41875:41:68;;;;;;;;;;;:48;2260:42;41875:48;;2260:42;41875:48;;;;;:::i;41775:609::-;632:46320;;;;2260:42;;632:46320;;;1590:14:0;;;;;;;42176:41:68;;41417:4;632:46320;42176:41;;632:46320;42176:41;;;;;;;;;;;41775:609;42169:48;;;;;;:::i;:::-;632:46320;;;-1:-1:-1;;;42311:41:68;;41417:4;632:46320;42311:41;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;42311:41:68;;;;;;;;;;;:48;;;;;;:::i;42176:41::-;;;2260:42;42176:41;;2260:42;42176:41;;;;;;1590:14:0;42176:41:68;;;:::i;:::-;;;1590:14:0;;;;;42169:48:68;42176:41;;;;;-1:-1:-1;42176:41:68;;41707:57;;;;;2260:42;41707:57;2260:42;41707:57;;;;;;;:::i;:::-;;;;;41622:41;;;;;2260:42;41622:41;;2260:42;41622:41;;;;;;1590:14:0;41622:41:68;;;:::i;:::-;;;1590:14:0;;;;2260:42:68;1590:14:0;;;41622:41:68;;;;;;;-1:-1:-1;41622:41:68;;41556;;;;;2260:42;41556:41;;2260:42;41556:41;;;;;;1590:14:0;41556:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;41556:41:68;;;;;;;-1:-1:-1;41556:41:68;;41469:61;;;2260:42;41469:61;2260:42;41469:61;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;41199:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;;;;;15938:460;632:46320:68;;;16170:185:8;;2260:42:68;16170:185:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;632:46320:68;12810:59:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;2260:42:68;12810:59:8;;-1:-1:-1;;;12810:59:8;;632:46320:68;;2260:42;632:46320;;;12810:59:8;;;632:46320:68;;;;12810:59:8;632:46320:68;;;16170:185:8;12810:59;16170:185;27501:38:3;;16170:185:8;;;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;41424:30:68;;;;2260:42;41424:30;;2260:42;41424:30;;;;;;1590:14:0;41424:30:68;;;:::i;:::-;;;1590:14:0;;;;;41424:30:68;;;;;;;-1:-1:-1;41424:30:68;;41228:38;;;;;:::i;:::-;632:46320;;41228:38;;;;41187:159;41325:9;;;:::i;:::-;632:46320;41307:27;;-1:-1:-1;;;;;;;;;;;41297:38:68;;;;632:46320;;1590:14:0;;;;41297:38:68;;632:46320;41297:38;;632:46320;41297:38;;2260:42;41297:38;-1:-1:-1;;;;;;;;;;;41297:38:68;;;;;;;;;;;41187:159;;;;;41297:38;;;;;:::i;:::-;632:46320;;41297:38;;;;41137:39;;;;;;;;;;;;;;:::i;:::-;;;;;40983:38;;;;;40661:201;40802:49;;;;:::i;:::-;40661:201;;;632:46320;;;;;;;;;;;;;2883:26:5;632:46320:68;2260:42;;;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;2883:26:5;632:46320:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2260:42;632:46320;;;;;;;;;;;;;;;;;;;;;;1590:14:0;632:46320:68;1590:14:0;632:46320:68;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;;;;;;1590:14:0;632:46320:68;;;;;;;;;;;;;;;;;37922:39;632:46320;;;;:::i;:::-;37766:38;;;37774:13;37766:38;37922:7;1049:42;632:46320;;-1:-1:-1;;;37922:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;37922:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;2064:42;2260;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;37922:39;;;;;;;;;;;37766:38;2260:42;;;;;;;37984:13;37976:21;;;;;;;38058:9;;;:::i;:::-;632:46320;38040:27;;:94;;;37972:353;-1:-1:-1;;;;;;;;;;;38013:135:68;;;;632:46320;;-1:-1:-1;;;38013:135:68;;632:46320;;;;38013:135;;632:46320;38013:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;38013:135:68;;;;;;;;;;;37972:353;;;;632:46320;;-1:-1:-1;;;38363:28:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;38363:28:68;;;;;;;;;;;37972:353;523:5:65;;37984:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;38356:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;37984:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;37972:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;37984:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;37972:353:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;37972:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;37972:353:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;37972:353:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;37922:7:68;1049:42;632:46320;;-1:-1:-1;;;38406:59:68;;-1:-1:-1;;;;;632:46320:68;;;;38406:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;38406:59;-1:-1:-1;;;;;;;;;;;38406:59:68;;;;;;;;37972:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;38491:39:68;;38356:4;632:46320;38491:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;38491:39:68;;;;;;;;;;;37972:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;38555:39:68;;38356:4;632:46320;38555:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;2064:42;38555:39;;;;;;;;;;;37972:353;2260:42;;632:46320;;;38658:28;632:46320;;;;;;:::i;38658:28::-;2260:42;37922:7;1049:42;632:46320;;-1:-1:-1;;;38729:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;38729:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;2064:42;2260;;;632:46320;37922:39;2260:42;;;;;;;;;632:46320;;;;;;;38729:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;38729:57;;;;;;;;;;;37972:353;-1:-1:-1;38801:21:68;;;632:46320;;-1:-1:-1;;;38881:39:68;;38356:4;632:46320;38881:39;;632:46320;2260:42;632:46320;2260:42;632:46320;2064:42;38881:39;;;;;;;;;;;:46;;;;;;:::i;38797:569::-;632:46320;;-1:-1:-1;;;39162:39:68;;38356:4;632:46320;39162:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;39162:39:68;;;;;;;;;;;38797:569;39155:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;39295:39:68;;38356:4;632:46320;39295:39;;632:46320;2260:42;39295:39;2260:42;39295:39;2064:42;39295:39;;;;;;;;;;;;:46;;;;;;:::i;39162:39::-;;;2260:42;39162:39;;2260:42;39162:39;;;;;;1590:14:0;39162:39:68;;;:::i;:::-;;;1590:14:0;;;;;39155:46:68;39162:39;;;;;-1:-1:-1;39162:39:68;;38729:57;;;;;2260:42;38729:57;2260:42;38729:57;;;;;;;:::i;:::-;;;;;38555:39;;;;;2260:42;38555:39;;2260:42;38555:39;;;;;;1590:14:0;38555:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;38555:39:68;;;;;;;-1:-1:-1;38555:39:68;;38491;;;;;2260:42;38491:39;;2260:42;38491:39;;;;;;1590:14:0;38491:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;38491:39:68;;;;;;;-1:-1:-1;38491:39:68;;38406:59;;;2260:42;38406:59;2260:42;38406:59;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;37984:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2260:42:68;16314:19:8;16170:185;16314:19;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;38363:28:68;;;;2260:42;38363:28;;2260:42;38363:28;;;;;;1590:14:0;38363:28:68;;;:::i;:::-;;;1590:14:0;;;;;38363:28:68;;;;;;;-1:-1:-1;38363:28:68;;38013:135;;;;;:::i;:::-;632:46320;;38013:135;;;;38040:94;-1:-1:-1;632:46320:68;;-1:-1:-1;;;46578:23:68;;2260:42;632:46320;;;2064:42;46578:23;;;;;;;;;;38040:94;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;38040:94;46778:2;46767:13;;46763:94;;38040;632:46320;;;;;;;;38091:43;;38040:94;;46763;-1:-1:-1;;2260:42:68;;;-1:-1:-1;2260:42:68;;;;46763:94;;;46676:78;3663:17;-1:-1:-1;;2260:42:68;;;;;;;46676:78;;;46578:23;;2260:42;46578:23;;2260:42;46578:23;;;;;;2260:42;46578:23;;;:::i;:::-;;;632:46320;;;;;;;;;;;;;46578:23;;;;;;-1:-1:-1;46578:23:68;;37972:353;38224:9;;;:::i;:::-;632:46320;38206:27;;:94;;;37972:353;-1:-1:-1;;;;;;;;;;;38179:135:68;;;;632:46320;;-1:-1:-1;;;38179:135:68;;632:46320;;;;38179:135;;632:46320;38179:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;38179:135:68;;;;;;;;;;;37972:353;;;;;38179:135;;;;;:::i;:::-;632:46320;;38179:135;;;;38206:94;38275:25;;;:::i;:::-;38257:43;;38206:94;;37922:39;;;;;;;;;;;;;;:::i;:::-;;;;;37766:38;;;;632:46320;;;;;;;;:::i;:::-;29055:38;;;29063:13;29055:38;29211:7;1049:42;632:46320;;-1:-1:-1;;;29211:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;29211:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;29211:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;29211:39;;;;;;;;;;;29055:38;2260:42;;;;;;;29265:21;29273:13;29265:21;;29261:353;;;29265:21;;;29347:9;;;:::i;:::-;632:46320;29329:27;;:94;;;29261:353;-1:-1:-1;;;;;;;;;;;29302:135:68;;;;632:46320;;-1:-1:-1;;;29302:135:68;;632:46320;;;;29302:135;;632:46320;29302:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;29302:135:68;;;;;;;;29261:353;;;;632:46320;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;29645:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;7009:9:8;632:46320:68;;-1:-1:-1;;632:46320:68;27524:10:3;632:46320:68;;;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;;;29273:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;29261:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;29273:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;29261:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;-1:-1:-1;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;29261:353:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;29261:353:68;16720:176:8;;;14785:4;;;;;:::i;:::-;29211:7:68;1049:42;632:46320;;-1:-1:-1;;;29680:61:68;;-1:-1:-1;;;;;632:46320:68;;;;29680:61;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;29680:61;-1:-1:-1;;;;;;;;;;;29680:61:68;;;;;;;;29261:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;29767:41:68;;29645:4;632:46320;29767:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;29767:41:68;;;;;;;;;;;29261:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;29833:39:68;;29645:4;632:46320;29833:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;29833:39:68;;;;;;;;;;;29261:353;2260:42;;632:46320;;;29936:28;632:46320;;;;;;:::i;29936:28::-;2260:42;29211:7;1049:42;632:46320;;-1:-1:-1;;;30007:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;30007:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;29211:39;2260:42;;;;;;;;;632:46320;;;;;;;30007:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;30007:57;;;;;;;;;;;29261:353;-1:-1:-1;30079:21:68;;;632:46320;;-1:-1:-1;;;30159:39:68;;29645:4;632:46320;30159:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;30159:39:68;;;;;;;;;;;30075:571;30159:46;;;;;;:::i;:::-;632:46320;;;;1590:14:0;;;30306:41:68;;29645:4;632:46320;30306:41;;632:46320;2260:42;30306:41;2260:42;30306:41;-1:-1:-1;;;;;;;;;;;30306:41:68;;;;;;;;;;;;30299:48;;;;;;:::i;30159:39::-;;;2260:42;30159:39;;2260:42;30159:39;;;;;;1590:14:0;30159:39:68;;;:::i;:::-;;;1590:14:0;;;;;30159:46:68;:39;;;;;-1:-1:-1;30159:39:68;;30075:571;632:46320;;-1:-1:-1;;;30442:39:68;;29645:4;632:46320;30442:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;30442:39:68;;;;;;;;;;;30435:46;;;;;;:::i;30007:57::-;;;;;2260:42;30007:57;2260:42;30007:57;;;;;;;:::i;:::-;;;;;29833:39;;;;;2260:42;29833:39;;2260:42;29833:39;;;;;;1590:14:0;29833:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;29833:39:68;;;;;;;-1:-1:-1;29833:39:68;;29767:41;;;;;2260:42;29767:41;;2260:42;29767:41;;;;;;1590:14:0;29767:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;29767:41:68;;;;;;;-1:-1:-1;29767:41:68;;29680:61;;;2260:42;29680:61;2260:42;29680:61;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3663:17:68;16724:29:8;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;29302:135:68;;;;;:::i;:::-;632:46320;;29302:135;;;;29329:94;29398:25;;;:::i;:::-;29380:43;;29329:94;;29261:353;29513:9;;;:::i;:::-;632:46320;29495:27;;:94;;;29261:353;-1:-1:-1;;;;;;;;;;;29468:135:68;;;;632:46320;;-1:-1:-1;;;29468:135:68;;632:46320;;;;29468:135;;632:46320;29468:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;29468:135:68;;;;;;;;29261:353;;;;;29468:135;;;;;:::i;:::-;632:46320;;29468:135;;;;29495:94;29564:25;;;:::i;:::-;29546:43;;29495:94;;29211:39;;;;;;;;;;;;;:::i;:::-;;;;29055:38;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;10608:7;1049:42;632:46320;;-1:-1:-1;;;10608:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;10608:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;10608:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;10608:39;;;;;;;;;;;632:46320;10682:25;10738:9;10682:25;;:::i;10738:9::-;632:46320;10728:19;;-1:-1:-1;;;;;;;;;;;10718:30:68;;;;632:46320;;1590:14:0;;;;10718:30:68;;632:46320;10718:30;;632:46320;10718:30;;2260:42;10718:30;-1:-1:-1;;;;;;;;;;;10718:30:68;;;;;;;;;;;632:46320;10758:35;;-1:-1:-1;;;;;;;;;;;10758:35:68;;;;632:46320;;-1:-1:-1;;;10758:35:68;;10768:24;;;632:46320;10758:35;;632:46320;10758:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;10758:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;10857:20;;;:::i;:::-;2260:42;10857:20;;:::i;:::-;10608:7;1049:42;632:46320;;-1:-1:-1;;;10944:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;10944:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;10608:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;10944:44;;;;;;;;;;;;;;;632:46320;11004:13;;11038:3;632:46320;;11019:17;;;;;11066:9;11057:32;11066:9;632:46320;11066:9;;;:::i;11057:32::-;11103:34;632:46320;11112:9;;;;:::i;11103:34::-;632:46320;11004:13;;10944:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;10758:35;;;;;:::i;:::-;632:46320;;10758:35;;;;10718:30;;;;;:::i;:::-;632:46320;;10718:30;;;;10608:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;;;;;;;2429:30;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;20235:39;632:46320;;;;:::i;:::-;20001:13;1747:42;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;;20081:38;;;;20089:13;20081:38;;20235:7;1049:42;632:46320;;-1:-1:-1;;;20235:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;20235:39;;632:46320;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;20235:39;;;;;;;;;;;20081:38;-1:-1:-1;20284:376:68;;;20354:9;;;:::i;:::-;632:46320;20336:27;;:57;;;20284:376;-1:-1:-1;;;;;;;;;;;20309:174:68;;;;632:46320;;-1:-1:-1;;;20309:174:68;;632:46320;;;;20309:174;;632:46320;20309:174;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;20309:174:68;;;;;;;;;;;20284:376;;;;2260:42;;;;;;20682:13;20674:21;;;;;;;20739:9;;;:::i;:::-;632:46320;20721:27;;-1:-1:-1;;;;;;;;;;;20711:38:68;;;;632:46320;;1590:14:0;;;;20711:38:68;;632:46320;20711:38;;632:46320;20711:38;;2260:42;20711:38;-1:-1:-1;;;;;;;;;;;20711:38:68;;;;;;;;;;;20670:159;;;;632:46320;;-1:-1:-1;;;20867:28:68;;632:46320;2260:42;632:46320;;;20867:28;;;;;;;;;;;;20670:159;523:5:65;;20682:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;20860:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;20682:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;20670:159:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;20682:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;20670:159:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;20670:159:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;20670:159:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;20670:159:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;20235:7:68;1049:42;632:46320;;-1:-1:-1;;;20910:61:68;;-1:-1:-1;;;;;632:46320:68;;;;20910:61;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;20910:61;;;;;;;;;;20670:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;20997:41:68;;20860:4;632:46320;20997:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;20997:41;;;;;;;;;;;;20670:159;-1:-1:-1;632:46320:68;;-1:-1:-1;;;21063:39:68;;20860:4;632:46320;21063:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;21063:39:68;;;;;;;;;;;20670:159;-1:-1:-1;20235:7:68;1049:42;632:46320;;-1:-1:-1;;;21146:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;21146:57;;632:46320;2260:42;;;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;20235:39;2260:42;;;;;;;;;632:46320;;;;;2260:42;;632:46320;;21146:57;;632:46320;;1590:14:0;-1:-1:-1;;;;;632:46320:68;21146:57;;;;;;;;;;;20670:159;-1:-1:-1;21218:21:68;;;632:46320;;-1:-1:-1;;;21298:39:68;;20860:4;632:46320;21298:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;21298:39:68;;;;;;;;;;;:46;2260:42;21298:46;;2260:42;21298:46;;;;;:::i;21214:589::-;632:46320;;;;2260:42;;632:46320;;;1590:14:0;;;;;;;21597:41:68;;20860:4;632:46320;21597:41;;632:46320;21597:41;;;;;;;;;;;21214:589;21590:48;;;;;;:::i;:::-;632:46320;;;-1:-1:-1;;;21732:39:68;;20860:4;632:46320;21732:39;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;21732:39:68;;;;;;;;;;;:46;;;;;;:::i;21597:41::-;;;2260:42;21597:41;;2260:42;21597:41;;;;;;1590:14:0;21597:41:68;;;:::i;:::-;;;1590:14:0;;;;;21590:48:68;21597:41;;;;;-1:-1:-1;21597:41:68;;21146:57;;;;;2260:42;21146:57;2260:42;21146:57;;;;;;;:::i;:::-;;;;;21063:39;;;;;2260:42;21063:39;;2260:42;21063:39;;;;;;1590:14:0;21063:39:68;;;:::i;:::-;;;1590:14:0;;;;2260:42:68;1590:14:0;;;21063:39:68;;;;;;;-1:-1:-1;21063:39:68;;20997:41;;;;;2260:42;20997:41;;2260:42;20997:41;;;;;;1590:14:0;20997:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;20997:41:68;;;;;;;-1:-1:-1;20997:41:68;;20910:61;;;2260:42;20910:61;2260:42;20910:61;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;20682:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;;;;;15938:460;632:46320:68;;;16170:185:8;;2260:42:68;16170:185:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;632:46320:68;12810:59:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;2260:42:68;12810:59:8;;-1:-1:-1;;;12810:59:8;;632:46320:68;;2260:42;632:46320;;;12810:59:8;;;632:46320:68;;;;12810:59:8;632:46320:68;;;16170:185:8;12810:59;16170:185;27501:38:3;;16170:185:8;;;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;20867:28:68;;;;2260:42;20867:28;;2260:42;20867:28;;;;;;1590:14:0;20867:28:68;;;:::i;:::-;;;1590:14:0;;;;;20867:28:68;;;;;;;-1:-1:-1;20867:28:68;;20711:38;;;;;:::i;:::-;632:46320;;20711:38;;;;20670:159;20808:9;;;:::i;:::-;632:46320;20790:27;;-1:-1:-1;;;;;;;;;;;20780:38:68;;;;632:46320;;1590:14:0;;;;20780:38:68;;632:46320;20780:38;;632:46320;20780:38;;2260:42;20780:38;-1:-1:-1;;;;;;;;;;;20780:38:68;;;;;;;;;;;20670:159;;;;;20780:38;;;;;:::i;:::-;632:46320;;20780:38;;;;20309:174;;;;;:::i;:::-;632:46320;;20309:174;;;;20336:57;20367:26;20385:8;20367:26;;20336:57;;20284:376;20559:9;;;:::i;:::-;632:46320;20541:27;;:94;;;20284:376;-1:-1:-1;;;;;;;;;;;20514:135:68;;;;632:46320;;-1:-1:-1;;;20514:135:68;;632:46320;;;;20514:135;;632:46320;20514:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;20514:135:68;;;;;;;;;;;20284:376;;;;;20514:135;;;;;:::i;:::-;632:46320;;20514:135;;;;20541:94;20610:25;;;;:::i;:::-;20592:43;;20541:94;;20235:39;;;;;;;;;;;;;;:::i;:::-;;;;;20081:38;;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;16148:13;1747:42;16278:7;1049:42;632:46320;;-1:-1:-1;;;16278:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;16278:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;;;;;;;;;16278:39;;632:46320;;;16278:39;;;;;;;;;;;632:46320;;16465:9;16394:41;632:46320;;16394:41;:::i;16465:9::-;632:46320;16455:19;;-1:-1:-1;;;;;;;;;;;16445:30:68;;;;632:46320;;1590:14:0;;;;16445:30:68;;632:46320;16445:30;;632:46320;16445:30;;2260:42;16445:30;-1:-1:-1;;;;;;;;;;;16445:30:68;;;;;;;;;;;632:46320;2260:42;;;632:46320;;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;16539:20;;;:::i;:::-;2260:42;16539:20;;:::i;:::-;16278:7;1049:42;632:46320;;-1:-1:-1;;;16626:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;16626:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;2260:42;632:46320;;;;;;;16278:39;632:46320;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;16626:44;;;;;;;;;;;;;;;632:46320;16686:13;;16720:3;632:46320;;16701:17;;;;;16748:9;16739:32;16748:9;632:46320;16748:9;;;:::i;16739:32::-;16785:34;632:46320;16794:9;;;;:::i;16785:34::-;632:46320;16686:13;;16626:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;16445:30;;;;;:::i;:::-;632:46320;;16445:30;;;;16278:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;13471:7;1049:42;632:46320;;-1:-1:-1;;;13471:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;13471:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;13471:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;13471:39;;;;;;;;13541:9;13471:39;;;;;13541:9;;:::i;:::-;632:46320;13531:19;;:58;;;632:46320;-1:-1:-1;;;;;;;;;;;13521:69:68;;;;632:46320;;-1:-1:-1;;;13521:69:68;;632:46320;;;;13521:69;;632:46320;13521:69;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;13521:69:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;13741:44;632:46320;;;;;;;;;:::i;:::-;;2260:42;;-1:-1:-1;;2260:42:68;;632:46320;;2260:42;;;13654:20;;;:::i;:::-;2260:42;13654:20;;:::i;:::-;13471:7;1049:42;632:46320;;-1:-1:-1;;;13741:44:68;;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;13741:44;;;:::i;:::-;;;;;;;;;;;;;;;632:46320;13801:13;;13835:3;632:46320;;13816:17;;;;;13912:9;13903:34;632:46320;13912:9;632:46320;13912:9;;;:::i;13903:34::-;632:46320;13801:13;;13741:44;;;;;;;;;;;;;;:::i;:::-;;;;;13521:69;;;;;:::i;:::-;632:46320;;13521:69;;;;13531:58;13564:25;;;:::i;:::-;13554:35;;13531:58;;13471:39;;;;;;;;;;;;;:::i;632:46320::-;;;;;;;;;;;;;;;;;;3038:18:5;632:46320:68;;;;;;;3038:18:5;632:46320:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;632:46320:68;;;;;;;3331:16:5;632:46320:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;45812:7;1049:42;632:46320;;-1:-1:-1;;;45812:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;45812:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;45812:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;45812:39;;;;;;;;45882:9;45812:39;;;;;45882:9;;:::i;:::-;632:46320;45872:19;;:37;;;632:46320;-1:-1:-1;;;;;;;;;;;45862:48:68;;;;632:46320;;-1:-1:-1;;;45862:48:68;;632:46320;;;;45862:48;;632:46320;45862:48;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;45862:48:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;46061:44;632:46320;;;;;;;;;:::i;46061:44::-;;;;;;;;;;;;;;;632:46320;46121:13;;46155:3;632:46320;;46136:17;;;;;46183:9;46174:32;46183:9;632:46320;46183:9;;;:::i;46174:32::-;46220:34;632:46320;46229:9;;;;:::i;46220:34::-;632:46320;46121:13;;46061:44;;;;;;;;;;;;;;:::i;:::-;;;;;45862:48;;;;;:::i;:::-;632:46320;;45862:48;;;;45872:37;45895:14;45905:4;45895:14;;45872:37;;632:46320;;;;;;;;;;;;;;;;2780:2:28;632:46320:68;;;;;;;;;;;;;;;;3485:19:5;632:46320:68;2260:42;;;:::i;:::-;632:46320;;;;;;:::i;:::-;2260:42;;;3485:19:5;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;2260:42;632:46320;2260:42;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;632:46320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2260:42;632:46320;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;3657:11:28;632:46320:68;;;;;;;;735:10:34;-1:-1:-1;632:46320:68;;;;;;;;;;;;;10580:37:28;;10576:310;;632:46320:68;4986:5:28;;;;;;:::i;10576:310::-;10637:24;;;10633:130;;9813:19;;9809:89;;735:10:34;9911:21:28;9907:90;;632:46320:68;;;4986:5:28;632:46320:68;;3657:11:28;632:46320:68;;;;;;;;735:10:34;632:46320:68;-1:-1:-1;632:46320:68;;;;;-1:-1:-1;632:46320:68;;;;;10576:310:28;;;;9907:90;-1:-1:-1;;;9955:31:28;;632:46320:68;;;;;9955:31:28;;9809:89;-1:-1:-1;;;9855:32:28;;632:46320:68;;;;;9855:32:28;;10633:130;632:46320:68;10688:60:28;;;;;;;;735:10:34;632:46320:68;;;;;;10688:60:28;632:46320:68;;;;;;;;;;;;;;;;;;2563:16:5;632:46320:68;;;;;;;2563:16:5;632:46320:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2465:32;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;2927:12:28;632:46320:68;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;22314:7;1049:42;632:46320;;-1:-1:-1;;;22314:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;22314:39;;;632:46320;;;;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;;;22314:39;;632:46320;;-1:-1:-1;;;;;632:46320:68;22314:39;;;;;;;;;;;632:46320;22389:25;22445:9;22389:25;;:::i;22445:9::-;632:46320;22435:19;;-1:-1:-1;;;;;;;;;;;22425:30:68;;;;632:46320;;1590:14:0;;;;22425:30:68;;632:46320;22425:30;;632:46320;22425:30;;2260:42;22425:30;-1:-1:-1;;;;;;;;;;;22425:30:68;;;;;;;;;;;632:46320;22465:35;;-1:-1:-1;;;;;;;;;;;22465:35:68;;;;632:46320;;-1:-1:-1;;;22465:35:68;;22475:24;;;632:46320;22465:35;;632:46320;22465:35;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;22465:35:68;;;;;;;;;;;632:46320;2260:42;;632:46320;;;;;;;;;:::i;:::-;;2260:42;;632:46320;2260:42;;;-1:-1:-1;;2260:42:68;;632:46320;2260:42;;22564:20;;;:::i;:::-;2260:42;22564:20;;:::i;:::-;22314:7;1049:42;632:46320;;-1:-1:-1;;;22651:44:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;22651:44;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;-1:-1:-1;;;;;;;;;;;2260:42:68;632:46320;;;;22314:39;632:46320;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;22651:44;;;;;;;;;;;;;;;632:46320;22711:13;;22745:3;632:46320;;22726:17;;;;;22773:9;22764:32;22773:9;632:46320;22773:9;;;:::i;22764:32::-;22810:34;632:46320;22819:9;;;;:::i;22810:34::-;632:46320;22711:13;;22651:44;;;;;;;;;;;;;;:::i;:::-;;;;;632:46320;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;22465:35;;;;;:::i;:::-;632:46320;;22465:35;;;;22425:30;;;;;:::i;:::-;632:46320;;22425:30;;;;22314:39;;;;;;;;;;;;;:::i;:::-;;;;632:46320;;;;;26251:39;632:46320;;;;:::i;:::-;26095:38;;;26103:13;26095:38;26251:7;1049:42;632:46320;;-1:-1:-1;;;26251:39:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;26251:39;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;;;;;;1590:14:0;632:46320:68;;-1:-1:-1;;;;;632:46320:68;26251:39;;;;;;;;;;;26095:38;2260:42;;;;;;;26313:13;26305:21;;;;;;;26387:9;;;:::i;:::-;632:46320;26369:27;;:94;;;26301:353;-1:-1:-1;;;;;;;;;;;26342:135:68;;;;632:46320;;-1:-1:-1;;;26342:135:68;;632:46320;;;;26342:135;;632:46320;26342:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;26342:135:68;;;;;;;;;;;26301:353;;;;632:46320;;-1:-1:-1;;;26692:28:68;;632:46320;2260:42;632:46320;;;-1:-1:-1;;;;;;;;;;;26692:28:68;;;;;;;;;;;26301:353;523:5:65;;26313:13:68;523:5:65;;;;;2260:42:68;523:5:65;;;;;;;632:46320:68;;;;2260:42;27501:38:3;;1590:14:0;;;;27501:38:3;;26685:4:68;2260:42;27501:38:3;;632:46320:68;2260:42;27501:38:3;;;2260:42:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;26313:13;632:46320;;;7505:10:8;632:46320:68;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;2260:42;632:46320;;;;;;2260:42;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;2260:42;632:46320;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;26301:353:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;2260:42;632:46320;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;2260:42:68;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;2260:42;632:46320;;;;15943:15:8;26313:13:68;15943:15:8;;632:46320:68;15961:16:8;2260:42:68;15961:16:8;;632:46320:68;15943:34:8;;;;;:::i;:::-;15938:460;;26301:353:68;632:46320;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;2260:42;632:46320;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;26301:353:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;;;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;26301:353:68;16678:31:8;;;;:::i;:::-;16724:8;;;632:46320:68;;;16724:29:8;;26301:353:68;16720:176:8;;;;14785:4;;;;;:::i;:::-;26251:7:68;1049:42;632:46320;;-1:-1:-1;;;26735:59:68;;-1:-1:-1;;;;;632:46320:68;;;;26735:59;;632:46320;-1:-1:-1;;2260:42:68;1442;;632:46320;2260:42;632:46320;2260:42;632:46320;26735:59;-1:-1:-1;;;;;;;;;;;26735:59:68;;;;;;;;26301:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;26820:39:68;;26685:4;632:46320;26820:39;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;26820:39:68;;;;;;;;;;;26301:353;-1:-1:-1;632:46320:68;;-1:-1:-1;;;26884:41:68;;26685:4;632:46320;26884:41;;632:46320;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;26884:41:68;;;;;;;;;;;26301:353;2260:42;;632:46320;;;26989:28;632:46320;;;;;;:::i;26989:28::-;2260:42;26251:7;1049:42;632:46320;;-1:-1:-1;;;27060:57:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;27060:57;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;-1:-1:-1;;;;;;;;;;;2260:42:68;;;632:46320;26251:39;2260:42;;;;;;;;;632:46320;;;;;;;27060:57;;632:46320;;-1:-1:-1;;;;;632:46320:68;27060:57;;;;;;;;;;;26301:353;-1:-1:-1;27132:21:68;;;632:46320;;-1:-1:-1;;;27228:41:68;;26685:4;632:46320;27228:41;;632:46320;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;27228:41:68;;;;;;;;;;;:48;;;;;;:::i;27128:589::-;632:46320;;-1:-1:-1;;;27511:39:68;;26685:4;632:46320;27511:39;;632:46320;;;;2260:42;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;27511:39:68;;;;;;;;;;;27504:46;;;;;;:::i;27060:57::-;;;;;2260:42;27060:57;2260:42;27060:57;;;;;;;:::i;:::-;;;;;26884:41;;;;;2260:42;26884:41;;2260:42;26884:41;;;;;;1590:14:0;26884:41:68;;;:::i;:::-;;;1590:14:0;;;;;;;26884:41:68;;;;;;;-1:-1:-1;26884:41:68;;26820:39;;;;;2260:42;26820:39;;2260:42;26820:39;;;;;;1590:14:0;26820:39:68;;;:::i;:::-;;;1590:14:0;;;;;;;26820:39:68;;;;;;;-1:-1:-1;26820:39:68;;26735:59;;;2260:42;26735:59;2260:42;26735:59;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;2260:42:68;16424:32:8;;2260:42:68;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;26313:13;632:46320;;;;;1590:14:0;;;;16314:19:8;;;632:46320:68;16314:19:8;;632:46320:68;16314:19:8;;2260:42:68;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2260:42:68;16314:19:8;16170:185;16314:19;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;2260:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;26692:28:68;;;;2260:42;26692:28;;2260:42;26692:28;;;;;;1590:14:0;26692:28:68;;;:::i;:::-;;;1590:14:0;;;;;26692:28:68;;;;;;;-1:-1:-1;26692:28:68;;26342:135;;;;;:::i;:::-;632:46320;;26342:135;;;;26369:94;26438:25;;;:::i;:::-;26420:43;;26369:94;;26301:353;26553:9;;;:::i;:::-;632:46320;26535:27;;:94;;;26301:353;-1:-1:-1;;;;;;;;;;;26508:135:68;;;;632:46320;;-1:-1:-1;;;26508:135:68;;632:46320;;;;26508:135;;632:46320;26508:135;632:46320;2260:42;632:46320;-1:-1:-1;;;;;;;;;;;26508:135:68;;;;;;;;;;;26301:353;;;;;26508:135;;;;;:::i;:::-;632:46320;;26508:135;;;;26535:94;26604:25;;;:::i;:::-;26586:43;;26535:94;;26251:39;;;;;;;;;;;;;;:::i;:::-;;;;;26095:38;;;;632:46320;;;;;;;-1:-1:-1;;632:46320:68;;;;;;-1:-1:-1;;;2632:20:68;;1590:14:0;632:46320:68;2632:20;;1590:14:0;;;;;632:46320:68;-1:-1:-1;;;632:46320:68;;;1590:14:0;-1:-1:-1;632:46320:68;2632:20;632:46320;-1:-1:-1;;;;;;;;;;;2632:20:68;;;;;;;1590:14:0;2632:20:68;1590:14:0;2632:20:68;632:46320;2632:20;;;632:46320;;;;1590:14:0;;;;;;;2612:52:68;;632:46320;;2612:52;;1590:14:0;632:46320:68;1590:14:0;;;;:::i;:::-;2594:8:68;1590:14:0;;;632:46320:68;2612:52;;632:46320;-1:-1:-1;;;;;;;;;;;2612:52:68;;;;;;;;632:46320;-1:-1:-1;2779:6:68;793:59;632:46320;;;-1:-1:-1;;;;;632:46320:68;2685:156;;;;-1:-1:-1;;;;;2685:156:68;;;;;;;;1984:42;2685:156;;;;;;808:42;632:46320;;1590:14:0;1984:42:68;;632:46320;1124:42;632:46320;1984:42;;632:46320;-1:-1:-1;;;;;;;;;;;1984:42:68;;;632:46320;2685:156;;;632:46320;2685:156;;;;;632:46320;;;;;;1984:42;;;2675:166;1984:42;;;2675:166;1984:42;632:46320;;2906:33;;;;;;;;-1:-1:-1;;;;;2906:33:68;;;;;1590:14:0;2906:33:68;;;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;2906:33;;;632:46320;2906:33;;;;;2890:49;1984:42;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;;;1984:42;;;;;-1:-1:-1;;;;;;;;;;;2949:49:68;;;;632:46320;;1590:14:0;;;;2949:49:68;;632:46320;2949:49;;632:46320;;1590:14:0;1747:42:68;;;;632:46320;1747:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1747:42;632:46320;2949:49;;;;-1:-1:-1;;;;;;;;;;;2949:49:68;;;;;;;;632:46320;;;;3051:35;;;;;;;;;;-1:-1:-1;;;;;3051:35:68;;;;;;;;1590:14:0;3051:35:68;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;3051:35;;;;;;;;;3034:52;1984:42;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;;;1984:42;;;;;-1:-1:-1;;;;;;;;;;;3096:51:68;;;;632:46320;;1590:14:0;;;;3096:51:68;;632:46320;3096:51;;632:46320;;1590:14:0;1669:42:68;;;;632:46320;1669:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1669:42;3096:51;;2949:49;3096:51;;-1:-1:-1;;;;;;;;;;;3096:51:68;;;;;;;;632:46320;;;;;3204:33;;;;;;;;;;-1:-1:-1;;;;;3204:33:68;;;;;;;;1590:14:0;3204:33:68;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;3204:33;;;;;;;;;3188:49;1984:42;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;;;1984:42;;;;;-1:-1:-1;;;;;;;;;;;3247:49:68;;;;632:46320;;1590:14:0;;;;3247:49:68;;632:46320;3247:49;;632:46320;;1590:14:0;1442:42:68;;;1747;632:46320;1442:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1442:42;3247:49;;2949;3247;;-1:-1:-1;;;;;;;;;;;3247:49:68;;;;;;;;632:46320;;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3402:4:68;1590:14:0;27501:38:3;;632:46320:68;1590:14:0;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;1669:42;632:46320;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;1669:42;632:46320;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;1590:14:0;632:46320:68;;;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;1590:14:0;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;1590:14:0;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;632:46320:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;3409:17;632:46320;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;632:46320:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;632:46320:68;16720:176:8;;;14785:4;;;:::i;:::-;632:46320:68;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3402:4:68;1590:14:0;27501:38:3;;632:46320:68;1590:14:0;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;1669:42;632:46320;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;1669:42;632:46320;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;1590:14:0;632:46320:68;;;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;1590:14:0;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;1590:14:0;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;632:46320:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;3533:17;632:46320;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;632:46320:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;632:46320:68;16720:176:8;;;14785:4;;;:::i;:::-;632:46320:68;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3402:4:68;1590:14:0;27501:38:3;;632:46320:68;1590:14:0;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;1669:42;632:46320;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;1669:42;632:46320;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;1590:14:0;632:46320:68;;;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;1590:14:0;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;1590:14:0;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;632:46320:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;3594:21;632:46320;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;632:46320:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;632:46320:68;16720:176:8;;;14785:4;;;:::i;:::-;632:46320:68;;-1:-1:-1;;;3626:55:68;;1124:42;632:46320;3626:55;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;3626:55;-1:-1:-1;;;;;;;;;;;3626:55:68;;;;;;;;632:46320;-1:-1:-1;3034:52:68;1669:42;632:46320;;-1:-1:-1;;;3691:58:68;;1124:42;632:46320;3691:58;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;3691:58;;;;;;;;632:46320;-1:-1:-1;632:46320:68;;-1:-1:-1;;;3815:54:68;;1124:42;632:46320;3815:54;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;3815:54;-1:-1:-1;;;;;;;;;;;3815:54:68;;;;;;;;632:46320;-1:-1:-1;632:46320:68;;-1:-1:-1;;;3928:54:68;;1124:42;632:46320;3928:54;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;3928:54;-1:-1:-1;;;;;;;;;;;3928:54:68;;;;;;;;632:46320;4147:15;4165:6;4147:15;1049:42;4147:15;;1049:42;;;;;;;1124;3993:189;;;;632:46320;;-1:-1:-1;;;3993:189:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;3993:189;;632:46320;1049:42;1590:14:0;1049:42:68;;632:46320;-1:-1:-1;;;;;632:46320:68;1049:42;;632:46320;2632:20;1049:42;;;;;3993:189;632:46320;2949:49;632:46320;3993:189;1124:42;3993:189;;;;;;;;;;;632:46320;-1:-1:-1;;3034:52:68;1669:42;-1:-1:-1;;;;;632:46320:68;1124:42;4193:201;;;;632:46320;;4193:201;632:46320;;;1590:14:0;;;;;;;;4193:201:68;;632:46320;4193:201;;;:::i;:::-;;;;1124:42;4193:201;;;;;;;;;;;632:46320;1049:42;4470:224;1124:42;4470:224;;;;632:46320;;-1:-1:-1;;;4470:224:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;4470:224;;632:46320;1049:42;1590:14:0;1049:42:68;;632:46320;-1:-1:-1;;;;;632:46320:68;1049:42;;632:46320;2632:20;1049:42;;;;;4470:224;632:46320;2949:49;632:46320;4470:224;1124:42;4470:224;;;;;;;;;;;632:46320;1049:42;4705:224;1124:42;4705:224;;;;632:46320;;-1:-1:-1;;;4705:224:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;4705:224;;632:46320;1049:42;1590:14:0;1049:42:68;;632:46320;-1:-1:-1;;;;;632:46320:68;1049:42;;632:46320;2632:20;1049:42;;;;;4705:224;632:46320;2949:49;632:46320;4705:224;1124:42;4705:224;;;;;;;;;;;632:46320;-1:-1:-1;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;4996:66:68;;1124:42;632:46320;4996:66;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;1590:14:0;-1:-1:-1;;;;;632:46320:68;4996:66;;;;;;;;632:46320;-1:-1:-1;2890:49:68;1747:42;-1:-1:-1;;;;;632:46320:68;1124:42;5072:236;;;;632:46320;;5072:236;632:46320;;;1590:14:0;;;;;;;;5072:236:68;;632:46320;5072:236;;;:::i;:::-;;;;1124:42;5072:236;;;;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;5367:66:68;;1124:42;632:46320;5367:66;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;1590:14:0;-1:-1:-1;;;;;632:46320:68;5367:66;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;-1:-1:-1;;;;;632:46320:68;1124:42;5443:236;;;;632:46320;;5443:236;632:46320;;;1590:14:0;;;;;;;;5443:236:68;;632:46320;5443:236;;;:::i;:::-;;;;1124:42;5443:236;;;;;;;;;;;632:46320;-1:-1:-1;;2890:49:68;1747:42;-1:-1:-1;;;;;632:46320:68;1124:42;5755:195;;;;632:46320;;5755:195;632:46320;;;1590:14:0;;;;;;;;5755:195:68;;632:46320;5755:195;;;:::i;:::-;;;;1124:42;5755:195;;;;;;;;;;;632:46320;-1:-1:-1;;3188:49:68;1442:42;-1:-1:-1;;;;;632:46320:68;1124:42;6026:195;;;;632:46320;;6026:195;632:46320;;;1590:14:0;;;;;;;;6026:195:68;;632:46320;6026:195;;;:::i;:::-;;;;1124:42;6026:195;;;;;;;;;;;632:46320;-1:-1:-1;;3034:52:68;1669:42;-1:-1:-1;;;;;632:46320:68;1124:42;6297:196;;;;632:46320;;-1:-1:-1;;;6297:196:68;;632:46320;;;;;;;6297:196;;632:46320;;6297:196;;;:::i;:::-;;;;1124:42;6297:196;;;;;;;;632:46320;-1:-1:-1;;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;6673:69:68;;-1:-1:-1;;;;;632:46320:68;;;;6673:69;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;6673:69;-1:-1:-1;;;;;;;;;;;6673:69:68;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;6753:69:68;;-1:-1:-1;;;;;632:46320:68;;;;6753:69;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;6753:69;-1:-1:-1;;;;;;;;;;;6753:69:68;;;;;;;;632:46320;-1:-1:-1;3034:52:68;1669:42;632:46320;;-1:-1:-1;;;6833:71:68;;-1:-1:-1;;;;;632:46320:68;;;;6833:71;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;6833:71;-1:-1:-1;;;;;;;;;;;6833:71:68;;;;;;;;632:46320;-1:-1:-1;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;6956:52:68;;6978:14;632:46320;6956:52;;632:46320;3402:4;1590:14:0;1049:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;6956:52;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;7052:53:68;;7074:15;632:46320;7052:53;;632:46320;3402:4;1590:14:0;1049:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;7052:53;;;;;;;;632:46320;-1:-1:-1;3034:52:68;1669:42;632:46320;;-1:-1:-1;;;7150:59:68;;7173:20;632:46320;7150:59;;632:46320;3402:4;1590:14:0;1049:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;7150:59;;;;;;;;632:46320;-1:-1:-1;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;7301:309:68;;-1:-1:-1;;;;;632:46320:68;;;;7301:309;;632:46320;7407:12;1590:14:0;1049:42:68;;632:46320;;;;1049:42;;632:46320;7545:11;2632:20;1049:42;;632:46320;1590:14:0;632:46320:68;2949:49;632:46320;7301:309;1049:42;7301:309;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;7621:298:68;;-1:-1:-1;;;;;632:46320:68;;;;7621:298;;632:46320;7727:13;1590:14:0;1049:42:68;;632:46320;;;;1049:42;;632:46320;7853:12;2632:20;1049:42;;632:46320;1590:14:0;632:46320:68;2949:49;632:46320;7621:298;1049:42;7621:298;;;;;;;;632:46320;-1:-1:-1;3034:52:68;1669:42;632:46320;;-1:-1:-1;;;7930:299:68;;-1:-1:-1;;;;;632:46320:68;;;;7930:299;;632:46320;7727:13;1590:14:0;1049:42:68;;632:46320;;;;1049:42;;632:46320;7853:12;2632:20;1049:42;;632:46320;1590:14:0;632:46320:68;2949:49;632:46320;7930:299;1049:42;7930:299;;;;;;;;632:46320;;;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3402:4:68;1590:14:0;27501:38:3;;632:46320:68;1590:14:0;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;1669:42;632:46320;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;1669:42;632:46320;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;1590:14:0;632:46320:68;;;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;1590:14:0;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;1590:14:0;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;632:46320:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;3409:17;632:46320;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;632:46320:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;632:46320:68;16720:176:8;;;14785:4;;;:::i;:::-;632:46320:68;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3402:4:68;1590:14:0;27501:38:3;;632:46320:68;1590:14:0;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;;;;;;;1984:42:68;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;1669:42;632:46320;-1:-1:-1;;;632:46320:68;;;;;;;7505:10:8;632:46320:68;;;1669:42;632:46320;;:::i;:::-;;;;;;;;6854:12:8;632:46320:68;;7009:9:8;632:46320:68;;1590:14:0;15610:11:8;632:46320:68;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;;;1590:14:0;632:46320:68;;;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;632:46320:68;;1590:14:0;632:46320:68;;15610:11:8;632:46320:68;;;15703:77:8;632:46320:68;;15702:78:8;15698:126;;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1747:42;632:46320;;;;;;;;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;632:46320:68;;1590:14:0;632:46320:68;;;;;15943:15:8;7505:10;15943:15;;632:46320:68;15961:16:8;7009:9;15961:16;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;632:46320:68;;;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;632:46320:68;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;632:46320:68;;;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;7074:15;632:46320;;;12656:92:8;;;;12810:59;;;632:46320:68;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;632:46320:68;16678:31:8;;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;632:46320:68;16720:176:8;;;14785:4;;;:::i;:::-;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;8504:69:68;;-1:-1:-1;;;;;632:46320:68;;;;8504:69;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;8504:69;-1:-1:-1;;;;;;;;;;;8504:69:68;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;8632:69:68;;-1:-1:-1;;;;;632:46320:68;;;;8632:69;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;8632:69;-1:-1:-1;;;;;;;;;;;8632:69:68;;;;;;;;632:46320;-1:-1:-1;2890:49:68;1747:42;632:46320;;-1:-1:-1;;;8763:55:68;;3409:17;632:46320;8763:55;;632:46320;3402:4;1590:14:0;1049:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;8763:55;;;;;;;;632:46320;-1:-1:-1;3188:49:68;1442:42;632:46320;;-1:-1:-1;;;8866:53:68;;7074:15;632:46320;8866:53;;632:46320;3402:4;1590:14:0;1049:42:68;;632:46320;;1590:14:0;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;8866:53;;;;;;;;632:46320;-1:-1:-1;632:46320:68;;-1:-1:-1;;;8930:71:68;;808:42;632:46320;8930:71;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;8930:71;-1:-1:-1;;;;;;;;;;;8930:71:68;;;;;;;;632:46320;-1:-1:-1;632:46320:68;;-1:-1:-1;;;9012:71:68;;808:42;632:46320;9012:71;;632:46320;-1:-1:-1;;1590:14:0;1442:42:68;;632:46320;1590:14:0;632:46320:68;;;9012:71;-1:-1:-1;;;;;;;;;;;9012:71:68;;;;;;;;632:46320;9094:53;-1:-1:-1;;;;;;;;;;;9094:53:68;;;;632:46320;;;1590:14:0;;;9094:53:68;;808:42;632:46320;9094:53;;632:46320;;1590:14:0;1049:42:68;;;7009:9:8;632:46320:68;1049:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1049:42;9094:53;;2949:49;9094:53;;-1:-1:-1;;;;;;;;;;;9094:53:68;;;;;;;;632:46320;-1:-1:-1;2779:6:68;793:59;-1:-1:-1;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;9157:50:68;;;;632:46320;;1590:14:0;;;;9157:50:68;;632:46320;9157:50;;632:46320;;1590:14:0;1049:42:68;;;;632:46320;1049:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1049:42;9157:50;;2949:49;9157:50;;-1:-1:-1;;;;;;;;;;;9157:50:68;;;;;;;;632:46320;-1:-1:-1;2675:166:68;1049:42;-1:-1:-1;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;9217:51:68;;;;632:46320;;1590:14:0;;;;9217:51:68;;632:46320;9217:51;;632:46320;;1590:14:0;1049:42:68;;;;632:46320;1049:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1049:42;9217:51;;2949:49;9217:51;;-1:-1:-1;;;;;;;;;;;9217:51:68;;;;;;;;632:46320;9278:48;;-1:-1:-1;;;;;;;;;;;9278:48:68;;;;632:46320;;;1590:14:0;;;9278:48:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;9278:48;;632:46320;;1590:14:0;1364:42:68;;;6854:12:8;632:46320:68;1364:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1364:42;9278:48;;2949:49;9278:48;;-1:-1:-1;;;;;;;;;;;9278:48:68;;;;;;;;632:46320;9336:34;;-1:-1:-1;;;;;;;;;;;9336:34:68;;;;632:46320;;;1590:14:0;;;9336:34:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;9336:34;;632:46320;;1590:14:0;1364:42:68;;;;632:46320;1364:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1364:42;9336:34;;2949:49;9336:34;;-1:-1:-1;;;;;;;;;;;9336:34:68;;;;;;;;632:46320;9380:122;;-1:-1:-1;;;;;;;;;;;9380:122:68;;;;632:46320;;;1590:14:0;;;9380:122:68;;1271:42;632:46320;9380:122;;632:46320;;1590:14:0;1271:42:68;;;2675:166;632:46320;1271:42;;632:46320;1271:42;2632:20;632:46320;;1271:42;-1:-1:-1;;;2949:49:68;1271:42;;;9380:122;;;;;-1:-1:-1;;;;;;;;;;;9380:122:68;;;;;;;;632:46320;9512:120;;-1:-1:-1;;;;;;;;;;;9512:120:68;;;;632:46320;;;1590:14:0;;;9512:120:68;;1590:42;632:46320;9512:120;;632:46320;;1590:14:0;:42:68;;;:14:0;632:46320:68;1590:42;;632:46320;1590:42;2632:20;632:46320;;1590:42;-1:-1:-1;;;2949:49:68;1590:42;;;9512:120;;9380:122;9512:120;;-1:-1:-1;;;;;;;;;;;9512:120:68;;;;;;;;632:46320;9642:36;;-1:-1:-1;;;;;;;;;;;9642:36:68;;;;632:46320;;;1590:14:0;;;9642:36:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;9642:36;;632:46320;;1590:14:0;:42:68;;;;632:46320;1590:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1590:42;9642:36;;2949:49;9642:36;;-1:-1:-1;;;;;;;;;;;9642:36:68;;;;;;;;632:46320;9688:34;;-1:-1:-1;;;;;;;;;;;9688:34:68;;;;632:46320;;;1590:14:0;;;9688:34:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;9688:34;;632:46320;;1590:14:0;:42:68;;;1364;632:46320;1590:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1590:42;9688:34;;2949:49;9688:34;;-1:-1:-1;;;;;;;;;;;9688:34:68;;;;;;;;632:46320;9732:126;;-1:-1:-1;;;;;;;;;;;9732:126:68;;;;632:46320;;;1590:14:0;;;9732:126:68;;1906:42;632:46320;9732:126;;632:46320;;1590:14:0;1906:42:68;;;2890:49;632:46320;1906:42;;632:46320;1906:42;2632:20;632:46320;;1906:42;-1:-1:-1;;;2949:49:68;1906:42;;;9732:126;;9380:122;9732:126;;-1:-1:-1;;;;;;;;;;;9732:126:68;;;;;;;;632:46320;9868:34;;-1:-1:-1;;;;;;;;;;;9868:34:68;;;;632:46320;;;1590:14:0;;;9868:34:68;;-1:-1:-1;;;;;;;;;;;632:46320:68;9868:34;;632:46320;;1590:14:0;1906:42:68;;;1364;632:46320;1906:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;1906:42;9868:34;;2949:49;9868:34;;-1:-1:-1;;;;;;;;;;;9868:34:68;;;;;;;;632:46320;9912:38;;-1:-1:-1;;;;;;;;;;;9912:38:68;;;;632:46320;;;1590:14:0;;;9912:38:68;;2064:42;632:46320;9912:38;;632:46320;;1590:14:0;2064:42:68;;;;632:46320;2064:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;2064:42;9912:38;;2949:49;9912:38;;-1:-1:-1;;;;;;;;;;;9912:38:68;;;;;;;;632:46320;9960:56;;-1:-1:-1;;;;;;;;;;;9960:56:68;;;;632:46320;;-1:-1:-1;;;9960:56:68;;632:46320;;;;;9960:56;632:46320;9960:56;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;9960:56:68;;;;;;;;632:46320;10026:56;;-1:-1:-1;;;;;;;;;;;10026:56:68;;;;632:46320;;-1:-1:-1;;;10026:56:68;;632:46320;;;;;10026:56;632:46320;10026:56;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;10026:56:68;;;;;;;;632:46320;10092:28;;-1:-1:-1;;;;;;;;;;;10092:28:68;;;;632:46320;;;1590:14:0;;;10092:28:68;;1124:42;632:46320;10092:28;;632:46320;;1590:14:0;2161:42:68;;;1590:14:0;632:46320:68;2161:42;;632:46320;-1:-1:-1;;;2632:20:68;632:46320;;2161:42;10092:28;;2949:49;10092:28;;-1:-1:-1;;;;;;;;;;;10092:28:68;;;;;;;;632:46320;;10092:28;;;;;:::i;:::-;632:46320;;10092:28;632:46320;10026:56;;;;;:::i;:::-;632:46320;;10026:56;;;;9960;;;;;:::i;:::-;632:46320;;9960:56;;;;9912:38;;;;;:::i;:::-;632:46320;;9912:38;;;;9868:34;;;;;:::i;:::-;632:46320;;9868:34;;;;9732:126;;;;;:::i;:::-;632:46320;;9732:126;;;;9688:34;;;;;:::i;:::-;632:46320;;9688:34;;;;9642:36;;;;;:::i;:::-;632:46320;;9642:36;;;;9512:120;;;;;:::i;:::-;632:46320;;9512:120;;;;9380:122;;;;;:::i;:::-;632:46320;;9380:122;;;;9336:34;;;;;:::i;:::-;632:46320;;9336:34;;;;9278:48;;;;;:::i;:::-;632:46320;;9278:48;;;;9217:51;;;;;:::i;:::-;632:46320;;9217:51;;;;;632:46320;;9157:50;;;;;:::i;:::-;632:46320;;9157:50;;;;9094:53;;;;;:::i;:::-;632:46320;;9094:53;;;;9012:71;;;1590:14:0;9012:71:68;1590:14:0;9012:71:68;;;;;;;:::i;:::-;;;8930;;;1590:14:0;8930:71:68;1590:14:0;8930:71:68;;;;;;;:::i;:::-;;;8866:53;1590:14:0;8866:53:68;;1590:14:0;8866:53:68;;;;;;1590:14:0;8866:53:68;;;:::i;:::-;;;1590:14:0;;;;;8866:53:68;;;;;-1:-1:-1;8866:53:68;;8763:55;1590:14:0;8763:55:68;;1590:14:0;8763:55:68;;;;;;1590:14:0;8763:55:68;;;:::i;:::-;;;1590:14:0;;;;;8763:55:68;;;;;-1:-1:-1;8763:55:68;;8632:69;;;1590:14:0;8632:69:68;1590:14:0;8632:69:68;;;;;;;:::i;:::-;;;8504;;;1590:14:0;8504:69:68;1590:14:0;8504:69:68;;;;;;;:::i;:::-;;;16720:176:8;632:46320:68;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;632:46320:68;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;632:46320:68;;;;16769:41:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;7074:15:68;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;1590:14:0;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;1590:14:0;16314:19:8;;;;;15938:460;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;1984:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;7074:15:68;16103:21:8;12810:59;;;15938:460;;;;;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;1590:14:0;632:46320:68;;16724:29:8;3409:17:68;16736::8;;;;16724:29;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;1590:14:0;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;1590:14:0;16314:19:8;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;1984:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;3409:17:68;16103:21:8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;7930:299:68;1590:14:0;7930:299:68;;1590:14:0;7930:299:68;;;;;;1590:14:0;7930:299:68;;;:::i;:::-;;;1590:14:0;;;;;7930:299:68;;;;;-1:-1:-1;7930:299:68;;7621:298;1590:14:0;7621:298:68;;1590:14:0;7621:298:68;;;;;;1590:14:0;7621:298:68;;;:::i;:::-;;;1590:14:0;;;;;7621:298:68;;;;;-1:-1:-1;7621:298:68;;7301:309;1590:14:0;7301:309:68;;1590:14:0;7301:309:68;;;;;;1590:14:0;7301:309:68;;;:::i;:::-;;;1590:14:0;;;;;7301:309:68;;;;;-1:-1:-1;7301:309:68;;7150:59;1590:14:0;7150:59:68;;1590:14:0;7150:59:68;;;;;;1590:14:0;7150:59:68;;;:::i;:::-;;;1590:14:0;;;;;7150:59:68;;;;;-1:-1:-1;7150:59:68;;7052:53;1590:14:0;7052:53:68;;1590:14:0;7052:53:68;;;;;;1590:14:0;7052:53:68;;;:::i;:::-;;;1590:14:0;;;;;7052:53:68;;;;;-1:-1:-1;7052:53:68;;6956:52;1590:14:0;6956:52:68;;1590:14:0;6956:52:68;;;;;;1590:14:0;6956:52:68;;;:::i;:::-;;;1590:14:0;;;;;6956:52:68;;;;;-1:-1:-1;6956:52:68;;6833:71;;;1590:14:0;6833:71:68;1590:14:0;6833:71:68;;;;;;;:::i;:::-;;;6753:69;;;1590:14:0;6753:69:68;1590:14:0;6753:69:68;;;;;;;:::i;:::-;;;6673;;;1590:14:0;6673:69:68;1590:14:0;6673:69:68;;;;;;;:::i;:::-;;;6297:196;;;;;:::i;:::-;632:46320;;6297:196;;;;;632:46320;;;6026:195;;;;;:::i;:::-;632:46320;;6026:195;;;;5755;;;;;:::i;:::-;632:46320;;5755:195;;;;5443:236;;;;;:::i;:::-;632:46320;;5443:236;;;;5367:66;;;1590:14:0;5367:66:68;1590:14:0;5367:66:68;;;;;;;:::i;:::-;;;5072:236;;;;;:::i;:::-;632:46320;;5072:236;;;;4996:66;;;1590:14:0;4996:66:68;1590:14:0;4996:66:68;;;;;;;:::i;:::-;;;4705:224;;;;;:::i;:::-;632:46320;;4705:224;;;;4470;;;;;:::i;:::-;632:46320;;4470:224;;;;4193:201;;;;;:::i;:::-;632:46320;;4193:201;;;;3993:189;;;;;:::i;:::-;632:46320;;3993:189;;;;3928:54;;;1590:14:0;3928:54:68;1590:14:0;3928:54:68;;;;;;;:::i;:::-;;;3815;;;1590:14:0;3815:54:68;1590:14:0;3815:54:68;;;;;;;:::i;:::-;;;3691:58;;;1590:14:0;3691:58:68;1590:14:0;3691:58:68;;;;;;;:::i;:::-;;;3626:55;;;1590:14:0;3626:55:68;1590:14:0;3626:55:68;;;;;;;:::i;:::-;;;16724:29:8;3594:21:68;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;1590:14:0;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;1590:14:0;16314:19:8;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;1984:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;3594:21:68;16103::8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;16724:29;3533:17:68;16736::8;;;;16724:29;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;1590:14:0;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;1590:14:0;16314:19:8;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;1984:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;3533:17:68;16103:21:8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;16724:29;3409:17:68;16736::8;;;;16724:29;;;16587:43;;;;;:::i;:::-;632:46320:68;;16587:43:8;;;;16424:32;;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;632:46320:68;;;;16314:19:8;;632:46320:68;;;16314:19:8;632:46320:68;1590:14:0;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;1590:14:0;16314:19:8;;;;;632:46320:68;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;12810:59:8;;;-1:-1:-1;;;1984:42:68;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;3409:17:68;16103:21:8;12810:59;;;15938:460;;;;;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;3247:49:68;;;;;:::i;:::-;632:46320;;3247:49;;;;3204:33;632:46320;;;1590:14:0;;;;;;;;3204:33:68;-1:-1:-1;;;632:46320:68;;;;;1590:14:0;632:46320:68;;3096:51;;;;;:::i;:::-;632:46320;;3096:51;;;;2949:49;;;;632:46320;2949:49;;:::i;:::-;632:46320;2949:49;;;;632:46320;;1590:14:0;632:46320:68;1590:14:0;;;;;2906:33:68;632:46320;;;;;;;;1590:14:0;632:46320:68;;2612:52;1590:14:0;2612:52:68;;1590:14:0;2612:52:68;;;;;;1590:14:0;2612:52:68;;;:::i;:::-;;;1590:14:0;;;;;2612:52:68;;;;;-1:-1:-1;2612:52:68;;2632:20;;;;;;632:46320;2632:20;;;;;;:::i;:::-;;;;632:46320;;;;;;-1:-1:-1;;632:46320:68;;;;;;:::i;:::-;;;735:10:34;;9813:19:28;9809:89;;-1:-1:-1;;;;;632:46320:68;;9911:21:28;;9907:90;;735:10:34;632:46320:68;;10006:11:28;632:46320:68;;;;;;;;;;;;;;;;;;;;10085:31:28;632:46320:68;735:10:34;10085:31:28;;632:46320:68;;;;;;;9907:90:28;9955:31;;;632:46320:68;9955:31:28;632:46320:68;;;;;9955:31:28;9809:89;9855:32;;;632:46320:68;9855:32:28;632:46320:68;;;;;9855:32:28;632:46320:68;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;1856:5:28;632:46320:68;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1856:5:28;632:46320:68;;;;;;;-1:-1:-1;632:46320:68;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;-1:-1:-1;;632:46320:68;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;:::o;:::-;2260:42;632:46320;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;:::o;:::-;;;27501:38:3;;632:46320:68;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:46320:68;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:46320:68;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;:::o;:::-;27501:38:3;;;;;632:46320:68;27501:38:3;632:46320:68;;27501:38:3;;;632:46320:68;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;7505:10:8;632:46320:68;;;;;;7505:10:8;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;-1:-1:-1;632:46320:68;:::o;:::-;;;;;;;;;;;;;534:59:65;632:46320:68;;;;;;534:59:65;-1:-1:-1;632:46320:68;;-1:-1:-1;632:46320:68;;;-1:-1:-1;632:46320:68;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;632:46320:68;;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;;;;:::o;523:5:65:-;;;;;;;:::o;:::-;632:46320:68;;;523:5:65;;;;;;;;8534:180;632:46320:68;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;632:46320:68;8655:52:65;;:::i;:::-;8534:180;:::o;523:5::-;632:46320:68;;;-1:-1:-1;523:5:65;;;;;-1:-1:-1;523:5:65;1590:14:0;-1:-1:-1;;;;;1590:14:0;;;;632:46320:68;;-1:-1:-1;;632:46320:68;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;632:46320:68;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;632:46320:68;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;632:46320:68;1590:14:0:o;1442:42:68:-;;;;;;;;;;632:46320;;;;;;;1442:42;:::o;1049:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:46320:68;;;;;1049:42;;;;632:46320;1049:42;;;632:46320;;;;1049:42;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;1049:42;;;632:46320;1049:42;;;632:46320;;;;1049:42;;;;;;;;;;;:::o;2161:::-;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;2161:42;;;;;;;;;632:46320;-1:-1:-1;;;632:46320:68;;;2161:42;;;:::o;2260:::-;;;;;;;;;;;-1:-1:-1;;;;;2260:42:68;;;;;;;;;;;;;;;;;;;:::i;:::-;632:46320;;;;;;;:::i;:::-;2260:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;2260:42:68;;;;;;;;;;;632:46320;;2260:42;;;;;;:::o;:::-;632:46320;;26313:13;2260:42;;;;;;;:::o;:::-;632:46320;;2260:42;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;632:46320;;;;:::i;:::-;2260:42;;;1590:14:0;;;2260:42:68;;;1590:14:0;2260:42:68;;;:::o;:::-;;;;;;;;;;;632:46320;;;;;;;:::i;:::-;1590:14:0;;2260:42:68;;;;;1590:14:0;2260:42:68;;;;;;:::i;:::-;632:46320;2260:42;;;;:::o;:::-;632:46320;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;2260:42;;;632:46320;-1:-1:-1;2260:42:68;;;;;;;632:46320;;;;2260:42;;;:::o;:::-;;;;;;;;;;:::o;632:46320::-;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2260:42;;;;632:46320;;-1:-1:-1;;;;;;;;;;;632:46320:68;;;;-1:-1:-1;;;;;;;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;632:46320:68;;;;;;;1325:14:1;:::o;1298:143::-;632:46320:68;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;632:46320:68;192:59:1;;;;;;632:46320:68;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;632:46320:68;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;632:46320:68;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;46475:475;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;46475:475;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46475:475;46778:2;46767:13;;46763:94;;46475:475;632:46320;;;;;;;;46475:475;:::o;46763:94::-;-1:-1:-1;;2260:42:68;;;-1:-1:-1;2260:42:68;;;;46763:94;;;46676:78;3663:17;-1:-1:-1;;2260:42:68;;;;;;;46676:78;;;46578:23;;;;;;;;;;;;;;;;:::i;:::-;;;632:46320;;;;;;;;;;;;;46578:23;;;;;;-1:-1:-1;46578:23:68;;46475:475;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;:::-;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;:::-;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;:::-;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;:::-;632:46320;;-1:-1:-1;;;46578:23:68;;;632:46320;46578:23;632:46320;-1:-1:-1;;;;;;;;;;;46578:23:68;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;:::-;632:46320;;-1:-1:-1;;;46578:23:68;;632:46320;46578:23;;632:46320;;46578:23;;632:46320;;-1:-1:-1;;;;;632:46320:68;46578:23;;;;;;-1:-1:-1;46578:23:68;;;632:46320;;;;46559:42;46691:1;46680:12;;46676:78;;46778:2;46767:13;;46763:94;;632:46320;;;;;;;;46475:475;:::o;2270:110:1:-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;632:46320:68;;1590:14:0;;;;2349:24:1;;;;;632:46320:68;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;:::-;2270:110::o;46277:192:68:-;-1:-1:-1;;;;;;;;;;;46430:32:68;;;;632:46320;;1590:14:0;;;46430:32:68;;46447:1;46430:32;;;632:46320;46447:1;632:46320;;;;46447:1;46430:32;;;;-1:-1:-1;;;;;;;;;;;46430:32:68;;;;;;;;46277:192;:::o;13112:110:1:-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;632:46320:68;;1590:14:0;;;;13191:24:1;;;;;632:46320:68;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;5393:300:28:-;-1:-1:-1;;;;;632:46320:68;;5476:18:28;;5472:86;;-1:-1:-1;;;;;632:46320:68;;5571:16:28;;5567:86;;632:46320:68;5492:1:28;632:46320:68;6307:9:28;632:46320:68;;;5492:1:28;632:46320:68;;6340:19:28;;;6336:115;;632:46320:68;7083:25:28;632:46320:68;6307:9:28;632:46320:68;;5492:1:28;632:46320:68;;;;;;5492:1:28;632:46320:68;;;5492:1:28;632:46320:68;;;;;5492:1:28;632:46320:68;;;;;;;;;;;;7083:25:28;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;632:46320:68;;;;;;5492:1:28;6386:50;5567:86;5610:32;;;5492:1;5610:32;5492:1;5610:32;632:46320:68;2260:42;5492:1:28;5610:32;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;632:46320:68;2260:42;5492:1:28;5517:30;2915:199:11;16419:15:68;16409:8;3033:19:11;2915:199;3033:19;:::i;:::-;632:46320:68;9766:7:11;632:46320:68;10418:54:11;632:46320:68;;;;;;:::i;2915:199:11:-;40835:15:68;40825:8;3033:19:11;2915:199;3033:19;:::i;8720:323:65:-;632:46320:68;8906:3:65;632:46320:68;;8881:23:65;;;;;8929:15;;;;:::i;:::-;632:46320:68;;;;;;;;8929:29:65;8925:79;;632:46320:68;;8866:13:65;;8925:79;8978:11;;632:46320:68;8978:11:65;:::o;632:46320:68:-;;;;;2260:42;;;;;632:46320;2260:42;8881:23:65;;;632:46320:68;8720:323:65;:::o;:::-;632:46320:68;8906:3:65;632:46320:68;;8881:23:65;;;;;8929:15;;;;:::i;:::-;632:46320:68;;;;;;;2531:24:65;8929:29;8925:79;;632:46320:68;;8866:13:65;;8720:323;632:46320:68;8906:3:65;632:46320:68;;8881:23:65;;;;;8929:15;;;;:::i;:::-;632:46320:68;;;;;;;6005:21:65;8929:29;8925:79;;632:46320:68;;8866:13:65;;5926:434:58;632:46320:68;;6065:47:58;;;;1590:14:0;;;;6065:47:58;;632:46320:68;;;;;;6065:47:58;;;;;632:46320:68;3663:17;;1442:42;;;632:46320;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;632:46320:68;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;632:46320:68;-1:-1:-1;6065:47:58;632:46320:68;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;632:46320:68;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;632:46320:68;;;;;1590:14:0;632:46320:68;;:::i;:::-;;;;-1:-1:-1;;;632:46320:68;;;;;;;;;:::o;1911:4479:65:-;;;;;;632:46320:68;;-1:-1:-1;;;2117:44:65;;;;;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;2260:42;;;632:46320;1911:4479:65;;;;;2117:44;632:46320:68;;2260:42;;;2117:44:65;;;;;632:46320:68;2117:44:65;-1:-1:-1;;;;;632:46320:68;;2117:44:65;;;;;;:47;:44;;;;;:47;;:::i;:::-;632:46320:68;;;-1:-1:-1;632:46320:68;1590:14:0;;;632:46320:68;;2174:61:65;;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;2174:61:65;;;:::i;:::-;1590:14:0;;632:46320:68;986:7:15;632:46320:68;44640:78:15;632:46320:68;;;1590:14:0;;632:46320:68;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;632:46320:68;44640:78:15;;;632:46320:68;;;;;;:::i;:::-;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;986:7::-;632:46320:68;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;2260:42;;;632:46320;2117:44:65;632:46320:68;;2260:42;;;2467:50:65;632:46320:68;;-1:-1:-1;;;;;632:46320:68;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;2260:42:68;632:46320;;;;;;;:::i;:::-;2117:44:65;2260:42:68;;;;1590:14:0;2260:42:68;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;2260:42:68;8433:4:65;523:5;;;8412:25;;;:::i;:::-;2260:42:68;632:46320;;965:19:15;2260:42:68;;;;1590:14:0;;2260:42:68;;523:5:65;;8420:1;523:5;2260:42:68;;632:46320;;8487:1:65;2260:42:68;;;;;;632:46320;2260:42;;;632:46320;;-1:-1:-1;;;2822:49:65;;632:46320:68;2117:44:65;632:46320:68;;2822:49:65;2260:42:68;2822:49:65;;;2117:44;2822:49;;;:::i;:::-;;632:46320:68;;-1:-1:-1;;;;;632:46320:68;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;632:46320:68;;-1:-1:-1;;2260:42:68;;;3663:17;2260:42;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;632:46320:68;;;1590:14:0;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;632:46320:68;;-1:-1:-1;;2260:42:68;;;3663:17;2260:42;;;;12247:66:15;632:46320:68;3204:25:65;3190:40;3204:25;986:7:15;3204:25:65;;;:::i;3190:40::-;1590:14:0;;632:46320:68;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;632:46320:68;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;27501:38:3;;12247:66:15;;;;;;:::i;986:7::-;1590:14:0;;632:46320:68;;3251:53:65;;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;632:46320:68;;;1590:14:0;;;632:46320:68;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;632:46320:68;;;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;632:46320:68;;;;3514:49:65;632:46320:68;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;632:46320:68;;;3514:49:65;:::i;:::-;632:46320:68;;;;;;:::i;:::-;2117:44:65;632:46320:68;;2117:44:65;1590:14:0;632:46320:68;;;;;;;;;;:::i;:::-;2117:44:65;632:46320:68;;;1590:14:0;632:46320:68;;;;;;;;;-1:-1:-1;;2260:42:68;;;;;;;3635:27:65;;;;:::i;:::-;632:46320:68;2260:42;523:5:65;;;;;;;;2117:44;632:46320:68;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;632:46320:68;44640:78:15;27501:38:3;;;632:46320:68;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1984:42:68;;-1:-1:-1;;;;;;1984:42:68;-1:-1:-1;;;;;632:46320:68;;1984:42;;;27524:10:3;632:46320:68;;7009:9:8;632:46320:68;;;7009:9:8;632:46320:68;7505:10:8;632:46320:68;-1:-1:-1;;;632:46320:68;;;;;;;8420:1:65;632:46320:68;;;7505:10:8;632:46320:68;;:::i;:::-;;;6854:12:8;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;7009:9:8;632:46320:68;15610:11:8;632:46320:68;;1590:14:0;;15653:34:8;;:::i;:::-;15703:15;;-1:-1:-1;;;;;632:46320:68;;;;;1747:42;632:46320;;;;;15703:15:8;;632:46320:68;;;;;;2117:44:65;632:46320:68;1590:14:0;632:46320:68;;;2117:44:65;632:46320:68;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;632:46320:68;15725:48:8;;2117:44:65;632:46320:68;1590:14:0;632:46320:68;;8487:1:65;632:46320:68;;2117:44:65;632:46320:68;15703:77:8;632:46320:68;;15702:78:8;15698:126;;8365:37:65;15857:15:8;;-1:-1:-1;;;;;632:46320:68;;;;;1747:42;632:46320;;;;;;2117:44:65;632:46320:68;1590:14:0;632:46320:68;15889:37:8;;632:46320:68;;2117:44:65;632:46320:68;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;632:46320:68;15879:48:8;;2117:44:65;632:46320:68;1590:14:0;632:46320:68;;;2117:44:65;632:46320:68;8420:1:65;15943:15:8;;632:46320:68;15961:16:8;965:19:15;15961:16:8;;632:46320:68;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;632:46320:68;;;;;-1:-1:-1;;;16424:32:8;;;;-1:-1:-1;;;;;632:46320:68;2117:44:65;16424:32:8;;632:46320:68;1442:42;;;632:46320;;;;;;;1590:14:0;632:46320:68;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;632:46320:68;;;-1:-1:-1;;;16587:43:8;;;;-1:-1:-1;;;;;632:46320:68;2117:44:65;16587:43:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;2260:42;523:5:65;;632:46320:68;;;12656:92:8;12810:59;;;632:46320:68;-1:-1:-1;632:46320:68;12810:59:8;632:46320:68;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;16678:31:8;;;:::i;:::-;16724:8;;632:46320:68;;;16724:29:8;;8365:37:65;16720:176:8;;;;14785:4;;;;:::i;:::-;632:46320:68;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;8365:37;-1:-1:-1;8420:1:65;3761:3;632:46320:68;;3741:18:65;;;;;986:7:15;632:46320:68;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;632:46320:68;;;;;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;632:46320:68;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;632:46320:68;;;;;;;:::i;:::-;;;;;;12952:65:15;27501:38:3;;12952:65:15;;;;;;:::i;986:7::-;3972:24:65;3986:9;;;;:::i;3972:24::-;986:7:15;632:46320:68;12771:66:15;4051:10:65;;;;:::i;:::-;632:46320:68;;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;632:46320:68;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;986:7::-;4166:10:65;632:46320:68;4166:10:65;;4093:97;4166:10;;;;:::i;:::-;632:46320:68;;;;-1:-1:-1;;;4093:97:65;;632:46320:68;;;;;2117:44:65;4093:97;;;:::i;:::-;;2117:44;;;632:46320:68;;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;632:46320:68;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;632:46320:68;523:5:65;;4244:52;:::i;:::-;632:46320:68;;;4349:11:65;;4335:26;:::i;:::-;632:46320:68;4375:60:65;632:46320:68;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;4375:60:65;:::i;:::-;4449;632:46320:68;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;4449:60:65;:::i;:::-;4523:61;632:46320:68;;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;4523:61:65;:::i;:::-;4599:1176;;;;;1590:14:0;;632:46320:68;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;632:46320:68;-1:-1:-1;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;4637:164:65;;:::i;:::-;1590:14:0;;632:46320:68;;;;1590:14:0;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;632:46320:68;;;;1590:14:0;632:46320:68;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;5013:164:65;;:::i;:::-;632:46320:68;;;1590:14:0;;;;5789:25:65;;632:46320:68;;2117:44:65;5789:25;;632:46320:68;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;632:46320:68;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;632:46320:68;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;632:46320:68;5216:173:65;5597:163;632:46320:68;;;:::i;:::-;5216:173:65;;;:::i;:::-;632:46320:68;;:::i;:::-;5407:172:65;;;:::i;:::-;632:46320:68;;;1590:14:0;632:46320:68;1590:14:0;;632:46320:68;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;632:46320:68;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;632:46320:68;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;632:46320:68;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;632:46320:68;;;-1:-1:-1;;;;;632:46320:68;;;2260:42;;;632:46320;;;;2260:42;;;632:46320;2117:44:65;;632:46320:68;523:5:65;;;;;632:46320:68;2117:44:65;;632:46320:68;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;632:46320:68;;;;;1590:14:0;;632:46320:68;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;6590:122:65;:::i;:::-;632:46320:68;;;;;;;;;;:::i;:::-;8420:1:65;2260:42:68;;632:46320;;-1:-1:-1;;2260:42:68;;1590:14:0;2260:42:68;;;6783:37:65;;;:::i;:::-;2260:42:68;632:46320;;;-1:-1:-1;;;6835:57:65;;2117:44;;632:46320:68;;6835:57:65;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;632:46320:68;;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;632:46320:68;6831:346:65;7259:18;:::i;:::-;632:46320:68;;7190:97:65;632:46320:68;;;1590:14:0;;;;;;;;;;7190:97:65;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;632:46320:68;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;632:46320:68;;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;632:46320:68;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;632:46320:68;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;632:46320:68;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;632:46320:68;;44640:78:15;632:46320:68;;;;;;;;-1:-1:-1;;;632:46320:68;;;;;;7302:61:65;7190:97;;;632:46320:68;7190:97:65;632:46320:68;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;1590:14:0;;632:46320:68;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;632:46320:68;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;632:46320:68;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;632:46320:68;;44640:78:15;632:46320:68;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;1590:14:0;;632:46320:68;;;7738:117:65;;632:46320:68;;;;;;;:::i;:::-;;;;;1590:14:0;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;7738:117:65;:::i;:::-;632:46320:68;;;;;;;;;;:::i;:::-;8420:1:65;2260:42:68;;632:46320;;-1:-1:-1;;2260:42:68;;1590:14:0;2260:42:68;;;7926:37:65;;;:::i;:::-;2260:42:68;632:46320;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;632:46320:68;;;;;;;7974:57:65;;;;;;;632:46320:68;;8110:18:65;;7974:57;;8110:18;;:::i;:::-;632:46320:68;;8041:97:65;632:46320:68;;;1590:14:0;;;;;;;;;;8041:97:65;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;632:46320:68;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;632:46320:68;8041:97:65;632:46320:68;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;632:46320:68;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;632:46320:68;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;16769:41:8;;-1:-1:-1;;;;;632:46320:68;2117:44:65;16769:41:8;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;632:46320:68;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;632:46320:68;44640:78:15;12810:59:8;;632:46320:68;12810:59:8;632:46320:68;;;12810:59:8;-1:-1:-1;;;632:46320:68;12810:59:8;;;632:46320:68;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;632:46320:68;;;;16769:41:8;;;632:46320:68;2117:44:65;;;632:46320:68;16724:29:8;2260:42:68;523:5:65;16736:17:8;;;-1:-1:-1;16724:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;632:46320:68;;16587:43:8;;;;632:46320:68;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;2260:42:68;16021:3:8;2260:42:68;;;;632:46320;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;632:46320:68;;2117:44:65;16314:19:8;;632:46320:68;-1:-1:-1;632:46320:68;44640:78:15;632:46320:68;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;632:46320:68;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;632:46320:68;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;;;632:46320:68;;;2117:44:65;632:46320:68;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;632:46320:68;523:5:65;2260:42:68;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;632:46320:68;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;632:46320:68;;;;;;44640:78:15;632:46320:68;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;632:46320:68:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;632:46320:68;;;;:::o;:::-;;;:::o;1142:78:11:-;;;;;;;:::o;1646:1263::-;632:46320:68;1764:10:11;;;;632:46320:68;;2070:8:11;;;;;;:20;;;1646:1263;2066:34;;2126:9;;;;:::i;:::-;1049:42:68;2138:1:11;1049:42:68;;;;;;;2334:1:11;2329:6;;;:18;;;1646:1263;2325:38;;-1:-1:-1;;2377:20:11;;;;:46;;1646:1263;2373:82;;2555:7;;;;;;2593;;;;;2628:11;2593:7;;:::i;:::-;2628:11;:::i;:::-;2657:8;;;2653:24;;2700:9;;;;:::i;:::-;-1:-1:-1;;2260:42:68;;;;;;;2551:352:11;1646:1263::o;2653:24::-;2667:10;;;:::o;2551:352::-;2730:173;;;;;;;;2551:352;;;;;1646:1263::o;2730:173::-;2772:7;;;;;;2807:11;2772:7;;;:::i;2807:11::-;2836:8;;;2832:24;;2879:9;;;;:::i;:::-;2138:1;1049:42:68;;;;;;;2730:173:11;;;;;;;2373:82;2260:42:68;;;;2432:23:11;2260:42:68;;;;2432:23:11;;:::i;2377:46::-;2260:42:68;;;2401:22:11;;2377:46;;2325:38;2356:7;;;;;;;;;:::i;2329:18::-;2339:8;;;;2329:18;;2066:34;2092:8;;;;;;:::o;2070:20::-;2082:8;;;;;2070:20;;632:46320:68;;;-1:-1:-1;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;6764:749:58;3256:31:33;;3304:55;;-1:-1:-1;;;;;632:46320:68;;;;2626:1:33;;;;3256:31;;2626:1;632:46320:68;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;632:46320:68;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;632:46320:68;;;6764:749:58:o;632:46320:68:-;;;-1:-1:-1;;;632:46320:68;;3256:31:33;632:46320:68;;;;;;;;;;;;;;-1:-1:-1;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;632:46320:68;;2117:44:65;632:46320:68;;;1590:14:0;;;;;;;;13326:29:1;;;;;632:46320:68;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;632:46320:68;13326:29:1;632:46320:68;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;632:46320:68;6669:42:15;986:7;6598:121;632:46320:68;;6669:42:15;;;;;;;;;;;;;;632:46320:68;;;;;;:::i;7546:145:15:-;;7629:54;986:7;7546:145;7629:54;632:46320:68;;10418:54:11;;;;;;7629::15;;;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;632:46320:68;15694:29:1;632:46320:68;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;632:46320:68:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;;;-1:-1:-1;;632:46320:68;;;;;;;;;-1:-1:-1;632:46320:68;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;7935:53;632:46320:68;7846:150:15;632:46320:68;986:7:15;7846:150;632:46320:68;;7935:53:15;;;;;;;;;;632:46320:68;7935:53:15;;;632:46320:68;;;;;;:::i;:::-;;;;-1:-1:-1;;632:46320:68;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;632:46320:68;1052:14:8;632:46320:68;;:::i;:::-;1052:14:8;;632:46320:68;;;;;;1109:10:8;632:46320:68;;;;;;1109:10:8;1077:1;632:46320:68;;1077:1:8;632:46320:68;;1077:1:8;632:46320:68;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;632:46320:68;523:5:65;;;;;;;632:46320:68;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;27501:38:3;;632:46320:68;;:::i;:::-;;2260:42;632:46320;;;2260:42;1077:1:8;11360:3;632:46320:68;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;632:46320:68;;11456:84:8;523:5:65;11456:84:8;;;;;632:46320:68;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;632:46320:68:-;;;;;1109:10:8;632:46320:68;;;;;;-1:-1:-1;632:46320:68;;;;;;;;1048:135:8;632:46320:68;;;;;;1052:14:8;632:46320:68;:::i;953:236:8:-;1052:14;;;632:46320:68;;;;;:::i;:::-;1052:21:8;;1109:10;;;;632:46320:68;;;;;;;;;;;;;;;1077:1:8;632:46320:68;;1077:1:8;632:46320:68;;1077:1:8;632:46320:68;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;632:46320:68;523:5:65;;;;;;;632:46320:68;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;27501:38:3;;632:46320:68;;:::i;:::-;;2260:42;632:46320;;;2260:42;1077:1:8;11360:3;632:46320:68;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;632:46320:68;;11456:84:8;523:5:65;11456:84:8;;;;;632:46320:68;11331:13:8;;632:46320:68;;;;;1109:10:8;632:46320:68;;;;;;-1:-1:-1;632:46320:68;;;;;;;;1048:135:8;632:46320:68;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;632:46320:68;1364:48:8;1381:9;632:46320:68;1590:14:0;;1364:48:8;632:46320:68;1392:19:8;1747:42:68;1392:19:8;:::i;:::-;632:46320:68;;1364:48:8;;;;;;632:46320:68;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;27501:38:3;;1364:48:8;;;;;;:::i;:::-;1458:12;632:46320:68;1458:29:8;;;-1:-1:-1;;;;;632:46320:68;1458:29:8;;;;;:::i;:::-;1540:11;632:46320:68;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;632:46320:68;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;632:46320:68;;;;;;;;;1364:48:8;632:46320:68;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;632:46320:68;523:5:65;;11142:1:8;523:5:65;;;;;;;;632:46320:68;;;11097:47:8;11078:3;632:46320:68;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;632:46320:68;1590:14:0;;1364:48:8;632:46320:68;1392:19:8;;;:::i;1364:48::-;632:46320:68;1458:12:8;;632:46320:68;1458:29:8;;;-1:-1:-1;;;;;632:46320:68;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;632:46320:68;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;632:46320:68;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;632:46320:68;;;;;;;;;1364:48:8;632:46320:68;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;632:46320:68;523:5:65;;11142:1:8;523:5:65;;;;;;;;632:46320:68;;;11097:47:8;11078:3;632:46320:68;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;632:46320:68;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;632:46320:68;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;632:46320:68;;;;4917:24:33;632:46320:68;2260:42;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;643:59:8;;;;;;;;;;;;;;;:::i;:::-;632:46320:68;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;632:46320:68;4397:9:8;632:46320:68;4438:11:8;632:46320:68;-1:-1:-1;;;;;632:46320:68;;;;;;1590:14:0;;4481:19:8;1747:42:68;4481:19:8;:::i;:::-;4551:15;632:46320:68;;;1747:42;632:46320;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;632:46320:68;4573:48:8;;632:46320:68;;;;;4438:11:8;632:46320:68;;;4551:77:8;632:46320:68;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;632:46320:68;;-1:-1:-1;;;4811:11:8;;632:46320:68;;4361:12:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;1747:42:68;4857:16:8;:::i;:::-;632:46320:68;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;632:46320:68;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;632:46320:68;;4951:12:8;;4984:74;632:46320:68;;12810:59:8;;;4984:74;;632:46320:68;4361:12:8;4984:74;;643:59;632:46320:68;4911:25:8;643:59;;632:46320:68;643:59:8;632:46320:68;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;632:46320:68;;5109:16:8;;;;;5178:8;632:46320:68;5178:8:8;;5165:22;5178:8;;:::i;:::-;632:46320:68;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;632:46320:68;;4361:12:8;5165:22;;632:46320:68;1442:42;;;632:46320;;;;;;;;;1442:42;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;632:46320:68;4361:12:8;632:46320:68;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;632:46320:68;;;4361:12:8;1978:27;;632:46320:68;;;1442:42;;;632:46320;;;;;;;1442:42;632:46320;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;1747:42:68;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;3663:17:68;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;632:46320:68;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;632:46320:68;;;;4361:12:8;2177:37;;632:46320:68;12810:59:8;;;632:46320:68;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;1747:42:68;2254:16:8;:::i;:::-;4361:12;632:46320:68;;;;-1:-1:-1;;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;632:46320:68;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;632:46320:68;;;;4361:12:8;2281:43;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;632:46320:68;;5520:25:8;632:46320:68;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;632:46320:68;;5998:29:8;;5994:84;;632:46320:68;;6319:8:8;632:46320:68;6101:89:8;643:59;632:46320:68;;6132:37:8;;632:46320:68;;;6132:37:8;;;632:46320:68;6132:37:8;;;;;:::i;:::-;632:46320:68;6122:48:8;;6180:8;;;;:::i;:::-;632:46320:68;;;;;;;643:59:8;632:46320:68;643:59:8;;632:46320:68;;643:59:8;;632:46320:68;643:59:8;;;632:46320:68;6101:89:8;6319:8;:::i;:::-;632:46320:68;;;;;643:59:8;632:46320:68;;;;;;-1:-1:-1;;;;;632:46320:68;;;;;4438:11:8;632:46320:68;;;2260:42;;632:46320;6302:58:8;;2260:42:68;;;632:46320;6302:58:8;;2260:42:68;;;643:59:8;6302:58;;643:59;632:46320:68;643:59:8;;632:46320:68;;;1747:42;632:46320;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;632:46320:68;6230:48:8;;632:46320:68;;;;;;;;;;;;;643:59:8;;632:46320:68;;4397:9:8;643:59;;632:46320:68;643:59:8;;;632:46320:68;;;;;643:59:8;;;;;;;;5089:1309;632:46320:68;;;1747:42;632:46320;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;632:46320:68;6461:48:8;;632:46320:68;;;;;4438:11:8;632:46320:68;;;6439:77:8;632:46320:68;;643:59:8;;;632:46320:68;6664:15:8;632:46320:68;;1747:42;632:46320;;;;;;;;;;6696:37:8;;632:46320:68;;;;;;6696:37:8;;;632:46320:68;6696:37:8;;;;;:::i;:::-;632:46320:68;6686:48:8;;632:46320:68;;;;;4249:2493:8;:::o;643:59::-;632:46320:68;;-1:-1:-1;;;643:59:8;;632:46320:68;4361:12:8;643:59;;;;4911:25;643:59;;632:46320:68;643:59:8;632:46320:68;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;632:46320:68;6051:8:8;5094:13;632:46320:68;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;632:46320:68;4361:12:8;632:46320:68;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;632:46320:68;;;4361:12:8;3216:27;;632:46320:68;1442:42;;;632:46320;;;;;;;;;;;;;1442:42;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;1747:42:68;3293:28:8;:::i;:::-;3372:29;;;;;1747:42:68;3372:29:8;:::i;:::-;4361:12;632:46320:68;;;;;;-1:-1:-1;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;632:46320:68;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;632:46320:68;;;;4361:12:8;3497:43;;632:46320:68;12810:59:8;;;632:46320:68;;;;12810:59:8;;;632:46320:68;;;;;;12810:59:8;632:46320:68;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;632:46320:68;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;632:46320:68;;3497:43:8;;;;632:46320:68;;;;3497:43:8;632:46320:68;;1590:14:0;632:46320:68;;1590:14:0;;;;3497:43:8;632:46320:68;;;3216:27:8;;;;632:46320:68;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;632:46320:68;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;632:46320:68;;2281:43:8;;;;;632:46320:68;;1590:14:0;632:46320:68;;1590:14:0;;;;2281:43:8;632:46320:68;;;2177:37:8;;;;;:::i;:::-;632:46320:68;;2177:37:8;;;;2102:65;;;;;1978:27;;;632:46320:68;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;5205:114;5256:44;;5290:8;;;;:::i;:::-;632:46320:68;;;;-1:-1:-1;;;;;632:46320:68;;;;1442:42;;;632:46320;;;;;;;;1442:42;;;;5256:44:8;;;;5205:114;;5165:22;;;;632:46320:68;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;5109:16;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;632:46320:68;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;632:46320:68;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;4811:11;;;;;632:46320:68;4811:11:8;;:::i;:::-;632:46320:68;4811:11:8;;;;4547:255;4720:15;;;;;632:46320:68;;1747:42;632:46320;;;;;;;;;;4752:37:8;;632:46320:68;;;;;;4752:37:8;;;632:46320:68;4752:37:8;;;;;:::i;:::-;632:46320:68;4742:48:8;;632:46320:68;;;;;;;4713:78:8;:::o;11586:239::-;1984:42:68;;;11652:12:8;632:46320:68;;11652:12:8;632:46320:68;;;11681:9:8;632:46320:68;;11681:9:8;632:46320:68;11707:10:8;632:46320:68;11645:19:8;11707:10;632:46320:68;;;;11586:239:8;632:46320:68;11645:19:8;11734:11;632:46320:68;;;11762:25:8;632:46320:68;;11762:25:8;632:46320:68;;11804:14:8;632:46320:68;;:::i;:::-;;;;11586:239:8;:::o;632:46320:68:-;;;;;;;;;11645:19:8;11804:14;632:46320:68;11586:239:8:o;632:46320:68:-;11804:14:8;11645:19;632:46320:68;;;;;;;;;;;;;;;;11804:14:8;11645:19;632:46320:68;11645:19:8;632:46320:68;;;;11804:14:8;632:46320:68;;2270:110:1:o;632:46320:68:-;;;;;;;;;11707:10:8;11645:19;632:46320:68;;;;;;;;;;;;;;;;11645:19:8;632:46320:68;;11707:10:8;632:46320:68;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;2260:42:68;2771:3:8;2260:42:68;2771:3:8;2260:42:68;;;;2824:12:8;;;632:46320:68;;;;;;-1:-1:-1;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;632:46320:68;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;632:46320:68;;;;2824:12:8;2815:49;;632:46320:68;12810:59:8;;;632:46320:68;;;12810:59:8;;;632:46320:68;;;;-1:-1:-1;632:46320:68;12810:59:8;632:46320:68;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;632:46320:68;;2678:18:8;;2941:90;2995:21;;;632:46320:68;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;632:46320:68;;;;;-1:-1:-1;;;;;632:46320:68;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;632:46320:68;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;632:46320:68;;;;2824:12:8;2815:49;;632:46320:68;12810:59:8;;;632:46320:68;;;12810:59:8;;;632:46320:68;;;;-1:-1:-1;632:46320:68;12810:59:8;632:46320:68;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;632:46320:68;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;;632:46320:68;10003:159:11;632:46320:68;;10003:159:11;632:46320:68;;10003:159:11;;779:42;10003:159;;;632:46320:68:o","linkReferences":{}},"methodIdentifiers":{"ERC4626_sETHx()":"4c6b2e7e","ERC4626_sGOETH()":"1e1685c0","ERC4626_sUSDC()":"d8579228","IS_TEST()":"fa7626d4","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","name()":"06fdde03","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","symbol()":"95d89b41","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testPriceFuzzBalancerV3_ERC20_ERC20_DIRECT(uint256)":"3fbb8b68","testPriceFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP(uint256)":"42f33148","testPriceFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT(uint256)":"f0898550","testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP(uint256)":"790a2a0b","testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP(uint256)":"96a2fce6","testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_ERC20_WRAP_SWAP_UNWRAP(uint256)":"325a4265","testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP(uint256)":"c700ea2e","testPriceFuzzBalancerV3_ERC4626_ERC20_DIRECT(uint256)":"5090a8ce","testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP(uint256)":"f3869e24","testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP(uint256)":"c102053a","testPriceFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP(uint256)":"d46cbfcd","testPriceFuzzBalancerV3_ERC4626_ERC4626_DIRECT(uint256)":"0eed78c4","testPriceFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP(uint256)":"cf18b43d","testSwapFuzzBalancerV3_ERC20_ERC20_DIRECT(uint256,bool)":"d7ffd44d","testSwapFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP(uint256,bool)":"9a8ebd36","testSwapFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT(uint256,bool)":"6181917e","testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP(uint256,bool)":"d32913cc","testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP(uint256,bool)":"9e8518b3","testSwapFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP(uint256,bool)":"0bdca2c1","testSwapFuzzBalancerV3_ERC4626_ERC20_DIRECT(uint256,bool)":"d3a14f16","testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP(uint256,bool)":"e198fb18","testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP(uint256,bool)":"4964eb1a","testSwapFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP(uint256,bool)":"67b4dbe7","testSwapFuzzBalancerV3_ERC4626_ERC4626_DIRECT(uint256,bool)":"8c154846","testSwapFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP(uint256,bool)":"56733b91","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllZeroInputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"AllowanceExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountGivenZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"AmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"AmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateAlreadyStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateRateTooFast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssetBoundsExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceNotSettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"BptAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"BptAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"BufferTotalSupplyTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"CallerIsNotPoolCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReceiveEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSwapSameToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportAddLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportDonation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportRemoveLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportUnbalancedLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DynamicSwapFeeHookFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExcessiveInvalidation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeePrecisionTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedSwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolHooksContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"poolFactory\",\"type\":\"address\"}],\"name\":\"HookRegistrationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputLengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddLiquidityKind\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRemoveLiquidityKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenConfiguration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenDecimals\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"InvalidUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minIssuedShares\",\"type\":\"uint256\"}],\"name\":\"IssuedSharesBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinWeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultipleNonZeroInputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NormalizedWeightInvariant\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBufferShares\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedUnderlyingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualUnderlyingAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughUnderlying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedWrappedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualWrappedAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughWrapped\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStaticCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultDelegateCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlyPauseGuardian\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PauseBufferPeriodDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentageAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAddressMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolCreatorFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreatorNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolFeesExceedTotalCollected\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolSwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolYieldFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabledPermanently\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteResultSpoofed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterNotTrusted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderIsNotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StandardPoolWithCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaticATokenInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapDeadline\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualToken\",\"type\":\"address\"}],\"name\":\"TokensMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TradeAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultBuffersArePaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultIsNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultNotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultQueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WeightedPoolBptRateUnsupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"WrapAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongProtocolFeeControllerDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"}],\"name\":\"WrongUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultAdminDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultExtensionDeployment\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"word\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mask\",\"type\":\"uint256\"}],\"name\":\"UnorderedNonceInvalidation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC4626_sETHx\",\"outputs\":[{\"internalType\":\"contract MockSETHx\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC4626_sGOETH\",\"outputs\":[{\"internalType\":\"contract MockSGOETH\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC4626_sUSDC\",\"outputs\":[{\"internalType\":\"contract MockSUSDC\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC20_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_ERC20_WRAP_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC20_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC4626_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC20_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC20_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC4626_DIRECT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AllZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have one non-zero value, corresponding to the token being added or removed. This error results if all entries are zero.\"}],\"AllowanceExpired(uint256)\":[{\"params\":{\"deadline\":\"The timestamp at which the allowed amount is no longer valid\"}}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total BPT amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\"}}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\"}}],\"BufferAlreadyInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferNotInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferTotalSupplyTooLow(uint256)\":[{\"params\":{\"totalSupply\":\"The total supply value that was below the minimum\"}}],\"CallerIsNotPoolCreator(address,address)\":[{\"params\":{\"caller\":\"The account attempting to withdraw pool creator fees\",\"pool\":\"The pool the caller tried to withdraw from\"}}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FeePrecisionTooHigh()\":[{\"details\":\"Primary fee percentages are 18-decimal values, stored here in 64 bits, and calculated with full 256-bit precision. However, the resulting aggregate fees are stored in the Vault with 24-bit precision, which corresponds to 0.00001% resolution (i.e., a fee can be 1%, 1.00001%, 1.00002%, but not 1.000005%). Disallow setting fees such that there would be precision loss in the Vault, leading to a discrepancy between the aggregate fee calculated here and that stored in the Vault.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"HookRegistrationFailed(address,address,address)\":[{\"params\":{\"pool\":\"Address of the rejected pool\",\"poolFactory\":\"Address of the pool factory\",\"poolHooksContract\":\"Address of the hook contract that rejected the pool registration\"}}],\"InsufficientAllowance(uint256)\":[{\"params\":{\"amount\":\"The maximum amount allowed\"}}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidUnderlyingToken(address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might do this (e.g., in an attempt to re-initialize the buffer).\",\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"IssuedSharesBelowMin(uint256,uint256)\":[{\"details\":\"Shares issued during initialization are below the requested amount.\"}],\"LengthMismatch()\":[{\"details\":\"If the spender does not need to transfer the number of tokens permitted, the spender can request amount 0 to be transferred\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"MultipleNonZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have only one non-zero value, corresponding to the token being added or removed. This error results if there are multiple non-zero entries.\"}],\"NotEnoughUnderlying(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less underlying tokens than it should.\"}],\"NotEnoughWrapped(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less wrapped tokens than it should.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"NotVaultDelegateCall()\":[{\"details\":\"It can only be called by the Vault via delegatecall.\"}],\"PoolAlreadyInitialized(address)\":[{\"params\":{\"pool\":\"The already initialized pool\"}}],\"PoolAlreadyRegistered(address)\":[{\"params\":{\"pool\":\"The already registered pool\"}}],\"PoolCreatorNotRegistered(address)\":[{\"params\":{\"pool\":\"The pool with no creator\"}}],\"PoolInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInitialized(address)\":[{\"params\":{\"pool\":\"The uninitialized pool\"}}],\"PoolNotPaused(address)\":[{\"params\":{\"pool\":\"The unpaused pool\"}}],\"PoolNotRegistered(address)\":[{\"params\":{\"pool\":\"The unregistered pool\"}}],\"PoolPauseWindowExpired(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolPaused(address)\":[{\"params\":{\"pool\":\"The paused pool\"}}],\"ProtocolFeesExceedTotalCollected()\":[{\"details\":\"This occurs when the sum of the parts (aggregate swap or yield fee) is greater than the whole (total swap or yield fee). Also validated when the protocol fee controller updates aggregate fee percentages in the Vault.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol swap fee percentages.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol yield fee percentages.\"}],\"SenderIsNotVault(address)\":[{\"params\":{\"sender\":\"The account attempting to call a permissioned function\"}}],\"SwapFeePercentageTooHigh()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is above the maximum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapFeePercentageTooLow()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is below the minimum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"TokenAlreadyRegistered(address)\":[{\"params\":{\"token\":\"The duplicate token\"}}],\"TokenNotRegistered(address)\":[{\"params\":{\"token\":\"The unregistered token\"}}],\"TokensMismatch(address,address,address)\":[{\"params\":{\"actualToken\":\"The actual token found at that index\",\"expectedToken\":\"The correct token at a given index in the pool\",\"pool\":\"Address of the pool\"}}],\"TokensNotSorted()\":[{\"details\":\"Tokens are not sorted by address on registration. This is an optimization so that off-chain processes can predict the token order without having to query the Vault. (It is also legacy v2 behavior.)\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}],\"WrapAmountTooSmall(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"WrongUnderlyingToken(address,address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might not return the correct address. Legitimate wrapper contracts should make the asset a constant or immutable value.\",\"params\":{\"underlyingToken\":\"The underlying token returned by `asset`\",\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"AfterAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterAddLiquidity hook, indicating the transaction should revert.\"}],\"AfterInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the afterInitialize hook, indicating the transaction should revert.\"}],\"AfterRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterRemoveLiquidity hook, indicating the transaction should revert.\"}],\"AfterSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the afterSwap hook, indicating the transaction should revert.\"}],\"AllZeroInputs()\":[{\"notice\":\"No valid input was given for a single token operation.\"}],\"AllowanceExpired(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has expired.\"}],\"AmountGivenZero()\":[{\"notice\":\"The user tried to swap zero tokens.\"}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A required amountIn exceeds the maximum limit specified for the operation.\"}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The actual amount out is below the minimum limit specified for the operation.\"}],\"AmpUpdateAlreadyStarted()\":[{\"notice\":\"Amplification update operations must be done one at a time.\"}],\"AmpUpdateDurationTooShort()\":[{\"notice\":\"The amplification change duration is too short.\"}],\"AmpUpdateRateTooFast()\":[{\"notice\":\"The amplification change rate is too fast.\"}],\"AmplificationFactorTooHigh()\":[{\"notice\":\"The amplification factor is above the maximum of the range (1 - 5000).\"}],\"AmplificationFactorTooLow()\":[{\"notice\":\"The amplification factor is below the minimum of the range (1 - 5000).\"}],\"BalanceNotSettled()\":[{\"notice\":\"A transient accounting operation completed with outstanding token deltas.\"}],\"BeforeAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeAddLiquidity hook, indicating the transaction should revert.\"}],\"BeforeInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeInitialize hook, indicating the transaction should revert.\"}],\"BeforeRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeRemoveLiquidity hook, indicating the transaction should revert.\"}],\"BeforeSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"notice\":\"The required BPT amount in exceeds the maximum limit specified for the operation.\"}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"notice\":\"The BPT amount received from adding liquidity is below the minimum specified for the operation.\"}],\"BufferAlreadyInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was already initialized.\"}],\"BufferNotInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was not initialized.\"}],\"BufferSharesInvalidOwner()\":[{\"notice\":\"Buffer shares were burned from the zero address.\"}],\"BufferSharesInvalidReceiver()\":[{\"notice\":\"Buffer shares were minted to the zero address.\"}],\"BufferTotalSupplyTooLow(uint256)\":[{\"notice\":\"The total supply of a buffer can't be lower than the absolute minimum.\"}],\"CallerIsNotPoolCreator(address,address)\":[{\"notice\":\"Error raised if the wrong account attempts to withdraw pool creator fees.\"}],\"CannotReceiveEth()\":[{\"notice\":\"The contract should not receive ETH.\"}],\"CannotSwapSameToken()\":[{\"notice\":\"The user attempted to swap a token for itself.\"}],\"DoesNotSupportAddLiquidityCustom()\":[{\"notice\":\"Pool does not support adding liquidity with a customized input.\"}],\"DoesNotSupportDonation()\":[{\"notice\":\"Pool does not support adding liquidity through donation.\"}],\"DoesNotSupportRemoveLiquidityCustom()\":[{\"notice\":\"Pool does not support removing liquidity with a customized input.\"}],\"DoesNotSupportUnbalancedLiquidity()\":[{\"notice\":\"Pool does not support adding / removing liquidity with an unbalanced input.\"}],\"DynamicSwapFeeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"FeePrecisionTooHigh()\":[{\"notice\":\"Primary fee percentages result in an aggregate fee that cannot be stored with the required precision.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A hook adjusted amountIn exceeds the maximum limit specified for the operation.\"}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The hook adjusted amount out is below the minimum limit specified for the operation.\"}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"notice\":\"A hook adjusted amount in or out has exceeded the limit specified in the swap request.\"}],\"HookRegistrationFailed(address,address,address)\":[{\"notice\":\"A hook contract rejected a pool on registration.\"}],\"InputLengthMismatch()\":[{\"notice\":\"Arrays passed to a function and intended to be parallel have different lengths.\"}],\"InsufficientAllowance(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has been depleted.\"}],\"InvalidAddLiquidityKind()\":[{\"notice\":\"Add liquidity kind not supported.\"}],\"InvalidRemoveLiquidityKind()\":[{\"notice\":\"Remove liquidity kind not supported.\"}],\"InvalidToken()\":[{\"notice\":\"Invalid tokens (e.g., zero) cannot be registered.\"}],\"InvalidTokenConfiguration()\":[{\"notice\":\"The data in a TokenConfig struct is inconsistent or unsupported.\"}],\"InvalidTokenDecimals()\":[{\"notice\":\"Tokens with more than 18 decimals are not supported.\"}],\"InvalidTokenType()\":[{\"notice\":\"The token type given in a TokenConfig during pool registration is invalid.\"}],\"InvalidUnderlyingToken(address)\":[{\"notice\":\"A wrapped token reported the zero address as its underlying token asset.\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the number of tokens permissioned to a spender does not match the number of tokens being transferred\"}],\"MaxTokens()\":[{\"notice\":\"The token count is above the maximum allowed.\"}],\"MinTokens()\":[{\"notice\":\"The token count is below the minimum allowed.\"}],\"MinWeight()\":[{\"notice\":\"Indicates that one of the pool tokens' weight is below the minimum allowed.\"}],\"MultipleNonZeroInputs()\":[{\"notice\":\"More than one non-zero value was given for a single token operation.\"}],\"NormalizedWeightInvariant()\":[{\"notice\":\"Indicates that the sum of the pool tokens' weights is not FixedPoint.ONE.\"}],\"NotEnoughBufferShares()\":[{\"notice\":\"The user is trying to remove more than their allocated shares from the buffer.\"}],\"NotVaultDelegateCall()\":[{\"notice\":\"The `VaultExtension` contract was called by an account directly.\"}],\"PauseBufferPeriodDurationTooLarge()\":[{\"notice\":\"The caller specified a buffer period longer than the maximum.\"}],\"PercentageAboveMax()\":[{\"notice\":\"A given percentage is above the maximum (usually a value close to FixedPoint.ONE, or 1e18 wei).\"}],\"PoolAlreadyInitialized(address)\":[{\"notice\":\"A pool has already been initialized. `initialize` may only be called once.\"}],\"PoolAlreadyRegistered(address)\":[{\"notice\":\"A pool has already been registered. `registerPool` may only be called once.\"}],\"PoolCreatorFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the pool creator swap or yield fee percentage exceeds the maximum allowed value.\"}],\"PoolCreatorNotRegistered(address)\":[{\"notice\":\"Error raised if there is no pool creator on a withdrawal attempt from the given pool.\"}],\"PoolInRecoveryMode(address)\":[{\"notice\":\"Cannot enable recovery mode when already enabled.\"}],\"PoolNotInRecoveryMode(address)\":[{\"notice\":\"Cannot disable recovery mode when not enabled.\"}],\"PoolNotInitialized(address)\":[{\"notice\":\"A referenced pool has not been initialized.\"}],\"PoolNotPaused(address)\":[{\"notice\":\"Governance tried to unpause the Pool when it was not paused.\"}],\"PoolNotRegistered(address)\":[{\"notice\":\"A pool has not been registered.\"}],\"PoolPauseWindowExpired(address)\":[{\"notice\":\"Governance tried to pause a Pool after the pause period expired.\"}],\"PoolPaused(address)\":[{\"notice\":\"A user tried to perform an operation involving a paused Pool.\"}],\"ProtocolFeesExceedTotalCollected()\":[{\"notice\":\"Error raised when there is an overflow in the fee calculation.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol swap fee percentage exceeds the maximum allowed value.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol yield fee percentage exceeds the maximum allowed value.\"}],\"QueriesDisabled()\":[{\"notice\":\"A user tried to execute a query operation when they were disabled.\"}],\"QueriesDisabledPermanently()\":[{\"notice\":\"An admin tried to re-enable queries, but they were disabled permanently.\"}],\"QuoteResultSpoofed()\":[{\"notice\":\"Quote reverted with a reserved error code.\"}],\"RouterNotTrusted()\":[{\"notice\":\"An unauthorized Router tried to call a permissioned function (i.e., using the Vault's token allowance).\"}],\"SenderIsNotVault(address)\":[{\"notice\":\"Error indicating the sender is not the Vault (e.g., someone is trying to call a permissioned function).\"}],\"SwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the swap fee percentage is greater than the maximum allowed value.\"}],\"SwapFeePercentageTooLow()\":[{\"notice\":\"Error raised when the swap fee percentage is less than the minimum allowed value.\"}],\"SwapLimit(uint256,uint256)\":[{\"notice\":\"An amount in or out has exceeded the limit specified in the swap request.\"}],\"TokenAlreadyRegistered(address)\":[{\"notice\":\"A token was already registered (i.e., it is a duplicate in the pool).\"}],\"TokenNotRegistered(address)\":[{\"notice\":\"The user attempted to operate with a token that is not in the pool.\"}],\"TokensMismatch(address,address,address)\":[{\"notice\":\"The token list passed into an operation does not match the pool tokens in the pool.\"}],\"TokensNotSorted()\":[{\"notice\":\"The tokens supplied to an array argument were not sorted in numerical order.\"}],\"TradeAmountTooSmall()\":[{\"notice\":\"The amount given or calculated for an operation is below the minimum limit.\"}],\"VaultBuffersArePaused()\":[{\"notice\":\"Buffer operation attempted while vault buffers are paused.\"}],\"VaultIsNotUnlocked()\":[{\"notice\":\"A user called a Vault function (swap, add/remove liquidity) outside the lock context.\"}],\"VaultNotPaused()\":[{\"notice\":\"Governance tried to unpause the Vault when it was not paused.\"}],\"VaultPauseWindowDurationTooLarge()\":[{\"notice\":\"The caller specified a pause window period longer than the maximum.\"}],\"VaultPauseWindowExpired()\":[{\"notice\":\"Governance tried to pause the Vault after the pause period expired.\"}],\"VaultPaused()\":[{\"notice\":\"A user tried to perform an operation while the Vault was paused.\"}],\"WrapAmountTooSmall(address)\":[{\"notice\":\"The amount given to wrap/unwrap was too small, which can introduce rounding issues.\"}],\"WrongProtocolFeeControllerDeployment()\":[{\"notice\":\"The `ProtocolFeeController` contract was configured with an incorrect Vault address.\"}],\"WrongUnderlyingToken(address,address)\":[{\"notice\":\"The wrapped token asset does not match the underlying token.\"}],\"WrongVaultAdminDeployment()\":[{\"notice\":\"The `VaultAdmin` contract was configured with an incorrect Vault address.\"}],\"WrongVaultExtensionDeployment()\":[{\"notice\":\"The `VaultExtension` contract was configured with an incorrect Vault address.\"}]},\"events\":{\"UnorderedNonceInvalidation(address,uint256,uint256)\":{\"notice\":\"Emits an event when the owner successfully invalidates an unordered nonce.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/BalancerV3SwapAdapter.t.sol\":\"BalancerV3SwapAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"src/balancer-v3/BalancerV3SwapAdapter.sol\":{\"keccak256\":\"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a\",\"dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":{\"keccak256\":\"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76\",\"dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP\"]},\"src/balancer-v3/lib/BalancerV3Errors.sol\":{\"keccak256\":\"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9\",\"dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/BalancerV3SwapAdapter.t.sol\":{\"keccak256\":\"0xd3285a9e0caf9810e16e2fd7d408c08d21e60ac30b146df29ec670ab1deef15f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3981cd340e1f83d16b22198d07034b5d67b07dc12a0fecdc7308a46dfb50f647\",\"dweb:/ipfs/QmRE7Mx4fwcNkxK4KhmEToW3o8jQXwVJ6h1MVbayBQck7L\"]},\"test/interfaces/IBufferRouter.sol\":{\"keccak256\":\"0xdb4d1925268fcc506350d7ca75068cc1b8b85a728cc857c8a5d9686422436fe9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69f9355938eea239584f45aac97aace9c2bd669500e87f4d66191df4eaa11625\",\"dweb:/ipfs/QmQezMNHG9VXNmi2twjqMQu83gQkhY67ohZ4SW37q4CLH4\"]},\"test/mocks/MockSETHx.sol\":{\"keccak256\":\"0xa15614c841ac362274d6674d24a8771cb8c9a207a196d583285e079b854b9c61\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://04074f2c48c42ea5cf601c59fc0546a9ae4c526e48925119d8ab881a0a3a099f\",\"dweb:/ipfs/QmZGBhVDhMfuF9FNMMc5aGmc6ZLQjKWavvuMqiURbi4RTL\"]},\"test/mocks/MockSGOETH.sol\":{\"keccak256\":\"0x0f5804798309e3db0909d573c0bde00dbf85badfc4c4e60db74b6966edbf048d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://980ac9b7957e018491a1835246c74d6b82e13553171ce6c77c1fce9ba043ccb8\",\"dweb:/ipfs/Qme2RJ854Dg66TMkX2bbdMHq67G2FioLM8prpztnYU2SLQ\"]},\"test/mocks/MockSUSDC.sol\":{\"keccak256\":\"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1\",\"dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AfterAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterInitializeHookFailed"},{"inputs":[],"type":"error","name":"AfterRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterSwapHookFailed"},{"inputs":[],"type":"error","name":"AllZeroInputs"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"AllowanceExpired"},{"inputs":[],"type":"error","name":"AmountGivenZero"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"AmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"AmountOutBelowMin"},{"inputs":[],"type":"error","name":"AmpUpdateAlreadyStarted"},{"inputs":[],"type":"error","name":"AmpUpdateDurationTooShort"},{"inputs":[],"type":"error","name":"AmpUpdateRateTooFast"},{"inputs":[],"type":"error","name":"AmplificationFactorTooHigh"},{"inputs":[],"type":"error","name":"AmplificationFactorTooLow"},{"inputs":[],"type":"error","name":"AssetBoundsExceeded"},{"inputs":[],"type":"error","name":"BalanceNotSettled"},{"inputs":[],"type":"error","name":"BeforeAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeInitializeHookFailed"},{"inputs":[],"type":"error","name":"BeforeRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeSwapHookFailed"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"BptAmountInAboveMax"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"BptAmountOutBelowMin"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferAlreadyInitialized"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferNotInitialized"},{"inputs":[],"type":"error","name":"BufferSharesInvalidOwner"},{"inputs":[],"type":"error","name":"BufferSharesInvalidReceiver"},{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"}],"type":"error","name":"BufferTotalSupplyTooLow"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"CallerIsNotPoolCreator"},{"inputs":[],"type":"error","name":"CannotReceiveEth"},{"inputs":[],"type":"error","name":"CannotSwapSameToken"},{"inputs":[],"type":"error","name":"DoesNotSupportAddLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportDonation"},{"inputs":[],"type":"error","name":"DoesNotSupportRemoveLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportUnbalancedLiquidity"},{"inputs":[],"type":"error","name":"DynamicSwapFeeHookFailed"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ExcessiveInvalidation"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"FeePrecisionTooHigh"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"HookAdjustedAmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"HookAdjustedAmountOutBelowMin"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"HookAdjustedSwapLimit"},{"inputs":[{"internalType":"address","name":"poolHooksContract","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"poolFactory","type":"address"}],"type":"error","name":"HookRegistrationFailed"},{"inputs":[],"type":"error","name":"InputLengthMismatch"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientEth"},{"inputs":[],"type":"error","name":"InvalidAddLiquidityKind"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"type":"error","name":"InvalidAmount"},{"inputs":[],"type":"error","name":"InvalidRemoveLiquidityKind"},{"inputs":[],"type":"error","name":"InvalidToken"},{"inputs":[],"type":"error","name":"InvalidTokenConfiguration"},{"inputs":[],"type":"error","name":"InvalidTokenDecimals"},{"inputs":[],"type":"error","name":"InvalidTokenType"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"InvalidUnderlyingToken"},{"inputs":[{"internalType":"uint256","name":"issuedShares","type":"uint256"},{"internalType":"uint256","name":"minIssuedShares","type":"uint256"}],"type":"error","name":"IssuedSharesBelowMin"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[],"type":"error","name":"MaxTokens"},{"inputs":[],"type":"error","name":"MinTokens"},{"inputs":[],"type":"error","name":"MinWeight"},{"inputs":[],"type":"error","name":"MultipleNonZeroInputs"},{"inputs":[],"type":"error","name":"NormalizedWeightInvariant"},{"inputs":[],"type":"error","name":"NotEnoughBufferShares"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedUnderlyingAmount","type":"uint256"},{"internalType":"uint256","name":"actualUnderlyingAmount","type":"uint256"}],"type":"error","name":"NotEnoughUnderlying"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedWrappedAmount","type":"uint256"},{"internalType":"uint256","name":"actualWrappedAmount","type":"uint256"}],"type":"error","name":"NotEnoughWrapped"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[],"type":"error","name":"NotStaticCall"},{"inputs":[],"type":"error","name":"NotVaultDelegateCall"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"OnlyPauseGuardian"},{"inputs":[],"type":"error","name":"PauseBufferPeriodDurationTooLarge"},{"inputs":[],"type":"error","name":"PercentageAboveMax"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAddressMismatch"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyRegistered"},{"inputs":[],"type":"error","name":"PoolCreatorFeePercentageTooHigh"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolCreatorNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotPaused"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPauseWindowExpired"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPaused"},{"inputs":[],"type":"error","name":"ProtocolFeesExceedTotalCollected"},{"inputs":[],"type":"error","name":"ProtocolSwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"ProtocolYieldFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"QueriesDisabled"},{"inputs":[],"type":"error","name":"QueriesDisabledPermanently"},{"inputs":[],"type":"error","name":"QuoteResultSpoofed"},{"inputs":[],"type":"error","name":"RouterNotTrusted"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderIsNotVault"},{"inputs":[],"type":"error","name":"StandardPoolWithCreator"},{"inputs":[],"type":"error","name":"StaticATokenInvalidZeroShares"},{"inputs":[],"type":"error","name":"SwapDeadline"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooLow"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"SwapLimit"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenAlreadyRegistered"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"expectedToken","type":"address"},{"internalType":"address","name":"actualToken","type":"address"}],"type":"error","name":"TokensMismatch"},{"inputs":[],"type":"error","name":"TokensNotSorted"},{"inputs":[],"type":"error","name":"TradeAmountTooSmall"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[],"type":"error","name":"VaultBuffersArePaused"},{"inputs":[],"type":"error","name":"VaultIsNotUnlocked"},{"inputs":[],"type":"error","name":"VaultNotPaused"},{"inputs":[],"type":"error","name":"VaultPauseWindowDurationTooLarge"},{"inputs":[],"type":"error","name":"VaultPauseWindowExpired"},{"inputs":[],"type":"error","name":"VaultPaused"},{"inputs":[],"type":"error","name":"VaultQueriesDisabled"},{"inputs":[],"type":"error","name":"WeightedPoolBptRateUnsupported"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"WrapAmountTooSmall"},{"inputs":[],"type":"error","name":"WrongProtocolFeeControllerDeployment"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"}],"type":"error","name":"WrongUnderlyingToken"},{"inputs":[],"type":"error","name":"WrongVaultAdminDeployment"},{"inputs":[],"type":"error","name":"WrongVaultExtensionDeployment"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"word","type":"uint256","indexed":false},{"internalType":"uint256","name":"mask","type":"uint256","indexed":false}],"type":"event","name":"UnorderedNonceInvalidation","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC4626_sETHx","outputs":[{"internalType":"contract MockSETHx","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC4626_sGOETH","outputs":[{"internalType":"contract MockSGOETH","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC4626_sUSDC","outputs":[{"internalType":"contract MockSUSDC","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_DIRECT"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_ERC20_WRAP_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_DIRECT"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC4626_DIRECT"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_DIRECT"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_ERC4626_SWAP_WRAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC20_UNDERLYING_DIRECT"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_ALTERNATIVE_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC20_SWAP_UNWRAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC20_ERC4626_ERC4626_WRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_DIRECT"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_ERC4626_UNWRAP_SWAP_WRAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC20_UNWRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC20_ERC4626_UNWRAP_SWAP"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC4626_DIRECT"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzBalancerV3_ERC4626_ERC4626_ERC20_SWAP_UNWRAP"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/BalancerV3SwapAdapter.t.sol":"BalancerV3SwapAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"src/balancer-v3/BalancerV3SwapAdapter.sol":{"keccak256":"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc","urls":["bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a","dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerSwapHelpers.sol":{"keccak256":"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88","urls":["bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76","dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerV3Errors.sol":{"keccak256":"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb","urls":["bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9","dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/BalancerV3SwapAdapter.t.sol":{"keccak256":"0xd3285a9e0caf9810e16e2fd7d408c08d21e60ac30b146df29ec670ab1deef15f","urls":["bzz-raw://3981cd340e1f83d16b22198d07034b5d67b07dc12a0fecdc7308a46dfb50f647","dweb:/ipfs/QmRE7Mx4fwcNkxK4KhmEToW3o8jQXwVJ6h1MVbayBQck7L"],"license":"AGPL-3.0-or-later"},"test/interfaces/IBufferRouter.sol":{"keccak256":"0xdb4d1925268fcc506350d7ca75068cc1b8b85a728cc857c8a5d9686422436fe9","urls":["bzz-raw://69f9355938eea239584f45aac97aace9c2bd669500e87f4d66191df4eaa11625","dweb:/ipfs/QmQezMNHG9VXNmi2twjqMQu83gQkhY67ohZ4SW37q4CLH4"],"license":"GPL-3.0-or-later"},"test/mocks/MockSETHx.sol":{"keccak256":"0xa15614c841ac362274d6674d24a8771cb8c9a207a196d583285e079b854b9c61","urls":["bzz-raw://04074f2c48c42ea5cf601c59fc0546a9ae4c526e48925119d8ab881a0a3a099f","dweb:/ipfs/QmZGBhVDhMfuF9FNMMc5aGmc6ZLQjKWavvuMqiURbi4RTL"],"license":"AGPL-3.0-or-later"},"test/mocks/MockSGOETH.sol":{"keccak256":"0x0f5804798309e3db0909d573c0bde00dbf85badfc4c4e60db74b6966edbf048d","urls":["bzz-raw://980ac9b7957e018491a1835246c74d6b82e13553171ce6c77c1fce9ba043ccb8","dweb:/ipfs/Qme2RJ854Dg66TMkX2bbdMHq67G2FioLM8prpztnYU2SLQ"],"license":"AGPL-3.0-or-later"},"test/mocks/MockSUSDC.sol":{"keccak256":"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c","urls":["bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1","dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b"],"license":"AGPL-3.0-or-later"}},"version":1},"id":68} \ No newline at end of file diff --git a/evm/out/Base.sol/CommonBase.json b/evm/out/Base.sol/CommonBase.json deleted file mode 100644 index 36b5751..0000000 --- a/evm/out/Base.sol/CommonBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/evm/out/Base.sol/ScriptBase.json b/evm/out/Base.sol/ScriptBase.json deleted file mode 100644 index cdd860e..0000000 --- a/evm/out/Base.sol/ScriptBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/evm/out/Base.sol/TestBase.json b/evm/out/Base.sol/TestBase.json deleted file mode 100644 index 27def44..0000000 --- a/evm/out/Base.sol/TestBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/evm/out/Constants.sol/Constants.json b/evm/out/Constants.sol/Constants.json deleted file mode 100644 index 3bb0f8f..0000000 --- a/evm/out/Constants.sol/Constants.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234610167575f80546001600160a01b031990811668433188fe2f8cf01f32179091556001805482166a0a40bef7490da1df664732179055600280548216607b17905560038054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560048054821673dac17f958d2ee523a2206206994597c13d831ec717905560058054821673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055600680548216736b175474e89094c44da98b954eedeac495271d0f179055600780548216732260fac5e5542a773aa44fbcfedf7c193bc2c599179055600880548216735a98fcbea516cf06857215779fd812ca3bef1b3217905560098054821673d533a949740bb3306d119cc777fa900ba034cd52179055600a805490911673ba12222222228d8ba445958a75a0704d566bf2c81790557f06df3b2bbb68adc8b0e302443692037ed9f91b42000000000000000000000063600b556039908161016c8239f35b5f80fdfe5f80fdfea2646970667358221220dfa0e44b2b02d45182d8cbf35843a2c9c118e95f974ccaf4c6acae6f64d0488264736f6c634300081b0033","sourceMap":"65:926:69:-:0;;;;;;;109:31;65:926;;-1:-1:-1;;;;;;65:926:69;;;117:22;65:926;;;;;;;;;195:26;65:926;;;253:12;65:926;;;;261:3;65:926;;;324:42;65:926;;;;324:42;65:926;;;392:42;65:926;;;;392:42;65:926;;;460:42;65:926;;;;460:42;65:926;;;527:42;65:926;;;;527:42;65:926;;;595:42;65:926;;;;595:42;65:926;;;662:42;65:926;;;;662:42;65:926;;;729:42;65:926;;;;729:42;65:926;;;818:42;65:926;;;;;818:42;65:926;;;916:66;899:89;65:926;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220dfa0e44b2b02d45182d8cbf35843a2c9c118e95f974ccaf4c6acae6f64d0488264736f6c634300081b0033","sourceMap":"65:926:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Constants.sol\":\"Constants\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"test/Constants.sol\":{\"keccak256\":\"0x9dfc2aef78fce79609a74b254119ba6428806be6ca46525219f1111db0a5ffba\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64e2c07f8a50a6efb25068c0882713b7e4805bb195c07789b1df37f6edb5d27f\",\"dweb:/ipfs/QmUzNQi8frUf4hDhLrmmSX9yyfGWbuVndvU1V11ZTnMABW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/Constants.sol":"Constants"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"test/Constants.sol":{"keccak256":"0x9dfc2aef78fce79609a74b254119ba6428806be6ca46525219f1111db0a5ffba","urls":["bzz-raw://64e2c07f8a50a6efb25068c0882713b7e4805bb195c07789b1df37f6edb5d27f","dweb:/ipfs/QmUzNQi8frUf4hDhLrmmSX9yyfGWbuVndvU1V11ZTnMABW"],"license":"UNLICENSED"}},"version":1},"id":69} \ No newline at end of file diff --git a/evm/out/Context.sol/Context.json b/evm/out/Context.sol/Context.json deleted file mode 100644 index 73b4ce1..0000000 --- a/evm/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/CurveAdapter.json b/evm/out/CurveAdapter.sol/CurveAdapter.json deleted file mode 100644 index 28df7e9..0000000 --- a/evm/out/CurveAdapter.sol/CurveAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234601557611d11908161001a8239f35b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146107d05750806348bd7dfd1461073b5780638307c655146106d5578063a9270fbe146102c7578063aad6e488146101fd5763ecbbc0331461006a575f61000f565b346101f95760203660031901126101f95761008960043560601c610cfc565b602081016100978151610c9d565b5f925f5b835181101561012f5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036100cb838551610939565b511614610126575b6001905f516020611cbc5f395f51905f52828060a01b036100f5838651610939565b51161461012157818060a01b0361010d828551610939565b51166101198286610925565b525b0161009b565b61011b565b600194506100d3565b5050915f146101f3578051600181018091116101df5761014e90610c9d565b915f5b8251811015610182576001906001600160a01b0361016f8285610925565b511661017b8287610925565b5201610151565b50506101905f915183610925565b525b6040518091602082016020835281518091526020604084019201905f5b8181106101bd575050500390f35b82516001600160a01b03168452859450602093840193909201916001016101af565b634e487b7160e01b5f52601160045260245ffd5b50610192565b5f80fd5b346101f95760803660031901126101f957610216610824565b5061021f61083a565b5060643567ffffffffffffffff81116101f957366023820112156101f95780600401359060246020610250846108dc565b61025d60405191826108ba565b848152019260051b820101903682116101f957602401915b8183106102b757604051631d04569d60e21b81526020600482015260126024820152714375727665416461707465722e707269636560701b6044820152606490fd5b8235815260209283019201610275565b346101f9576102d536610850565b9160601c9181815f926102e786610cfc565b926001600160a01b03166105f1575060208201935f5b85518110156105e6575f516020611cbc5f395f51905f5260018060a01b03610326838751610939565b51161480156105b6575b61033c576001016102fd565b835161037496505f516020611cbc5f395f51905f52925082916001600160a01b03916103689190610939565b5116146105ad57610ffd565b9091604051926103856060856108ba565b6002845260208401926040368537604051634903b0d160e01b81526001600160801b0383166004820152602081602481875afa5f9181610579575b506104ee57506040519162cb501b60e31b8352600f0b6004830152602082602481865afa80156104b0575f906104bb575b6020925060011c610401866108f4565b5260246040518094819362cb501b60e31b8352600f0b60048301525afa9081156104b0575f9161047e575b5060011c61043983610915565b52905b604051918291602083019060208452518091526040830191905f5b818110610465575050500390f35b8251845285945060209384019390920191600101610457565b90506020813d6020116104a8575b81610499602093836108ba565b810103126101f957518361042c565b3d915061048c565b6040513d5f823e3d90fd5b506020823d6020116104e6575b816104d5602093836108ba565b810103126101f957602091516103f1565b3d91506104c8565b602092506001600160801b039160249160011c61050a886108f4565b526040519485938492634903b0d160e01b84521660048301525afa9081156104b0575f91610547575b5060011c61054083610915565b529061043c565b90506020813d602011610571575b81610562602093836108ba565b810103126101f9575183610533565b3d9150610555565b9091506020813d6020116105a5575b81610595602093836108ba565b810103126101f9575190876103c0565b3d9150610588565b60019350610ffd565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036105de838751610939565b511614610330565b506103749450610ffd565b9093906001600160a01b03161561060d575b9261037493610ffd565b60208201935f5b85518110156106c9575f516020611cbc5f395f51905f5260018060a01b0361063d838751610939565b5116148015610699575b61065357600101610614565b835161037496505f516020611cbc5f395f51905f5293925083916001600160a01b03916106809190610939565b511614610690575b909350610603565b60019350610688565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036106c1838751610939565b511614610647565b50906103749450610688565b346101f95760a03660031901126101f9576106ee610824565b6106f661083a565b6064359160028310156101f9576080926107169260843592600435610957565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f95761074936610850565b50505060405161075a6060826108ba565b600281526020810160403682376001610772836108f4565b52604051906020820192602083525180935260408201905f935b8085106107995783830384f35b9091825190600a8210156107bc576020816001938293520193019401939061078c565b634e487b7160e01b5f52602160045260245ffd5b346101f95760403660031901126101f957631d04569d60e21b815260206004820152601760248201527f4375727665416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f957565b604435906001600160a01b03821682036101f957565b60609060031901126101f957600435906024356001600160a01b03811681036101f957906044356001600160a01b03811681036101f95790565b6040810190811067ffffffffffffffff8211176108a657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a657604052565b67ffffffffffffffff81116108a65760051b60200190565b8051156109015760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156109015760400190565b80518210156109015760209160051b010190565b9060088110156109015760051b0190565b919082039182116101df57565b9394929194604051956060870187811067ffffffffffffffff8211176108a6576040525f87525f602088015260405161098f8161088a565b5f81525f60208201526040880152868215610c9257506040519260e0840184811067ffffffffffffffff8211176108a65760405260208401966040850160608601945f865260808701945f865260c08801935f855260601c9485895260018060a01b031690818c5260018060a01b03169182845260a0890152610a125f95610cfc565b93610a268560018060a01b038b5116610e7a565b15159052610bad575060208201985f5b8a51811015610b9d575f516020611cbc5f395f51905f5260018060a01b03610a5f838751610939565b5116148015610b6d575b610a7557600101610a36565b610ac095969798999a505f516020611cbc5f395f51905f5290818352610aa360018060a01b03918651610939565b511614610b64575b5190516001600160a01b039081169116610ffd565b600f9291920b9052600f0b90525a9160028110156107bc57610b0657610af5610aff92610aec836111b3565b86525a9061094a565b6020850152611721565b6040830152565b60405163643c60f360e01b815260206004820152602f60248201527f4f72646572536964652e427579206973206e6f7420617661696c61626c65206660448201526e37b9103a3434b99030b230b83a32b960891b6064820152608490fd5b60019350610aab565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610b95838751610939565b511614610a69565b50610ac094959697989950610aab565b15610bc1575b610ac0939495969798610aab565b60208201985f5b8a51811015610c82575f516020611cbc5f395f51905f5260018060a01b03610bf1838751610939565b5116148015610c52575b610c0757600101610bc8565b610ac095969798999a505f516020611cbc5f395f51905f5290818452610c3560018060a01b03918651610939565b511614610c49575b98979695949350610bb3565b60019350610c3d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610c7a838751610939565b511614610bfb565b50610ac094959697989950610c3d565b955050505050915090565b90610ca7826108dc565b610cb460405191826108ba565b8281528092610cc5601f19916108dc565b0190602036910137565b908160209103126101f957516001600160a01b03811681036101f95790565b5f1981146101df5760010190565b90604051610d098161088a565b604051610100610d1981836108ba565b3682378152602081015f815281935f92610d32826119c0565b610ddb57925b60088110610d47575b50505050565b60405163c661065760e01b815260048101829052906020826024816001600160a01b0387165afa5f9281610dab575b50610d815750610d41565b600191610d8f828751610939565b90838060a01b03169052610da38451610cee565b845201610d38565b610dcd91935060203d8111610dd4575b610dc581836108ba565b810190610ccf565b915f610d76565b503d610dbb565b925b60088110610deb5750505050565b60405163046e8dd760e31b81526001600160801b038216600f0b6004820152906020826024816001600160a01b0387165afa5f9281610e5a575b50610e305750610d41565b600191610e3e828751610939565b90838060a01b03169052610e528451610cee565b845201610ddd565b610e7391935060203d8111610dd457610dc581836108ba565b915f610e25565b815151602491906001600160a01b03165f516020611cbc5f395f51905f52148015610fd5575b15610fcb57602060ff60015b1693610ec08560018060a01b039251610939565b516040516370a0823160e01b81526001600160a01b03909416600485018190529394859290918391165afa9182156104b0575f92610f96575b50606460ff91602093941590815f14610f8e575f915b15610f8557600a6001965b85604051988997889663556d6e9f60e01b88521660048701521660248501520460448301525afa9081610f56575b50610f5257600190565b5f90565b6020813d602011610f7d575b81610f6f602093836108ba565b810103126101f95751610f48565b3d9150610f62565b600a5f96610f1a565b600191610f0f565b91506020823d602011610fc3575b81610fb1602093836108ba565b810103126101f9579051906064610ef9565b3d9150610fa4565b602060ff5f610eac565b508251516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610ea0565b5f94939192918590846001600160a01b0384165f516020611cbc5f395f51905f52148061112a575b61110e575b6001600160a01b03165f516020611cbc5f395f51905f52149081611105575b506110e9575b5f955b60208401518710156110e05783516001600160a01b0390611074908990610939565b516001600160a01b03851691160361109f575060016001600160801b038716600f0b965b0195611052565b9560018060a01b036110b2828651610939565b51166001600160a01b038616146110cc575b600190611098565b6001600160801b038116600f0b91506110c4565b95509392505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061104f565b9050155f611049565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061102a565b508115611025565b3d1561116c573d9067ffffffffffffffff82116108a65760405191611161601f8201601f1916602001846108ba565b82523d5f602084013e565b606090565b1561117857565b60405162461bcd60e51b8152602060048201526013602482015272115d1a081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b6040810180516020830180515f959447946001600160a01b039485169490938893909116905f516020611cbc5f395f51905f5286036116b85747965b60c0840151156114305750516001600160a01b03165f516020611cbc5f395f51905f52036113735750805160a08201516060830151608090930151600f90810b93900b916001600160a01b0316803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b6024840152604483018190525f6064840152839183916084918391905af180156113685761134f575b50505f516020611cbc5f395f51905f52905b516001600160a01b0316036112ce57506112b66112cc914761094a565b9280808086335af16112c6611132565b50611171565b565b926040516370a0823160e01b8152306004820152602081602481885afa918215611343579161130f575b506112cc916113069161094a565b80933390611b9e565b90506020813d60201161133b575b8161132a602093836108ba565b810103126101f957516112cc6112f8565b3d915061131d565b604051903d90823e3d90fd5b81611359916108ba565b61136457845f611287565b8480fd5b6040513d84823e3d90fd5b9061139b60a082019261138984513033846119f9565b60018060a01b03835116845191611a42565b60018060a01b0381511660806060830151600f0b920151600f0b925190803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b602484015260448301525f606483015282908290818381608481015b03925af180156113685761141b575b50505f516020611cbc5f395f51905f5290611299565b81611425916108ba565b61136457845f611405565b90916001600160801b03606085015116915f516020611cbc5f395f51905f526001600160801b036080870151169460018060a01b03905116145f146114d2575050825160a090930151926001600160a01b0316803b156113645760405163ce7d650360e01b815260048101929092526024820192909252604481018390525f6064820152600160848201523060a4820152918391839182908160c481016113f6565b9094506114fe60a085939501956114ec87513033846119f9565b60018060a01b03845116875191611a42565b81518551906001600160a01b0316803b156101f95760405163ce7d650360e01b8152600481018790526024810186905260448101929092525f60648301819052600160848401523060a484015290829060c490829084905af19081611699575b50908a95949392916115cf575b50519251926001600160a01b0316803b15611364578492836084926040519687958694630b68372160e31b86526004860152602485015260448401528160648401525af180156113685761141b5750505f516020611cbc5f395f51905f5290611299565b6115de9192939495504761094a565b8015611612576115f78a80808085335af16112c6611132565b806116075790899493929161156b565b985050505050505050565b506040516370a0823160e01b81523060048201526020816024818a5afa801561168e5788908b90611658575b611648925061094a565b611653813389611b9e565b6115f7565b50506020813d602011611686575b81611673602093836108ba565b810103126101f95787611648915161163e565b3d9150611666565b6040513d8c823e3d90fd5b6116ab9196959493929b505f906108ba565b5f9990919293945f61155e565b6040516370a0823160e01b81523060048201529350602084602481895afa80156104b05789945f916116ec575b50966111ef565b9450506020843d602011611719575b81611708602093836108ba565b810103126101f9578893515f6116e5565b3d91506116fb565b60405161172d8161088a565b5f81525f60208201525060608101906001600160801b0382511660808201906001600160801b0382511660c084015115155f146118f557508251604051634903b0d160e01b81526004810192909252602090829060249082906001600160a01b03165afa5f91816118c1575b506118b0575060018060a01b038251169060208451600f0b60246040518095819362cb501b60e31b835260048301525afa9182156104b0575f9261187b575b506064620186a060209304935b5194519151604051635e0d443f60e01b8152600f93840b6004820152920b602483015260448201849052909384919082906001600160a01b03165afa9182156104b0575f92611847575b506040519161183d8361088a565b8252602082015290565b9091506020813d602011611873575b81611863602093836108ba565b810103126101f95751905f61182f565b3d9150611856565b91506020823d6020116118a8575b81611896602093836108ba565b810103126101f95790519060646117d8565b3d9150611889565b906064620186a060209304936117e5565b9091506020813d6020116118ed575b816118dd602093836108ba565b810103126101f95751905f611799565b3d91506118d0565b8351604051634903b0d160e01b81526004810184905292955091925090602090839060249082906001600160a01b03165afa9182156104b0575f9261198b575b506064620186a0602093049360018060a01b0390511694604051958693849263556d6e9f60e01b8452600484015260248301528560448301525afa9182156104b0575f9261184757506040519161183d8361088a565b91506020823d6020116119b8575b816119a6602093836108ba565b810103126101f9579051906064611935565b3d9150611999565b604051634903b0d160e01b81525f600482015290602090829060249082906001600160a01b03165afa9081610f565750610f5257600190565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526112cc91611a3d6084836108ba565b611bf2565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156104b0575f95611b6a575b5084018094116101df5760405163095ea7b360e01b602082019081526001600160a01b039290921660248201526044808201959095529384525f908190611acd6064876108ba565b85519082855af190611add611132565b82611b38575b5081611b2d575b5015611af557505050565b611a3d6112cc936040519063095ea7b360e01b602083015260248201525f604482015260448152611b276064826108ba565b82611bf2565b90503b15155f611aea565b80519192508115918215611b50575b5050905f611ae3565b611b639250602080918301019101611bda565b5f80611b47565b9094506020813d602011611b96575b81611b86602093836108ba565b810103126101f95751935f611a85565b3d9150611b79565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526112cc91611a3d6064836108ba565b908160209103126101f9575180151581036101f95790565b5f80611c1a9260018060a01b03169360208151910182865af1611c13611132565b9083611c5d565b8051908115159182611c42575b5050611c305750565b635274afe760e01b5f5260045260245ffd5b611c559250602080918301019101611bda565b155f80611c27565b90611c815750805115611c7257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611cb2575b611c92575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611c8a56fe000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea264697066735822122095b2866d1bfb6558995f95f5311386e755a500933ce3b93e801eddc460105df664736f6c634300081b0033","sourceMap":"630:19263:50:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146107d05750806348bd7dfd1461073b5780638307c655146106d5578063a9270fbe146102c7578063aad6e488146101fd5763ecbbc0331461006a575f61000f565b346101f95760203660031901126101f95761008960043560601c610cfc565b602081016100978151610c9d565b5f925f5b835181101561012f5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036100cb838551610939565b511614610126575b6001905f516020611cbc5f395f51905f52828060a01b036100f5838651610939565b51161461012157818060a01b0361010d828551610939565b51166101198286610925565b525b0161009b565b61011b565b600194506100d3565b5050915f146101f3578051600181018091116101df5761014e90610c9d565b915f5b8251811015610182576001906001600160a01b0361016f8285610925565b511661017b8287610925565b5201610151565b50506101905f915183610925565b525b6040518091602082016020835281518091526020604084019201905f5b8181106101bd575050500390f35b82516001600160a01b03168452859450602093840193909201916001016101af565b634e487b7160e01b5f52601160045260245ffd5b50610192565b5f80fd5b346101f95760803660031901126101f957610216610824565b5061021f61083a565b5060643567ffffffffffffffff81116101f957366023820112156101f95780600401359060246020610250846108dc565b61025d60405191826108ba565b848152019260051b820101903682116101f957602401915b8183106102b757604051631d04569d60e21b81526020600482015260126024820152714375727665416461707465722e707269636560701b6044820152606490fd5b8235815260209283019201610275565b346101f9576102d536610850565b9160601c9181815f926102e786610cfc565b926001600160a01b03166105f1575060208201935f5b85518110156105e6575f516020611cbc5f395f51905f5260018060a01b03610326838751610939565b51161480156105b6575b61033c576001016102fd565b835161037496505f516020611cbc5f395f51905f52925082916001600160a01b03916103689190610939565b5116146105ad57610ffd565b9091604051926103856060856108ba565b6002845260208401926040368537604051634903b0d160e01b81526001600160801b0383166004820152602081602481875afa5f9181610579575b506104ee57506040519162cb501b60e31b8352600f0b6004830152602082602481865afa80156104b0575f906104bb575b6020925060011c610401866108f4565b5260246040518094819362cb501b60e31b8352600f0b60048301525afa9081156104b0575f9161047e575b5060011c61043983610915565b52905b604051918291602083019060208452518091526040830191905f5b818110610465575050500390f35b8251845285945060209384019390920191600101610457565b90506020813d6020116104a8575b81610499602093836108ba565b810103126101f957518361042c565b3d915061048c565b6040513d5f823e3d90fd5b506020823d6020116104e6575b816104d5602093836108ba565b810103126101f957602091516103f1565b3d91506104c8565b602092506001600160801b039160249160011c61050a886108f4565b526040519485938492634903b0d160e01b84521660048301525afa9081156104b0575f91610547575b5060011c61054083610915565b529061043c565b90506020813d602011610571575b81610562602093836108ba565b810103126101f9575183610533565b3d9150610555565b9091506020813d6020116105a5575b81610595602093836108ba565b810103126101f9575190876103c0565b3d9150610588565b60019350610ffd565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036105de838751610939565b511614610330565b506103749450610ffd565b9093906001600160a01b03161561060d575b9261037493610ffd565b60208201935f5b85518110156106c9575f516020611cbc5f395f51905f5260018060a01b0361063d838751610939565b5116148015610699575b61065357600101610614565b835161037496505f516020611cbc5f395f51905f5293925083916001600160a01b03916106809190610939565b511614610690575b909350610603565b60019350610688565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036106c1838751610939565b511614610647565b50906103749450610688565b346101f95760a03660031901126101f9576106ee610824565b6106f661083a565b6064359160028310156101f9576080926107169260843592600435610957565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f95761074936610850565b50505060405161075a6060826108ba565b600281526020810160403682376001610772836108f4565b52604051906020820192602083525180935260408201905f935b8085106107995783830384f35b9091825190600a8210156107bc576020816001938293520193019401939061078c565b634e487b7160e01b5f52602160045260245ffd5b346101f95760403660031901126101f957631d04569d60e21b815260206004820152601760248201527f4375727665416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f957565b604435906001600160a01b03821682036101f957565b60609060031901126101f957600435906024356001600160a01b03811681036101f957906044356001600160a01b03811681036101f95790565b6040810190811067ffffffffffffffff8211176108a657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a657604052565b67ffffffffffffffff81116108a65760051b60200190565b8051156109015760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156109015760400190565b80518210156109015760209160051b010190565b9060088110156109015760051b0190565b919082039182116101df57565b9394929194604051956060870187811067ffffffffffffffff8211176108a6576040525f87525f602088015260405161098f8161088a565b5f81525f60208201526040880152868215610c9257506040519260e0840184811067ffffffffffffffff8211176108a65760405260208401966040850160608601945f865260808701945f865260c08801935f855260601c9485895260018060a01b031690818c5260018060a01b03169182845260a0890152610a125f95610cfc565b93610a268560018060a01b038b5116610e7a565b15159052610bad575060208201985f5b8a51811015610b9d575f516020611cbc5f395f51905f5260018060a01b03610a5f838751610939565b5116148015610b6d575b610a7557600101610a36565b610ac095969798999a505f516020611cbc5f395f51905f5290818352610aa360018060a01b03918651610939565b511614610b64575b5190516001600160a01b039081169116610ffd565b600f9291920b9052600f0b90525a9160028110156107bc57610b0657610af5610aff92610aec836111b3565b86525a9061094a565b6020850152611721565b6040830152565b60405163643c60f360e01b815260206004820152602f60248201527f4f72646572536964652e427579206973206e6f7420617661696c61626c65206660448201526e37b9103a3434b99030b230b83a32b960891b6064820152608490fd5b60019350610aab565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610b95838751610939565b511614610a69565b50610ac094959697989950610aab565b15610bc1575b610ac0939495969798610aab565b60208201985f5b8a51811015610c82575f516020611cbc5f395f51905f5260018060a01b03610bf1838751610939565b5116148015610c52575b610c0757600101610bc8565b610ac095969798999a505f516020611cbc5f395f51905f5290818452610c3560018060a01b03918651610939565b511614610c49575b98979695949350610bb3565b60019350610c3d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610c7a838751610939565b511614610bfb565b50610ac094959697989950610c3d565b955050505050915090565b90610ca7826108dc565b610cb460405191826108ba565b8281528092610cc5601f19916108dc565b0190602036910137565b908160209103126101f957516001600160a01b03811681036101f95790565b5f1981146101df5760010190565b90604051610d098161088a565b604051610100610d1981836108ba565b3682378152602081015f815281935f92610d32826119c0565b610ddb57925b60088110610d47575b50505050565b60405163c661065760e01b815260048101829052906020826024816001600160a01b0387165afa5f9281610dab575b50610d815750610d41565b600191610d8f828751610939565b90838060a01b03169052610da38451610cee565b845201610d38565b610dcd91935060203d8111610dd4575b610dc581836108ba565b810190610ccf565b915f610d76565b503d610dbb565b925b60088110610deb5750505050565b60405163046e8dd760e31b81526001600160801b038216600f0b6004820152906020826024816001600160a01b0387165afa5f9281610e5a575b50610e305750610d41565b600191610e3e828751610939565b90838060a01b03169052610e528451610cee565b845201610ddd565b610e7391935060203d8111610dd457610dc581836108ba565b915f610e25565b815151602491906001600160a01b03165f516020611cbc5f395f51905f52148015610fd5575b15610fcb57602060ff60015b1693610ec08560018060a01b039251610939565b516040516370a0823160e01b81526001600160a01b03909416600485018190529394859290918391165afa9182156104b0575f92610f96575b50606460ff91602093941590815f14610f8e575f915b15610f8557600a6001965b85604051988997889663556d6e9f60e01b88521660048701521660248501520460448301525afa9081610f56575b50610f5257600190565b5f90565b6020813d602011610f7d575b81610f6f602093836108ba565b810103126101f95751610f48565b3d9150610f62565b600a5f96610f1a565b600191610f0f565b91506020823d602011610fc3575b81610fb1602093836108ba565b810103126101f9579051906064610ef9565b3d9150610fa4565b602060ff5f610eac565b508251516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610ea0565b5f94939192918590846001600160a01b0384165f516020611cbc5f395f51905f52148061112a575b61110e575b6001600160a01b03165f516020611cbc5f395f51905f52149081611105575b506110e9575b5f955b60208401518710156110e05783516001600160a01b0390611074908990610939565b516001600160a01b03851691160361109f575060016001600160801b038716600f0b965b0195611052565b9560018060a01b036110b2828651610939565b51166001600160a01b038616146110cc575b600190611098565b6001600160801b038116600f0b91506110c4565b95509392505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061104f565b9050155f611049565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061102a565b508115611025565b3d1561116c573d9067ffffffffffffffff82116108a65760405191611161601f8201601f1916602001846108ba565b82523d5f602084013e565b606090565b1561117857565b60405162461bcd60e51b8152602060048201526013602482015272115d1a081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b6040810180516020830180515f959447946001600160a01b039485169490938893909116905f516020611cbc5f395f51905f5286036116b85747965b60c0840151156114305750516001600160a01b03165f516020611cbc5f395f51905f52036113735750805160a08201516060830151608090930151600f90810b93900b916001600160a01b0316803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b6024840152604483018190525f6064840152839183916084918391905af180156113685761134f575b50505f516020611cbc5f395f51905f52905b516001600160a01b0316036112ce57506112b66112cc914761094a565b9280808086335af16112c6611132565b50611171565b565b926040516370a0823160e01b8152306004820152602081602481885afa918215611343579161130f575b506112cc916113069161094a565b80933390611b9e565b90506020813d60201161133b575b8161132a602093836108ba565b810103126101f957516112cc6112f8565b3d915061131d565b604051903d90823e3d90fd5b81611359916108ba565b61136457845f611287565b8480fd5b6040513d84823e3d90fd5b9061139b60a082019261138984513033846119f9565b60018060a01b03835116845191611a42565b60018060a01b0381511660806060830151600f0b920151600f0b925190803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b602484015260448301525f606483015282908290818381608481015b03925af180156113685761141b575b50505f516020611cbc5f395f51905f5290611299565b81611425916108ba565b61136457845f611405565b90916001600160801b03606085015116915f516020611cbc5f395f51905f526001600160801b036080870151169460018060a01b03905116145f146114d2575050825160a090930151926001600160a01b0316803b156113645760405163ce7d650360e01b815260048101929092526024820192909252604481018390525f6064820152600160848201523060a4820152918391839182908160c481016113f6565b9094506114fe60a085939501956114ec87513033846119f9565b60018060a01b03845116875191611a42565b81518551906001600160a01b0316803b156101f95760405163ce7d650360e01b8152600481018790526024810186905260448101929092525f60648301819052600160848401523060a484015290829060c490829084905af19081611699575b50908a95949392916115cf575b50519251926001600160a01b0316803b15611364578492836084926040519687958694630b68372160e31b86526004860152602485015260448401528160648401525af180156113685761141b5750505f516020611cbc5f395f51905f5290611299565b6115de9192939495504761094a565b8015611612576115f78a80808085335af16112c6611132565b806116075790899493929161156b565b985050505050505050565b506040516370a0823160e01b81523060048201526020816024818a5afa801561168e5788908b90611658575b611648925061094a565b611653813389611b9e565b6115f7565b50506020813d602011611686575b81611673602093836108ba565b810103126101f95787611648915161163e565b3d9150611666565b6040513d8c823e3d90fd5b6116ab9196959493929b505f906108ba565b5f9990919293945f61155e565b6040516370a0823160e01b81523060048201529350602084602481895afa80156104b05789945f916116ec575b50966111ef565b9450506020843d602011611719575b81611708602093836108ba565b810103126101f9578893515f6116e5565b3d91506116fb565b60405161172d8161088a565b5f81525f60208201525060608101906001600160801b0382511660808201906001600160801b0382511660c084015115155f146118f557508251604051634903b0d160e01b81526004810192909252602090829060249082906001600160a01b03165afa5f91816118c1575b506118b0575060018060a01b038251169060208451600f0b60246040518095819362cb501b60e31b835260048301525afa9182156104b0575f9261187b575b506064620186a060209304935b5194519151604051635e0d443f60e01b8152600f93840b6004820152920b602483015260448201849052909384919082906001600160a01b03165afa9182156104b0575f92611847575b506040519161183d8361088a565b8252602082015290565b9091506020813d602011611873575b81611863602093836108ba565b810103126101f95751905f61182f565b3d9150611856565b91506020823d6020116118a8575b81611896602093836108ba565b810103126101f95790519060646117d8565b3d9150611889565b906064620186a060209304936117e5565b9091506020813d6020116118ed575b816118dd602093836108ba565b810103126101f95751905f611799565b3d91506118d0565b8351604051634903b0d160e01b81526004810184905292955091925090602090839060249082906001600160a01b03165afa9182156104b0575f9261198b575b506064620186a0602093049360018060a01b0390511694604051958693849263556d6e9f60e01b8452600484015260248301528560448301525afa9182156104b0575f9261184757506040519161183d8361088a565b91506020823d6020116119b8575b816119a6602093836108ba565b810103126101f9579051906064611935565b3d9150611999565b604051634903b0d160e01b81525f600482015290602090829060249082906001600160a01b03165afa9081610f565750610f5257600190565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526112cc91611a3d6084836108ba565b611bf2565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156104b0575f95611b6a575b5084018094116101df5760405163095ea7b360e01b602082019081526001600160a01b039290921660248201526044808201959095529384525f908190611acd6064876108ba565b85519082855af190611add611132565b82611b38575b5081611b2d575b5015611af557505050565b611a3d6112cc936040519063095ea7b360e01b602083015260248201525f604482015260448152611b276064826108ba565b82611bf2565b90503b15155f611aea565b80519192508115918215611b50575b5050905f611ae3565b611b639250602080918301019101611bda565b5f80611b47565b9094506020813d602011611b96575b81611b86602093836108ba565b810103126101f95751935f611a85565b3d9150611b79565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526112cc91611a3d6064836108ba565b908160209103126101f9575180151581036101f95790565b5f80611c1a9260018060a01b03169360208151910182865af1611c13611132565b9083611c5d565b8051908115159182611c42575b5050611c305750565b635274afe760e01b5f5260045260245ffd5b611c559250602080918301019101611bda565b155f80611c27565b90611c815750805115611c7257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611cb2575b611c92575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611c8a56fe000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea264697066735822122095b2866d1bfb6558995f95f5311386e755a500933ce3b93e801eddc460105df664736f6c634300081b0033","sourceMap":"630:19263:50:-:0;;;;;;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;;;;;;;;;8392:41;;630:19263;8392:41;;;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;630:19263:50;;;;7479:34;630:19263;;;;7479:34;:::i;:::-;630:19263;7566:17;;7552:32;630:19263;;7552:32;:::i;:::-;630:19263;7625:13;630:19263;7663:3;630:19263;;7640:21;;;;;1349:42;630:19263;;;;;7686:18;:15;;;:18;:::i;:::-;630:19263;;7686:34;7682:91;;7663:3;630:19263;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;;7790:18;:15;;;:18;:::i;:::-;630:19263;;7790:33;7786:80;;630:19263;;;;;7894:18;:15;;;:18;:::i;:::-;630:19263;;7879:33;;;;:::i;:::-;630:19263;7625:13;630:19263;7625:13;;7786:80;7843:8;;7682:91;630:19263;;-1:-1:-1;7682:91:50;;7640:21;;;;7933:306;;;;630:19263;;;;;;;;;;7973:36;;;:::i;:::-;8028:13;630:19263;8066:3;630:19263;;8043:21;;;;;630:19263;;-1:-1:-1;;;;;8101:12:50;630:19263;8101:12;;:::i;:::-;630:19263;;8089:24;;;;:::i;:::-;630:19263;;8028:13;;8043:21;;;8141:38;630:19263;8043:21;630:19263;8141:38;;:::i;:::-;630:19263;7933:306;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;630:19263:50;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;;;;;;1349:42;;630:19263;1349:42;;630:19263;1349:42;7933:306;8210:18;7933:306;;630:19263;;;;;;;;;;-1:-1:-1;;630:19263:50;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1836:36:50;;630:19263;;1836:36;;630:19263;;;;;;-1:-1:-1;;;630:19263:50;;;;;;1836:36;630:19263;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4879:30;;4919:28;630:19263;5006:21;;;;:::i;:::-;630:19263;-1:-1:-1;;;;;630:19263:50;;;-1:-1:-1;5253:17:50;;;;630:19263;5272:3;630:19263;;5249:21;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;;5320:18;:15;;;:18;:::i;:::-;630:19263;;5320:33;:95;;;;5272:3;5295:356;;630:19263;;5234:13;;5295:356;5506:15;;6238:56;;-1:-1:-1;;;;;;;;;;;;1428:42:50;-1:-1:-1;1428:42:50;;-1:-1:-1;;;;;630:19263:50;5506:18;;5456:24;5506:18;:::i;:::-;630:19263;;5506:33;5502:104;;6238:56;:::i;:::-;630:19263;;;;;;;;;:::i;:::-;6328:1;630:19263;;;;;;;;;;;;-1:-1:-1;;;6484:33:50;;-1:-1:-1;;;;;630:19263:50;;;6484:33;;630:19263;;;6484:33;630:19263;6484:33;;;630:19263;;6484:33;;;5186:982;-1:-1:-1;6480:499:50;;630:19263;;;;;;;6717:90;;1349:42;;630:19263;6717:90;;518:1;630:19263;6717:90;6484:33;6717:90;;;;;;;;630:19263;6717:90;;;6480:499;630:19263;518:1;;;;6705:125;;;:::i;:::-;630:19263;6484:33;630:19263;;;;;;;;;6856:89;;1349:42;;630:19263;6856:89;;518:1;6856:89;;;;;;;630:19263;6856:89;;;6480:499;518:1;;;6844:124;;;:::i;:::-;630:19263;6480:499;;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;6856:89;;;630:19263;6856:89;;630:19263;6856:89;;;;;;630:19263;6856:89;;;:::i;:::-;;;630:19263;;;;;6856:89;;;;;;-1:-1:-1;6856:89:50;;;630:19263;;;;;;;;;6717:90;;630:19263;6717:90;;630:19263;6717:90;;;;;;630:19263;6717:90;;;:::i;:::-;;;630:19263;;;;;;;6717:90;;;;;-1:-1:-1;6717:90:50;;6480:499;630:19263;518:1;;-1:-1:-1;;;;;518:1:50;6484:33;518:1;;;6554:38;;;:::i;:::-;630:19263;;;;;;;;;;;6618:32;;630:19263;;6618:32;;630:19263;6618:32;;;;;;;630:19263;6618:32;;;6480:499;518:1;;;6606:67;;;:::i;:::-;630:19263;6480:499;;;6618:32;;;630:19263;6618:32;;630:19263;6618:32;;;;;;630:19263;6618:32;;;:::i;:::-;;;630:19263;;;;;6618:32;;;;;;-1:-1:-1;6618:32:50;;6484:33;;;;630:19263;6484:33;;630:19263;6484:33;;;;;;630:19263;6484:33;;;:::i;:::-;;;630:19263;;;;;6484:33;;;;;;;-1:-1:-1;6484:33:50;;5502:104;630:19263;;-1:-1:-1;6238:56:50;:::i;5320:95::-;630:19263;1349:42;630:19263;;;;;5381:18;:15;;;:18;:::i;:::-;630:19263;;5381:34;5320:95;;5249:21;;6238:56;5249:21;;6238:56;:::i;5186:982::-;630:19263;;;-1:-1:-1;;;;;630:19263:50;5685:22;5681:487;;5186:982;;6238:56;5186:982;6238:56;:::i;5681:487::-;5747:17;;;;630:19263;5766:3;630:19263;;5743:21;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;;5814:18;:15;;;:18;:::i;:::-;630:19263;;5814:33;:95;;;;5766:3;5789:355;;630:19263;;5728:13;;5789:355;5999:15;;6238:56;;-1:-1:-1;;;;;;;;;;;;1428:42:50;5950:23;-1:-1:-1;1428:42:50;;-1:-1:-1;;;;;630:19263:50;5999:18;;5950:23;5999:18;:::i;:::-;630:19263;;5999:33;5995:104;;5789:355;5681:487;;;;;5995:104;630:19263;;-1:-1:-1;5995:104:50;;5814:95;630:19263;1349:42;630:19263;;;;;5875:18;:15;;;:18;:::i;:::-;630:19263;;5875:34;5814:95;;5743:21;;;6238:56;5743:21;;;;630:19263;;;;;;-1:-1:-1;;630:19263:50;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;7220:1;630:19263;;;;;;;;;7250:20;7232:38;;;:::i;:::-;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7250:20;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;630:19263:50;;;;-1:-1:-1;;;8392:41:50;;630:19263;;8392:41;;630:19263;;;;;;;;;;;8392:41;;;630:19263;;;;-1:-1:-1;;;;;630:19263:50;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;630:19263:50;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;630:19263:50;;;;;;;;;-1:-1:-1;;;;;630:19263:50;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;630:19263:50;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;6613:1;630:19263;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;1349:42::-;;;;;;;;;;:::o;1918:2620::-;;;;;;630:19263;;;;;;;;;;;;;;;;;-1:-1:-1;630:19263:50;;-1:-1:-1;630:19263:50;;;;;;;;;:::i;:::-;-1:-1:-1;630:19263:50;;-1:-1:-1;630:19263:50;;;;;;;;2099:18;2133:20;;2129:63;;630:19263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;630:19263:50;;;;;;-1:-1:-1;630:19263:50;;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2551:32;-1:-1:-1;2551:32:50;;:::i;:::-;630:19263;2639:43;630:19263;;;;;;;;;2639:43;:::i;:::-;630:19263;;;;;;-1:-1:-1;630:19263:50;2924:17;;;-1:-1:-1;2943:3:50;630:19263;;2920:21;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;;2999:18;:15;;;:18;:::i;:::-;630:19263;;2999:33;:99;;;;2943:3;2970:402;;630:19263;;2905:13;;2970:402;4041:106;630:19263;;;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;3211:18;630:19263;;;;;3211:15;;;:18;:::i;:::-;630:19263;;3211:33;3207:112;;2970:402;630:19263;;;-1:-1:-1;;;;;630:19263:50;;;;;4041:106;:::i;:::-;1349:42;;;;;;;;;;;4188:9;1349:42;;;;;;;4212:22;;4458:21;4503:28;4275:16;;;;:::i;:::-;630:19263;;4470:9;4458:21;;:::i;:::-;630:19263;4442:13;;630:19263;4503:28;:::i;:::-;630:19263;4489:11;;:42;1918:2620::o;4208:224::-;630:19263;;-1:-1:-1;;;4329:92:50;;630:19263;4329:92;;;1349:42;;;;;630:19263;1349:42;630:19263;;;1349:42;-1:-1:-1;;;1349:42:50;;;;4329:92;;;3207:112;630:19263;;-1:-1:-1;3207:112:50;;2999:99;630:19263;1349:42;630:19263;;;;;3064:18;:15;;;:18;:::i;:::-;630:19263;;3064:34;2999:99;;2920:21;;4041:106;2920:21;;;;;;;;;2853:1106;3414:22;3410:549;;2853:1106;4041:106;2853:1106;;;;;;;;3410:549;630:19263;3480:17;;;-1:-1:-1;3499:3:50;630:19263;;3476:21;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;;3555:18;:15;;;:18;:::i;:::-;630:19263;;3555:33;:99;;;;3499:3;3526:401;;630:19263;;3461:13;;3526:401;4041:106;630:19263;;;;;;;-1:-1:-1;;;;;;;;;;;630:19263:50;;;;3766:18;630:19263;;;;;3766:15;;;:18;:::i;:::-;630:19263;;3766:33;3762:112;;3526:401;3410:549;;;;;;;;;3762:112;630:19263;;-1:-1:-1;3762:112:50;;3555:99;630:19263;1349:42;630:19263;;;;;3620:18;:15;;;:18;:::i;:::-;630:19263;;3620:34;3555:99;;3476:21;;4041:106;3476:21;;;;;;;;;2129:63;2169:12;;;;;;;;;:::o;630:19263::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;630:19263:50;;;;;;;:::o;:::-;-1:-1:-1;;630:19263:50;;;;;;;:::o;17395:1301::-;;630:19263;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;630:19263:50;;17481:23;17520:11;-1:-1:-1;17685:31:50;;;;:::i;:::-;;;17772:406;17782:7;630:19263;17782:7;;;;17772:406;17680:1010;;;;17395:1301::o;17791:5::-;630:19263;;-1:-1:-1;;;17820:44:50;;;;;630:19263;;;;;;17820:44;630:19263;-1:-1:-1;;;;;630:19263:50;;17820:44;;-1:-1:-1;;17820:44:50;;;17791:5;-1:-1:-1;17816:348:50;;18140:5;;;17816:348;630:19263;17948:16;:28;:16;;;:28;:::i;:::-;630:19263;;;;;;;;;17998:20;630:19263;;17998:20;:::i;:::-;630:19263;;;17777:3;;17820:44;;;;;630:19263;17820:44;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;17680:1010;18208:472;18218:7;630:19263;18218:7;;;;17680:1010;;;;17395:1301::o;18227:5::-;630:19263;;-1:-1:-1;;;18303:101:50;;-1:-1:-1;;;;;630:19263:50;;1349:42;;18303:101;;;518:1;630:19263;;;18303:101;630:19263;-1:-1:-1;;;;;630:19263:50;;18303:101;;-1:-1:-1;;18303:101:50;;;18227:5;-1:-1:-1;18299:367:50;;18642:5;;;18299:367;630:19263;18450:16;:28;:16;;;:28;:::i;:::-;630:19263;;;;;;;;;18500:20;630:19263;;18500:20;:::i;:::-;630:19263;;;18213:3;;18303:101;;;;;630:19263;18303:101;;;;;;;;;:::i;:::-;;;;;16047:817;16363:15;;630:19263;16513:64;;16047:817;-1:-1:-1;;;;;630:19263:50;-1:-1:-1;;;;;;;;;;;16363:33:50;:87;;;;16047:817;16349:119;;;630:19263;;;16349:119;630:19263;;16520:33;630:19263;;;;;;16520:15;;:33;:::i;:::-;630:19263;;;-1:-1:-1;;;16513:64:50;;-1:-1:-1;;;;;630:19263:50;;;16513:64;;;630:19263;;;;;;;;;;;;16513:64;;;;;;;630:19263;16513:64;;;16349:119;16646:21;16592:167;630:19263;16646:21;630:19263;16646:21;;;:29;;;;;;630:19263;16646:29;;16689;;;16747:2;630:19263;16689:29;;630:19263;;;;;;;;;;;16592:167;;630:19263;16513:64;16592:167;;630:19263;;16513:64;630:19263;;;518:1;630:19263;;;;16592:167;;;;;;16689:29;-1:-1:-1;16588:270:50;;630:19263;16836:11;:::o;16588:270::-;630:19263;16792:12;:::o;16592:167::-;630:19263;16592:167;;630:19263;16592:167;;;;;;630:19263;16592:167;;;:::i;:::-;;;630:19263;;;;;16592:167;;;;;-1:-1:-1;16592:167:50;;16689:29;16747:2;630:19263;16689:29;;;16646;630:19263;16646:29;;;16513:64;;;630:19263;16513:64;;630:19263;16513:64;;;;;;630:19263;16513:64;;;:::i;:::-;;;630:19263;;;;;;;16592:167;16513:64;;;;;-1:-1:-1;16513:64:50;;16349:119;630:19263;;;16349:119;;16363:87;-1:-1:-1;16416:15:50;;630:19263;-1:-1:-1;;;;;630:19263:50;1349:42;16416:34;16363:87;;19101:790;630:19263;;19101:790;;;;630:19263;;19101:790;-1:-1:-1;;;;;630:19263:50;;-1:-1:-1;;;;;;;;;;;19401:24:50;;:38;;19101:790;19397:94;;19101:790;-1:-1:-1;;;;;630:19263:50;-1:-1:-1;;;;;;;;;;;19504:23:50;;;:37;;19101:790;19500:92;;;19101:790;630:19263;19601:284;19640:3;19621:17;;;630:19263;19617:21;;;;;19663:15;;-1:-1:-1;;;;;630:19263:50;19663:18;;:15;;:18;:::i;:::-;630:19263;-1:-1:-1;;;;;630:19263:50;;;;19663:32;630:19263;;;;-1:-1:-1;;;;;630:19263:50;;1349:42;;19659:216;;630:19263;19606:9;;;19659:216;630:19263;;;;;;19775:18;:15;;;:18;:::i;:::-;630:19263;;-1:-1:-1;;;;;630:19263:50;;19775:31;19771:104;;19659:216;630:19263;19659:216;;;19771:104;-1:-1:-1;;;;;630:19263:50;;1349:42;;;-1:-1:-1;19771:104:50;;19617:21;;;;;;;;19101:790::o;19500:92::-;1349:42;;-1:-1:-1;19500:92:50;;19504:37;19531:10;;;19504:37;;;19397:94;1349:42;;-1:-1:-1;19397:94:50;;19401:38;19429:10;;;19401:38;;630:19263;;;;;;;;;;;;;;;;;;;-1:-1:-1;;630:19263:50;;;;;:::i;:::-;;;;-1:-1:-1;630:19263:50;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;630:19263:50;;;;;;;;;;;;-1:-1:-1;;;630:19263:50;;;;;;;11136:4709;11284:19;;;630:19263;;11340:20;;;630:19263;;;;11136:4709;11402:21;;-1:-1:-1;;;;;630:19263:50;;;;11284:19;;630:19263;;;;;;-1:-1:-1;;;;;;;;;;;11462:34:50;;1428:42;;11512:21;11461:120;;11596:23;;;630:19263;;11596:23;;-1:-1:-1;630:19263:50;-1:-1:-1;;;;;630:19263:50;-1:-1:-1;;;;;;;;;;;11639:35:50;1428:42;;-1:-1:-1;630:19263:50;;;11807:26;;630:19263;11873:25;;;630:19263;11920:24;;;;630:19263;1349:42;;;;;;;;-1:-1:-1;;;;;630:19263:50;11722:311;;;;;11284:19;630:19263;-1:-1:-1;;;11722:311:50;;1349:42;;;;11722:311;;;518:1;1349:42;;;;630:19263;;;518:1;630:19263;;;;;;-1:-1:-1;630:19263:50;;;;;;;;;;;;;11722:311;;;;;;;;11635:963;;;-1:-1:-1;;;;;;;;;;;11635:963:50;;630:19263;-1:-1:-1;;;;;630:19263:50;15393:34;1428:42;;15462:21;:41;15599:36;15462:21;;:41;:::i;:::-;15540:10;;;;;;15532:53;;;;:::i;:::-;;15599:36;:::i;:::-;11136:4709::o;15389:450::-;630:19263;11284:19;630:19263;;;;15701:33;;11410:4;15701:33;;;630:19263;11340:20;15701:33;;;;;;;;;;;;;;15389:450;15701:53;15811:16;15701:53;;;;:::i;:::-;15798:10;;;15811:16;;:::i;15701:33::-;;;11340:20;15701:33;;11340:20;15701:33;;;;;;630:19263;15701:33;;;:::i;:::-;;;630:19263;;;;;15811:16;15701:33;;;;;-1:-1:-1;15701:33:50;;;11284:19;630:19263;;;;;;;;;11722:311;;;;;:::i;:::-;630:19263;;11722:311;;;;630:19263;;;;11722:311;11284:19;630:19263;;;;;;;;11635:963;12147:26;12286;12147;;;630:19263;12147:26;630:19263;;11410:4;12120:10;12147:26;;:::i;:::-;630:19263;;;;;;;;;;12286:26;;:::i;:::-;630:19263;;;;;;;;12470:24;12423:25;;;630:19263;1349:42;;12470:24;;630:19263;1349:42;;630:19263;;12348:235;;;;;;11284:19;630:19263;-1:-1:-1;;;12348:235:50;;1349:42;;;;12348:235;;;518:1;1349:42;;;;630:19263;;;518:1;630:19263;;;;;;;;;;;;;;;;;;;12348:235;;;;;;;;;;;11635:963;;;-1:-1:-1;;;;;;;;;;;11635:963:50;;;12348:235;;;;;:::i;:::-;630:19263;;12348:235;;;;11592:3787;12689:25;;-1:-1:-1;;;;;12689:25:50;;;630:19263;;12790:24;-1:-1:-1;;;;;;;;;;;;;;;;12790:24:50;;;630:19263;;;;;;;;;;;12834:35;12830:2539;1428:42;;;-1:-1:-1;;630:19263:50;;12974:26;;;;630:19263;;-1:-1:-1;;;;;630:19263:50;12889:358;;;;;11284:19;630:19263;-1:-1:-1;;;12889:358:50;;;;;630:19263;;;;;;;;;;;;;;;;;-1:-1:-1;630:19263:50;;;;13869:4;630:19263;;;;11410:4;630:19263;;;;;;;;;;;;;;;12889:358;630:19263;12830:2539;13361:26;;;13500;13361;;;;;630:19263;13361:26;630:19263;;11410:4;13334:10;13361:26;;:::i;:::-;630:19263;;;;;;;;;;13500:26;;:::i;:::-;630:19263;;;;;-1:-1:-1;;;;;630:19263:50;13641:285;;;;;11284:19;630:19263;-1:-1:-1;;;13641:285:50;;;;;630:19263;;;;;;;;;;;;;;;;-1:-1:-1;630:19263:50;;;;;;13869:4;630:19263;;;;11410:4;630:19263;;;;-1:-1:-1;630:19263:50;;;;;;-1:-1:-1;;13641:285:50;;;;;;12830:2539;13637:1423;;;;;;;;;;12830:2539;-1:-1:-1;630:19263:50;;;;-1:-1:-1;;;;;630:19263:50;15133:221;;;;;630:19263;;;15133:221;630:19263;11284:19;630:19263;;;;;;;;;15133:221;;13641:285;15133:221;;630:19263;;;;;;;;;;;;;;15133:221;;;;;;;;12830:2539;;-1:-1:-1;;;;;;;;;;;12830:2539:50;11592:3787;;13637:1423;14208:44;:21;;;;;;;:44;:::i;:::-;14278:23;;;;14560:36;14329:38;;;;;13334:10;14424:110;;;;:::i;14560:36::-;14939:20;14935:98;;13637:1423;;;;;;;;14935:98;14987:23;-1:-1:-1;;;;;;;;14987:23:50:o;14274:640::-;-1:-1:-1;11284:19:50;630:19263;-1:-1:-1;;;14670:33:50;;11410:4;13641:285;14670:33;;630:19263;11340:20;630:19263;14670:33;630:19263;14670:33;;;;;;;;;;;;;14274:640;14670:81;;;;:::i;:::-;14849:16;13334:10;;14849:16;;:::i;:::-;14274:640;;14670:33;;;11340:20;14670:33;;11340:20;14670:33;;;;;;630:19263;14670:33;;;:::i;:::-;;;630:19263;;;;;14670:81;630:19263;;14670:33;;;;;-1:-1:-1;14670:33:50;;;11284:19;630:19263;;;;;;;;13641:285;;;;;;;;;;630:19263;13641:285;;:::i;:::-;630:19263;13641:285;;;;;;;;;11461:120;11284:19;630:19263;-1:-1:-1;;;11548:33:50;;11410:4;11548:33;;;630:19263;;-1:-1:-1;11340:20:50;630:19263;11548:33;630:19263;11548:33;;;;;;;;;630:19263;11548:33;;;11461:120;;;;;11548:33;;;;11340:20;11548:33;;11340:20;11548:33;;;;;;630:19263;11548:33;;;:::i;:::-;;;630:19263;;;;;;;11548:33;;;;;;-1:-1:-1;11548:33:50;;8851:1810;630:19263;;;;;:::i;:::-;-1:-1:-1;630:19263:50;;-1:-1:-1;630:19263:50;;;;9001:16;9072:25;;;630:19263;-1:-1:-1;;;;;630:19263:50;;;9153:24;;;630:19263;-1:-1:-1;;;;;630:19263:50;;;9193:23;;;630:19263;;;9189:1466;9193:23;;;-1:-1:-1;630:19263:50;;;;-1:-1:-1;;;9236:103:50;;;;;630:19263;;;;;;;;9236:103;;630:19263;;-1:-1:-1;;;;;630:19263:50;9236:103;;-1:-1:-1;;9236:103:50;;;9189:1466;-1:-1:-1;9232:614:50;;9547:284;630:19263;;;;;;;;;;;;1349:42;;9236:103;630:19263;;;;;;;;;9612:136;;9236:103;9612:136;;518:1;9612:136;;;;;;;-1:-1:-1;9612:136:50;;;9232:614;518:1;9893:192;1303:7;630:19263;518:1;;9232:614;;630:19263;;;;;;;-1:-1:-1;;;9893:192:50;;1349:42;;;;9236:103;9893:192;;518:1;1349:42;;9236:103;1303:7;;518:1;1303:7;;;630:19263;;;;;;;-1:-1:-1;630:19263:50;;-1:-1:-1;;;;;630:19263:50;9893:192;;;;;;;-1:-1:-1;9893:192:50;;;9232:614;630:19263;;;;;;;:::i;:::-;;;;9867:258;;630:19263;9860:265;:::o;9893:192::-;;;;630:19263;9893:192;;630:19263;9893:192;;;;;;630:19263;9893:192;;;:::i;:::-;;;630:19263;;;;;9893:192;;;;;;;-1:-1:-1;9893:192:50;;9612:136;;;630:19263;9612:136;;630:19263;9612:136;;;;;;630:19263;9612:136;;;:::i;:::-;;;630:19263;;;;;;;9893:192;9612:136;;;;;-1:-1:-1;9612:136:50;;9232:614;9391:105;9893:192;1303:7;630:19263;9391:105;518:1;9232:614;;;9236:103;;;;630:19263;9236:103;;630:19263;9236:103;;;;;;630:19263;9236:103;;;:::i;:::-;;;630:19263;;;;;9236:103;;;;;;;-1:-1:-1;9236:103:50;;9189:1466;630:19263;;;;-1:-1:-1;;;10224:119:50;;;;;630:19263;;;10167:251;;-1:-1:-1;630:19263:50;;-1:-1:-1;10167:251:50;630:19263;;;;10224:119;;630:19263;;-1:-1:-1;;;;;630:19263:50;10224:119;;;;;;;-1:-1:-1;10224:119:50;;;9189:1466;518:1;10466:138;1303:7;630:19263;518:1;;630:19263;;;;;;;;;;;;;;;;;;;;10466:138;;10224:119;10466:138;;630:19263;10224:119;1303:7;;630:19263;1303:7;;;;630:19263;10466:138;;;;;;;-1:-1:-1;10466:138:50;;;630:19263;;;;;;;:::i;10224:119::-;;;630:19263;10224:119;;630:19263;10224:119;;;;;;630:19263;10224:119;;;:::i;:::-;;;630:19263;;;;;;;10466:138;10224:119;;;;;-1:-1:-1;10224:119:50;;17028:270;630:19263;;-1:-1:-1;;;17148:45:50;;630:19263;17148:45;;;630:19263;;;;;;17148:45;;630:19263;;-1:-1:-1;;;;;630:19263:50;17148:45;;;;;;-1:-1:-1;17144:148:50;;;17270:11;:::o;1702:188:32:-;630:19263:50;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;630:19263:50;;;1829:53:32;;;630:19263:50;;;;;;;;;;;;;;;;;1829:53:32;;;;;;;630:19263:50;1829:53:32;:::i;:::-;;:::i;2081:225::-;630:19263:50;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;630:19263:50;-1:-1:-1;;;;;630:19263:50;;;;;;;;;;;;;;;;;;2200:39:32;630:19263:50;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;;2081:225;2278:20;630:19263:50;;;;;;;;;-1:-1:-1;;;630:19263:50;3411:47:32;;;;;-1:-1:-1;;;;;630:19263:50;;;;;3411:47:32;;630:19263:50;;;;;;;;;3411:47:32;;;-1:-1:-1;;;;3411:47:32;630:19263:50;;3411:47:32;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;630:19263:50;;;;;;;;3561:43:32;;;630:19263:50;3561:43:32;;630:19263:50;-1:-1:-1;2200:39:32;630:19263:50;;;2200:39:32;3561:43;;;;;;:::i;:::-;;;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;630:19263:50;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;630:19263:50;8104:30:32;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;;630:19263:50;2200:39:32;;630:19263:50;2200:39:32;;;;;;630:19263:50;2200:39:32;;;:::i;:::-;;;630:19263:50;;;;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;1303:160;630:19263:50;;-1:-1:-1;;;1412:43:32;;;;-1:-1:-1;;;;;630:19263:50;;;;1412:43:32;;;630:19263:50;;;;;;;;;1412:43:32;;;;;;630:19263:50;;1412:43:32;:::i;630:19263:50:-;;;;;;;;;;;;;;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;630:19263:50;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;630:19263:50;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;630:19263:50;;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;4421:582:33;;4593:8;;-1:-1:-1;630:19263:50;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;630:19263:50;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;630:19263:50;;;;4917:24:33;630:19263:50;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract supports both CryptoSwap and StableSwap Curve pools\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"Curve Finance Adapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"CurveAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"CurveAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveCryptoSwapPool.json b/evm/out/CurveAdapter.sol/ICurveCryptoSwapPool.json deleted file mode 100644 index 566c44f..0000000 --- a/evm/out/CurveAdapter.sol/ICurveCryptoSwapPool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balances","inputs":[{"name":"arg0","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"j","type":"uint256","internalType":"uint256"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"get_dy","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"j","type":"uint256","internalType":"uint256"},{"name":"dx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balances(uint256)":"4903b0d1","exchange(uint256,uint256,uint256,uint256)":"5b41b908","fee()":"ddca3f43","get_dy(uint256,uint256,uint256)":"556d6e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"arg0\",\"type\":\"uint256\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"j\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"j\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"}],\"name\":\"get_dy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped ported version of Curve Plain Pool to Solidity For params informations see: https://docs.curve.fi/cryptoswap-exchange/cryptoswap/pools/crypto-pool/\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveCryptoSwapPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"arg0","type":"uint256"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"payable","type":"function","name":"exchange"},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"dx","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_dy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveCryptoSwapPool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveCryptoSwapPoolEth.json b/evm/out/CurveAdapter.sol/ICurveCryptoSwapPoolEth.json deleted file mode 100644 index 75183f5..0000000 --- a/evm/out/CurveAdapter.sol/ICurveCryptoSwapPoolEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balances","inputs":[{"name":"arg0","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"j","type":"uint256","internalType":"uint256"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"j","type":"uint256","internalType":"uint256"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"},{"name":"use_eth","type":"bool","internalType":"bool"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"get_dy","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"j","type":"uint256","internalType":"uint256"},{"name":"dx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balances(uint256)":"4903b0d1","exchange(uint256,uint256,uint256,uint256)":"5b41b908","exchange(uint256,uint256,uint256,uint256,bool,address)":"ce7d6503","fee()":"ddca3f43","get_dy(uint256,uint256,uint256)":"556d6e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"arg0\",\"type\":\"uint256\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"j\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"j\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"use_eth\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"j\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"}],\"name\":\"get_dy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveCryptoSwapPoolEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"arg0","type":"uint256"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"payable","type":"function","name":"exchange"},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"},{"internalType":"bool","name":"use_eth","type":"bool"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"payable","type":"function","name":"exchange"},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"dx","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_dy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveCryptoSwapPoolEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveCustomInt128Pool.json b/evm/out/CurveAdapter.sol/ICurveCustomInt128Pool.json deleted file mode 100644 index 24746b5..0000000 --- a/evm/out/CurveAdapter.sol/ICurveCustomInt128Pool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balances","inputs":[{"name":"arg0","type":"int128","internalType":"int128"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"coins","inputs":[{"name":"arg0","type":"int128","internalType":"int128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balances(int128)":"065a80d8","coins(int128)":"23746eb8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"arg0\",\"type\":\"int128\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"arg0\",\"type\":\"int128\"}],\"name\":\"coins\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveCustomInt128Pool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"int128","name":"arg0","type":"int128"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int128","name":"arg0","type":"int128"}],"stateMutability":"view","type":"function","name":"coins","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveCustomInt128Pool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveStableSwapMetaPool.json b/evm/out/CurveAdapter.sol/ICurveStableSwapMetaPool.json deleted file mode 100644 index 1863951..0000000 --- a/evm/out/CurveAdapter.sol/ICurveStableSwapMetaPool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balances","inputs":[{"name":"arg0","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"coins","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"exchange","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exchange_underlying","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"get_dy","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"get_dy_underlying","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balances(uint256)":"4903b0d1","coins(uint256)":"c6610657","exchange(int128,int128,uint256,uint256)":"3df02124","exchange_underlying(int128,int128,uint256,uint256)":"a6417ed6","fee()":"ddca3f43","get_dy(int128,int128,uint256)":"5e0d443f","get_dy_underlying(int128,int128,uint256)":"07211ef7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"arg0\",\"type\":\"uint256\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"coins\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange_underlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"}],\"name\":\"get_dy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"}],\"name\":\"get_dy_underlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO future implementation, not used at the moment since StableSwap Meta Pools are not supported yet\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveStableSwapMetaPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"arg0","type":"uint256"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"coins","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"exchange"},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"exchange_underlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_dy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_dy_underlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveStableSwapMetaPool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveStableSwapPool.json b/evm/out/CurveAdapter.sol/ICurveStableSwapPool.json deleted file mode 100644 index 91ce62d..0000000 --- a/evm/out/CurveAdapter.sol/ICurveStableSwapPool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balances","inputs":[{"name":"arg0","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"coins","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"exchange","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"get_dy","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balances(uint256)":"4903b0d1","coins(uint256)":"c6610657","exchange(int128,int128,uint256,uint256)":"3df02124","fee()":"ddca3f43","get_dy(int128,int128,uint256)":"5e0d443f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"arg0\",\"type\":\"uint256\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"coins\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"}],\"name\":\"get_dy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped ported version of Curve Plain Pool to Solidity For params informations see: https://docs.curve.fi/stableswap-exchange/stableswap/pools/plain_pools/\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveStableSwapPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"arg0","type":"uint256"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"coins","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"exchange"},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_dy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveStableSwapPool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.sol/ICurveStableSwapPoolEth.json b/evm/out/CurveAdapter.sol/ICurveStableSwapPoolEth.json deleted file mode 100644 index 69717fe..0000000 --- a/evm/out/CurveAdapter.sol/ICurveStableSwapPoolEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"exchange","inputs":[{"name":"i","type":"int128","internalType":"int128"},{"name":"j","type":"int128","internalType":"int128"},{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"min_dy","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"exchange(int128,int128,uint256,uint256)":"3df02124"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int128\",\"name\":\"i\",\"type\":\"int128\"},{\"internalType\":\"int128\",\"name\":\"j\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_dy\",\"type\":\"uint256\"}],\"name\":\"exchange\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/curve/CurveAdapter.sol\":\"ICurveStableSwapPoolEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"int128","name":"i","type":"int128"},{"internalType":"int128","name":"j","type":"int128"},{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"uint256","name":"min_dy","type":"uint256"}],"stateMutability":"payable","type":"function","name":"exchange"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/curve/CurveAdapter.sol":"ICurveStableSwapPoolEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/evm/out/CurveAdapter.t.sol/CurveAdapterTest.json b/evm/out/CurveAdapter.t.sol/CurveAdapterTest.json deleted file mode 100644 index a31ad74..0000000 --- a/evm/out/CurveAdapter.t.sol/CurveAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesCurveSwap","inputs":[{"name":"pair","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsCurveCryptoSwap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsCurveStableSwap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensCurveCryptoSwap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensCurveStableSwap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveCryptoSwap","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveCryptoSwapUsingEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveStEthPool","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"invertedSides","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveStablePoolEthWithEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveStablePoolEthWithToken","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzCurveStableSwap","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasingSwapsCurve","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapsForAdditionalPools","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f51602061acfe5f395f51905f52915b600482106100f75760405161a9c890816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f51602061acfe5f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe61016080604052600436101561001d575b50361561001b575f80fd5b005b5f905f3560e01c90816308c41745146154f9575080630a9254e414614cf15780631b92811314614c515780631ed7831c14614bd357806321ce99d1146142c057806327e10f5b14613bb55780632ade388014613a465780632b23bee7146137c15780633584c58c146137315780633dbde0cc14612a3b5780633e5e3c23146129bd5780633f7286f41461293f578063444bb9ce146122a457806359f2cba1146121f2578063642b929d14611fa857806366d9a9a014611dfa57806385226c8114611d60578063916a17c614611ad457806391e2f3bf146112cc57806399dd5ff814610675578063a00872f114610605578063ad74a8691461059b578063b5508aa9146104fa578063ba414fa6146104d5578063d170c3cc146102a7578063d4bdd1791461020c578063e20c9f711461017e5763fa7626d403610010573461017b578060031936011261017b57602060ff601e54166040519015158152f35b80fd5b503461017b578060031936011261017b5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101ed576101e9856101dd81870382615568565b60405191829182615589565b0390f35b82546001600160a01b03168452602090930192600192830192016101c6565b503461017b578060031936011261017b5760205460405163ecbbc03360e01b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b6004820152908290829060249082906001600160a01b03165afa801561029c5761027791839161027a575b5051615e5e565b80f35b61029691503d8085833e61028e8183615568565b8101906159b0565b5f610270565b6040513d84823e3d90fd5b503461017b57604036600319011261017b576004356001600160a01b0381168082036104d157602435916001600160401b0383116104cd57366023840112156104cd578260040135926102f98461580b565b936103076040519586615568565b8085526024602086019160051b830101913683116104c957602401905b8282106104b95750505061033783615a3a565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156104ae5761037791869161048c575b50615f4c565b1591845b84518110156104885761038e8186615a57565b51906040519163ecbbc03360e01b83526004830152868260248183875af1801561047d578561045d916001948a91610463575b506103dc86868060a01b036103d584615a3a565b5116615ff7565b6103ef86868060a01b036103d584615a47565b610427826103fd868c615a57565b51878060a01b0361040d85615a3a565b5116888060a01b0361041e86615a47565b5116918b616217565b610431848a615a57565b5190858060a01b0361044282615a47565b511690610454878060a01b0391615a3a565b51169188616217565b0161037b565b61047791503d808c833e61028e8183615568565b5f6103c1565b6040513d89823e3d90fd5b8580f35b6104a891503d8088833e6104a08183615568565b81019061592d565b5f610371565b6040513d87823e3d90fd5b8135815260209182019101610324565b8680fd5b8380fd5b8280fd5b503461017b578060031936011261017b5760206104f0615bf9565b6040519015158152f35b503461017b578060031936011261017b576019546105178161580b565b916105256040519384615568565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061056f57604051602080825281906101e9908201886155ef565b60016020819260405161058d81610586818961578a565b0382615568565b815201920192019190610552565b503461017b578060031936011261017b5760205460405163ecbbc03360e01b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b6004820152908290829060249082906001600160a01b03165afa801561029c5761027791839161027a575051615e5e565b503461017b57602036600319011261017b57600435601f548110156106715761062d9061573a565b91909161065d576040516101e99061064981610586818761578a565b6040519182916020835260208301906155cb565b634e487b7160e01b81526004819052602490fd5b5080fd5b503461017b57604036600319011261017b576004359060243580159081150361067157156112af5773ae7ab96520de3a18e5e111b5eaab095312d7fe8491815b60205460405163549387df60e11b8152736e1218b5cd701478a4be13af5c8c951f507b381160611b60048201526001600160a01b039283166024820181905295831660448201819052929091859183916064918391165afa90811561093e579061072691859161128d575b50615a3a565b51821080611281575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b8152901515600482015283816024815f51602061a9135f395f51905f525afa801561093e5790849161126c575b50508315918215610b5c5783946107a08260018060a0989697981b0360205416615d8e565b602080546040516370a0823160e01b81523060048201526001600160a01b0390911631929181602481895afa9081156104ae578591610b27575b50955b608060018060a01b036020541660a460405180988193638307c65560e01b8352736e1218b5cd701478a4be13af5c8c951f507b381160611b60048401528760248401528b60448401528160648401528960848401525af1948515610ad7578895610af6575b50156109b5575060205461086b9291610865916001600160a01b03163190615bdf565b90615cf0565b8051600381018091116109a1576040516370a0823160e01b815230600482015290602082602481875afa8015610996578592879161095d575b506108b8926108b291615bdf565b90615eae565b51600219810191908211610949576020602491604051928380926370a0823160e01b82523060048301525afa90811561093e578491610906575b506102779261090091615bdf565b90615efd565b90506020813d602011610936575b8161092160209383615568565b8101031261093257516102776108f2565b5f80fd5b3d9150610914565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b9250506020823d60201161098e575b8161097960209383615568565b810103126109325790518491906108b86108a4565b3d915061096c565b6040513d88823e3d90fd5b634e487b7160e01b85526011600452602485fd5b909194935060038501808611610ae2576040516370a0823160e01b815230600482015290602082602481865afa918215610ad7578892610aa1575b506108b26109fe9285615bdf565b6002198501948511610a8d57906020602492604051938480926370a0823160e01b82523060048301525afa918215610996578692610a55575b50610277946109006108659493610a4d93615bdf565b519147615bdf565b9291506020833d602011610a85575b81610a7160209383615568565b810103126109325791519091610277610a37565b3d9150610a64565b634e487b7160e01b86526011600452602486fd5b91506020823d602011610acf575b81610abc60209383615568565b81010312610932579051906108b26109f0565b3d9150610aaf565b6040513d8a823e3d90fd5b634e487b7160e01b87526011600452602487fd5b610b1991955060803d608011610b20575b610b118183615568565b810190615aab565b935f610842565b503d610b07565b9450506020843d602011610b54575b81610b4360209383615568565b81010312610932578693515f6107da565b3d9150610b36565b604051632eca54bf60e21b81526004810182905294602086602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9586156104ae578596611238575b50848060405160208101906370a0823160e01b825230602482015260248152610bc6604482615568565b5190737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa50610bfa610beb617858565b6020808251830101910161591e565b50601180546001600160a01b031916737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0179055600f805463ffffffff19166370a08231179055600e54600160401b81101561122457610c56816001610c6f9301600e55615722565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b036011541695600f5460e01b60105490610c8f617c18565b6001600160a01b038a165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190610ce181610cd3888886617c01565b03601f198101835282615568565b5190208a5260205260ff600360408b2001541615611216575b6001600160a01b038a165f908152600d60205260409020908952602052610cd3610d3360408a2093604051928391602083019586617c01565b51902087526020526040862096600188015490600289015498610d568a84615bec565b6110da575b8054604051630667f9d760e41b81526001600160a01b038416600482015260248101829052999a989997988b98946020866044815f51602061a9135f395f51905f525afa9586156110cf578a96611096575b506001908201610100031b5f1901811b198516915f51602061a9135f395f51905f523b15611092576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528781606481835f51602061a9135f395f51905f525af1908115610ad757889161107d575b505083610e35617dd1565b919015918215611072575b5050610f8f57505050610e516188f7565b60405190636f074d1f60e11b8252600482015260208160248187737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05af1801561093e57610f60575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015260248101849052908160448187865af1801561093e57610f33575b506040516370a0823160e01b8152306004820152602081602481855afa90811561093e578491610efe575b509047956107dd565b9350506020833d602011610f2b575b81610f1a60209383615568565b81010312610932578592515f610ef5565b3d9150610f0d565b610f549060203d602011610f59575b610f4c8183615568565b810190615a6b565b610eca565b503d610f42565b610f819060203d602011610f88575b610f798183615568565b81019061591e565b505f610e8d565b503d610f6f565b869291839154905f51602061a9135f395f51905f523b156104d1576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f51602061a9135f395f51905f525af1801561029c5761105d575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b611068828092615568565b61017b5780610ffc565b14159050845f610e40565b8161108791615568565b6104c957865f610e2a565b8980fd5b995094506020893d6020116110c7575b816110b360209383615568565b810103126109325797518b98909481610dad565b3d91506110a6565b6040513d8c823e3d90fd5b6110e48a84615bec565b6101000361010081116112025760ff8111611202576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f51602061a9135f395f51905f525afa9b8c156111f7578b9c6111d3575b50604051809c602082015f51602061a9735f395f51905f529052604082015f51602061a8d35f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d526111a0908d615568565b8510156111ae579950610d5b565b60405162461bcd60e51b815260206004820152806111cf602482018e6155cb565b0390fd5b6111f0919c503d808d833e6111e88183615568565b8101906158bc565b9a5f611135565b6040513d8d823e3d90fd5b634e487b7160e01b8a52601160045260248afd5b61121e61804b565b50610cfa565b634e487b7160e01b86526041600452602486fd5b9095506020813d602011611264575b8161125460209383615568565b810103126109325751945f610b9c565b3d9150611247565b8161127691615568565b6104d157825f61077b565b50620186a0821161072f565b6112a991503d8087833e6112a18183615568565b810190615b66565b5f610720565b73ae7ab96520de3a18e5e111b5eaab095312d7fe849181926106b5565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b82527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048301525f51602061a9335f395f51905f5260248301525f51602061a9535f395f51905f5260448301525afa801561029c5761135c918391611ac05750615a3a565b51821080611ab4575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c57611a9f575b508060405160208101906370a0823160e01b8252306024820152602481526113d7604482615568565b51905f51602061a9335f395f51905f525afa506113f5610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611a8b57610c5681600161144a9301600e55615722565b905560018060a01b0360115416600f5460e01b60105490611469617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908187526020526040862060405160208101906114ad81610cd3888886617c01565b519020875260205260ff60036040882001541615611a7d575b6001600160a01b0384165f908152600d60205260409020908652602052610cd36114ff6040872093604051928391602083019586617c01565b519020845260205282604081209160018301549260028101546115228186615bec565b611968575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa96871561099657869761192f575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e578491611916575b5050846115fc617dd1565b91901591821561190b575b50506118ba5782856116176188f7565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481865f51602061a9335f395f51905f525af180156118925761189d575b506040516370a0823160e01b8152306004820152906020826024815f51602061a9335f395f51905f525afa91821561189257839261185e575b506040516370a0823160e01b8152306004820152916020836024815f51602061a9535f395f51905f525afa92831561093e57849361182a575b50602054604051638307c65560e01b8152929060809084906001600160a01b03168188816117038760048301615b12565b03925af19283156104ae578593611809575b506040516370a0823160e01b81523060048201526020816024815f51602061a9335f395f51905f525afa9081156109965786916117d5575b506108659061175b93615bdf565b516040516370a0823160e01b81523060048201526020816024815f51602061a9535f395f51905f525afa90811561093e5784916117a1575b506102779261086591615bdf565b90506020813d6020116117cd575b816117bc60209383615568565b810103126109325751610277611793565b3d91506117af565b90506020813d602011611801575b816117f060209383615568565b81010312610932575161175b61174d565b3d91506117e3565b61182391935060803d608011610b2057610b118183615568565b9185611715565b9092506020813d602011611856575b8161184660209383615568565b81010312610932575191846116d2565b3d9150611839565b9091506020813d60201161188a575b8161187a60209383615568565b8101031261093257519083611699565b3d915061186d565b6040513d85823e3d90fd5b6118b59060203d602011610f5957610f4c8183615568565b611660565b82945054905f51602061a9135f395f51905f523b156104d1576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610fde565b14159050855f611607565b8161192091615568565b6104d157825f6115f1565b8580fd5b955095506020853d602011611960575b8161194c60209383615568565b810103126109325793519487949081611574565b3d915061193f565b909192506119768185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a611a2e916020948b91611a63575b506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f575090859291611527565b60405162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b611a7791503d808d833e6111e88183615568565b5f6119cf565b611a8561804b565b506114c6565b634e487b7160e01b83526041600452602483fd5b81611aa991615568565b61067157815f6113ae565b50620f42408211611365565b6112a991503d8085833e6112a18183615568565b503461017b578060031936011261017b57601c54611af18161580b565b90611aff6040519283615568565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310611b4257604051806101e98782615647565b604051611b4e81615532565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611cc15784600197946002979460209794611bd9945491818110611ca5575b818110611c89575b818110611c6d575b818110611c51575b818110611c35575b818110611c19575b818110611bff575b10611beb575b500382615568565b83820152815201920192019190611b2d565b6001600160e01b031916815286015f611bd1565b828a1b6001600160e01b0319168452928901928b01611bcb565b604083901b6001600160e01b0319168452928901928b01611bc3565b606083901b6001600160e01b0319168452928901928b01611bbb565b608083901b6001600160e01b0319168452928901928b01611bb3565b60a083901b6001600160e01b0319168452928901928b01611bab565b60c083901b6001600160e01b0319168452928901928b01611ba3565b60e083901b6001600160e01b0319168452928901928b01611b9b565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611b76565b503461017b578060031936011261017b57601a54611d7d8161580b565b91611d8b6040519384615568565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611dd557604051602080825281906101e9908201886155ef565b600160208192604051611dec81610586818961578a565b815201920192019190611db8565b503461017b578060031936011261017b57601b54611e178161580b565b90611e256040519283615568565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310611e6857604051806101e98782615647565b604051611e7481615532565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611f095784600197946002979460209794611ef7945491818110611ca557818110611c8957818110611c6d57818110611c5157818110611c3557818110611c1957818110611bff5710611beb57500382615568565b83820152815201920192019190611e53565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611e9c565b503461017b57602036600319011261017b5760205460405163549387df60e11b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b600482810191909152602482018490525f51602061a9535f395f51905f52604483015235916001600160a01b0316908381606481855afa801561093e5761202f91859161128d5750615a3a565b518210806121e6575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b815290151560048201528380826024815f51602061a9135f395f51905f525afa9182156121d95784926121c0575b505061209091615d8e565b602080546040516370a0823160e01b8152306004820152926001600160a01b0390911680319285929190856024815f51602061a9535f395f51905f525afa948515611892578395612187575b5060809060a460405180958193638307c65560e01b83527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048401528160248401525f51602061a9535f395f51905f5260448401528160648401528660848401525af19182156104ae578592612160575b5061086561175b929360018060a01b03602054163190615bdf565b61175b92506121806108659160803d608011610b2057610b118183615568565b9250612145565b925093506020823d6020116121b8575b816121a460209383615568565b8101031261093257608085925194906120dc565b3d9150612197565b819250906121cd91615568565b6104d15781835f612085565b50604051903d90823e3d90fd5b50620f42408211612038565b503461017b578060031936011261017b5760205460405163549387df60e11b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201525f51602061a9535f395f51905f526044820152908290829060649082906001600160a01b03165afa801561029c5761027791839161228a575b5051615c94565b61229e91503d8085833e6112a18183615568565b5f612283565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b8252735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048301525f51602061a8f35f395f51905f5260248301528460448301525afa801561029c57612327918391611ac05750615a3a565b51821080612930575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c5761291b575b508060405160208101906370a0823160e01b8252306024820152602481526123a2604482615568565b51905f51602061a8f35f395f51905f525afa506123c0610beb617858565b50601180546001600160a01b0319165f51602061a8f35f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015611a8b57610c568160016124159301600e55615722565b905560018060a01b0360115416600f5460e01b60105490612434617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019061247881610cd3888886617c01565b519020875260205260ff6003604088200154161561290d575b6001600160a01b0384165f908152600d60205260409020908652602052610cd36124ca6040872093604051928391602083019586617c01565b519020845260205282604081209160018301549260028101546124ed8186615bec565b612837575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa9687156109965786976127fe575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e5784916127e9575b5050846125c7617dd1565b9190159182156127de575b50506118ba5782856125e26188f7565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481865f51602061a8f35f395f51905f525af18015611892576127c1575b506040516370a0823160e01b81523060048201529082476020846024815f51602061a8f35f395f51905f525afa93841561029c57829461278a575b50602054604051638307c65560e01b8152735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048201525f51602061a8f35f395f51905f52602482015260448101849052606481018490526084810185905292608091849160a4918391906001600160a01b03165af19182156104ae576126f29261086591879161276b575b50519147615bdf565b6040516370a0823160e01b81523060048201526020816024815f51602061a8f35f395f51905f525afa90811561093e578491612737575b506108659061027793615bdf565b90506020813d602011612763575b8161275260209383615568565b810103126109325751610277612729565b3d9150612745565b612784915060803d608011610b2057610b118183615568565b876126e9565b915092506020813d6020116127b9575b816127a760209383615568565b81010312610932578390519285612666565b3d915061279a565b6127d99060203d602011610f5957610f4c8183615568565b61262b565b14159050855f6125d2565b816127f391615568565b6104d157825f6125bc565b955095506020853d60201161282f575b8161281b60209383615568565b81010312610932579351948794908161253f565b3d915061280e565b909192506128458185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a6128fc916020948b91611a6357506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f5750908592916124f2565b61291561804b565b50612491565b8161292591615568565b61067157815f612379565b50655af3107a40008211612330565b503461017b578060031936011261017b5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061299e576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201612987565b503461017b578060031936011261017b5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612a1c576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201612a05565b503461017b578060031936011261017b57610ca0604051612a5c8282615568565b60648152601f1982019081366020830137835b606481106136ed5750612a80615e1d565b90845b6064811061318c57505060015b6063811061314f575050612aa76040519283615568565b60648252366020830137815b606481106131125750612ac4615e1d565b90825b60648110612b4857505060015b60638110612ae0578280f35b612aea8183615a57565b515160018201908183116109a157612b3b82612b18612b4293612b106001979689615a57565b515190615efd565b6040612b3281612b28878a615a57565b5101519288615a57565b51015190617887565b850b6178c5565b01612ad4565b604051634b88b8ad60e11b815290602082600481885f51602061a9135f395f51905f525af19182156104ae5785926130df575b50612b868184615a57565b51858060405160208101906370a0823160e01b825230602482015260248152612bb0604482615568565b51905f51602061a9335f395f51905f525afa50612bce610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156130cb57610c56816001612c239301600e55615722565b9055601154600f5460105488926001600160a01b03169160e01b612c45617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612c8981610cd3888886617c01565b519020865260205260ff600360408720015416156130bd575b6001600160a01b0384165f908152600d60205260409020908552602052610cd3612cdb6040862093604051928391602083019586617c01565b5190208352602052604082206001810154936002820154612cfc8187615bec565b612fb1575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a9135f395f51905f525afa97881561047d578798612f79575b506001908201610100031b5f1901811b198716915f51602061a9135f395f51905f523b156104c9576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a9135f395f51905f525af19081156104ae578591612f64575b5050612dd5617dd1565b919015918215612f59575b50506118ba5750505050612df26188f7565b60208054612e3d91906001600160a01b0316612e0e8487615a57565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f51602061a9335f395f51905f525af1801561099657612f3d575b506020548590608090612e98906001600160a01b0316612e7b8588615a57565b51604051948580948193638307c65560e01b835260048301615b12565b03925af1908115610996578691612f1f575b50612eb58286615a57565b52612ec08185615a57565b5060405191631135fc2960e21b83526004830152602082602481885f51602061a9135f395f51905f525af19182156104ae57600192612f01575b5001612ac7565b612f189060203d8111610f5957610f4c8183615568565b505f612efa565b612f37915060803d8111610b2057610b118183615568565b5f612eaa565b612f549060203d8111610f5957610f4c8183615568565b612e5b565b141590505f80612de0565b81612f6e91615568565b6104cd57835f612dcb565b965096506020863d8211612fa9575b81612f9560209383615568565b81010312610932579451958b959081612d4e565b3d9150612f88565b9091929350612fc08186615bec565b6101000361010081116130a95760ff81116130a95760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061a9135f395f51905f525afa9283156121d95760209382606a9261307b949261308d575b506040519586925f51602061a9735f395f51905f52828501525f51602061a8d35f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b831015611a3f57509089939291612d01565b6130a29192503d8084833e6111e88183615568565b905f61301c565b634e487b7160e01b8b52601160045260248bfd5b6130c561804b565b50612ca2565b634e487b7160e01b87526041600452602487fd5b9091506020813d821161310a575b816130fa60209383615568565b810103126109325751905f612b7b565b3d91506130ed565b806103e8026103e88104820361094957633b9aca00820290808204620f4240149015171561094957906001916131488285615a57565b5201612ab3565b6131598183615a57565b51516001820190818311610ae25761317f82612b1861318693612b106001979689615a57565b870b6178c5565b01612a90565b604051634b88b8ad60e11b8152906020826004818a5f51602061a9135f395f51905f525af191821561047d5787926136ba575b506131ca8184615a57565b51878060405160208101906370a0823160e01b8252306024820152602481526131f4604482615568565b51905f51602061a9335f395f51905f525afa50613212610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156136a657610c568160016132679301600e55615722565b9055601154600f546010548a926001600160a01b03169160e01b613289617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906132cd81610cd3888886617c01565b519020865260205260ff60036040872001541615613698575b6001600160a01b0384165f908152600d60205260409020908552602052610cd361331f6040862093604051928391602083019586617c01565b51902083526020526040822060018101549360028201546133408187615bec565b6135a9575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a9135f395f51905f525afa97881561047d578798613571575b506001908201610100031b5f1901811b198716915f51602061a9135f395f51905f523b156104c9576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a9135f395f51905f525af19081156104ae57859161355c575b5050613419617dd1565b919015918215613551575b50506118ba57505050506134366188f7565b6020805461345291906001600160a01b0316612e0e8487615a57565b03818b5f51602061a9335f395f51905f525af18015610ad757613535575b506020548790608090613490906001600160a01b0316612e7b8588615a57565b03925af1908115610ad7578891613517575b506134ad8286615a57565b526134b88185615a57565b5060405191631135fc2960e21b835260048301526020826024818a5f51602061a9135f395f51905f525af191821561047d576001926134f9575b5001612a83565b6135109060203d8111610f5957610f4c8183615568565b505f6134f2565b61352f915060803d8111610b2057610b118183615568565b5f6134a2565b61354c9060203d8111610f5957610f4c8183615568565b613470565b141590505f80613424565b8161356691615568565b6104cd57835f61340f565b965096506020863d82116135a1575b8161358d60209383615568565b81010312610932579451958d959081613392565b3d9150613580565b90919293506135b88186615bec565b6101000361010081116136845760ff81116136845760405163348051d760e11b8152600190911b600482018190528d80836024815f51602061a9135f395f51905f525afa9283156121d95760209382606a92613672949261308d57506040519586925f51602061a9735f395f51905f52828501525f51602061a8d35f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b831015611a3f5750908b939291613345565b634e487b7160e01b8d52601160045260248dfd5b6136a061804b565b506132e6565b634e487b7160e01b89526041600452602489fd5b9091506020813d82116136e5575b816136d560209383615568565b810103126109325751905f6131bf565b3d91506136c8565b806103e8026103e881048203610a8d5767016345785d8a0000820290808204655af3107a40001490151715610a8d579060019161372a8285615a57565b5201612a6f565b503461017b578060031936011261017b5760205460405163549387df60e11b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048201525f51602061a9335f395f51905f5260248201525f51602061a9535f395f51905f526044820152908290829060649082906001600160a01b03165afa801561029c5761027791839161228a575051615c94565b503461017b57602036600319011261017b5760205460405163549387df60e11b8152735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b600482810191909152602482018490525f51602061a8f35f395f51905f52604483015235916001600160a01b0316908381606481855afa801561093e5761384891859161128d5750615a3a565b51821080613a37575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b815290151560048201528380826024815f51602061a9135f395f51905f525afa9182156121d9578492613a1e575b50506138a991615d8e565b602080546040516370a0823160e01b8152306004820152926001600160a01b0390911680319285929190856024815f51602061a8f35f395f51905f525afa9485156118925783956139e5575b5060809060a460405180958193638307c65560e01b8352735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048401528160248401525f51602061a8f35f395f51905f5260448401528160648401528660848401525af19182156104ae5785926139be575b50610865613979929360018060a01b03602054163190615bdf565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f35f395f51905f525afa90811561093e5784916117a157506102779261086591615bdf565b61397992506139de6108659160803d608011610b2057610b118183615568565b925061395e565b925093506020823d602011613a16575b81613a0260209383615568565b8101031261093257608085925194906138f5565b3d91506139f5565b81925090613a2b91615568565b6104d15781835f61389e565b50655af3107a40008211613851565b503461017b578060031936011261017b57601d54613a638161580b565b613a706040519182615568565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310613b2457868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210613add57505050500390f35b91936001919395506020613b148192603f198a82030186526040838a51878060a01b038151168452015191818582015201906155ef565b9601920192018594939192613ace565b604051613b3081615532565b82546001600160a01b03168152600183018054613b4c8161580b565b91613b5a6040519384615568565b8183528a526020808b20908b9084015b838210613b90575050505060019282602092836002950152815201920192019190613aa0565b600160208192604051613ba781610586818a61578a565b815201930191019091613b6a565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b825273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600483015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248301525f51602061a9535f395f51905f5260448301525afa801561029c57613c4c918391611ac05750615a3a565b518210806142b5575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c576142a0575b508060405160208101906370a0823160e01b825230602482015260248152613cc7604482615568565b519073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa50613cec610beb617858565b50601180546001600160a01b03191673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055600f805463ffffffff19166370a08231179055600e54600160401b811015611a8b57610c56816001613d489301600e55615722565b905560018060a01b0360115416600f5460e01b60105490613d67617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818752602052604086206040516020810190613dab81610cd3888886617c01565b519020875260205260ff60036040882001541615614292575b6001600160a01b0384165f908152600d60205260409020908652602052610cd3613dfd6040872093604051928391602083019586617c01565b51902084526020528260408120916001830154926002810154613e208186615bec565b6141bc575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa968715610996578697614183575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e57849161416e575b505084613efa617dd1565b919015918215614163575b50506118ba578285613f156188f7565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905290816044818673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af1801561189257614146575b506040516370a0823160e01b8152306004820152829060208160248173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa90811561029c578291614111575b506040516370a0823160e01b8152306004820152926020846024815f51602061a9535f395f51905f525afa9384156118925783946140da575b50602054604051638307c65560e01b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201525f51602061a9535f395f51905f526044820152606481018590526084810183905293608091859160a4918391906001600160a01b03165af19283156104ae5785936140b9575b506040516370a0823160e01b815230600482015260208160248173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa9081156109965786916117d557506108659061175b93615bdf565b6140d391935060803d608011610b2057610b118183615568565b918561406d565b925092506020823d602011614109575b816140f760209383615568565b81010312610932578391519285613fdf565b3d91506140ea565b9150506020813d60201161413e575b8161412d60209383615568565b810103126109325782905184613fa6565b3d9150614120565b61415e9060203d602011610f5957610f4c8183615568565b613f65565b14159050855f613f05565b8161417891615568565b6104d157825f613eef565b955095506020853d6020116141b4575b816141a060209383615568565b810103126109325793519487949081613e72565b3d9150614193565b909192506141ca8185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a614281916020948b91611a6357506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f575090859291613e25565b61429a61804b565b50613dc4565b816142aa91615568565b61067157815f613c9e565b506127108211613c55565b503461017b578060031936011261017b57602154819060209060405b8185106142e7578380f35b846142f36024966156f6565b6001600160601b031991549060031b1c60601b168560018060a01b036020541684519889809263ecbbc03360e01b82528560048301525afa968715614bc9578697614bad575b508251966143478489615568565b60018852853660208a01376024602061435f856156f6565b90548751634903b0d160e01b8152600481018c90529384929091839160031b1c6001600160a01b03165afa889181614b7a575b50614b675750602460206143a5856156f6565b9054875162cb501b60e31b8152600481018c90529384929091839160031b1c6001600160a01b03165afa8015614b5d578890614b2b575b600a9150046143ea89615a3a565b525b6001600160a01b036143fd82615a3a565b51169761446561440c82615a3a565b51998980885160208101906370a0823160e01b825230602482015260248152614436604482615568565b5190845afa50614447610beb617858565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156136a657610c5681600161449a9301600e55615722565b905560018060a01b0360115416600f5460e01b896010549160ff60038a6144bf617c18565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b16948582526020528181208251602081019061450381610cd38c8c86617c01565b51902082526020522001541615614b1d575b6001600160a01b0384165f908152600d60205260409020908c52602052610cd361454c898d20938a51928391602083019586617c01565b5190208a526020528589209060018201549160028101549b61456e8d85615bec565b614a05575b81548951630667f9d760e41b81526001600160a01b0385166004820152602481018290529c9d9b9c9a9b999a98998e99956020876044815f51602061a9135f395f51905f525afa9687156149fb578b976149c3575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b156149bf578c516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528881606481835f51602061a9135f395f51905f525af180156149b55790899161499c575b505061464e617dd1565b919015918215614991575b50506148a75750505061466a6188f7565b6146cb60206001600160a01b0361468085615a3a565b5182546001600160a01b0316911661469785615a3a565b518a5163095ea7b360e01b81526001600160a01b039093166004840152602483015290928391908290899082906044820190565b03925af1801561489d5761473e959493926080929091614881575b506020546001600160a01b03908116906146ff85615a3a565b5116918661471f6001600160a01b0361471788615a47565b511692615a3a565b518b51638307c65560e01b8152998a9586948593918b60048601615ae4565b03925af193841561487757908392916147c195614857575b506020546001600160a01b03908116919061477082615a3a565b5116906001600160a01b039061478590615a47565b51895163549387df60e11b815260048101959095526001600160a01b039283166024860152161660448301529093849190829081906064820190565b03915afa91821561484d57600193928561481d93614812938b93614827575b5061480691816147f260209351615d3f565b016147fe815151615d3f565b510151615d3f565b61481861481282615a3a565b51615d3f565b615a47565b01939291906142dc565b602091935091614844614806938d3d8091833e6112a18183615568565b939150916147e0565b84513d89823e3d90fd5b61487091945060803d8111610b2057610b118183615568565b925f614756565b86513d85823e3d90fd5b6148989060203d8111610f5957610f4c8183615568565b6146e6565b87513d87823e3d90fd5b91868992819454905f51602061a9135f395f51905f523b156104d15784516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061a9135f395f51905f525af1801561498557614970575b815162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61497b838092615568565b6106715781614910565b505051903d90823e3d90fd5b141590505f80614659565b816149a691615568565b6149b157875f614644565b8780fd5b8b513d8b823e3d90fd5b8a80fd5b9a50955060208a3d82116149f3575b816149df60209383615568565b810103126109325798518e999095816145c8565b3d91506149d2565b8d513d8d823e3d90fd5b614a0f8d85615bec565b6101000361010081116136845760ff8111613684576001901b895163348051d760e11b81528160048201528d816024815f51602061a9135f395f51905f525afa908115614b1157606a8f8060208f9295614ac7955f51602061a8d35f395f51905f52989791614af7575b5083519788945f51602061a9735f395f51905f528487015285015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b821015614ad45750614573565b895162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b614b0b91503d8085833e6111e88183615568565b5f614a79565b8e8c51903d90823e3d90fd5b614b2561804b565b50614515565b506020813d8211614b55575b81614b4460209383615568565b8101031261093257600a90516143dc565b3d9150614b37565b85513d8a823e3d90fd5b600a9004614b7489615a3a565b526143ec565b9091506020813d8211614ba5575b81614b9560209383615568565b810103126109325751905f614392565b3d9150614b88565b614bc29197503d8088833e61028e8183615568565b955f614339565b83513d88823e3d90fd5b503461017b578060031936011261017b5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110614c32576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201614c1b565b503461017b57606036600319011261017b576024356001600160a01b038116810361067157816044356001600160a01b0381168103610671576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0394851660248201529184166044830152909283916064918391165afa801561029c57610277918391614cdd575051615c94565b61229e91503d8085833e6104a08183615568565b5034610932575f3660031901126109325760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061a9135f395f51905f525afa9081156153f857614d7a916020915f916154df575b50604051809381926371ee464d60e01b83526040600484015260448301906155cb565b630134c06a602483015203815f5f51602061a9135f395f51905f525af180156153f8576154b0575b50604051611d2b8082018281106001600160401b0382111761549c578291618ba8833903905ff080156153f85760018060a01b03166001600160601b0360a01b602054161760205560405161030081018181106001600160401b0382111761549c5760405273ecd5e75afb02efa118af914515d6521aabd189f1815273ed279fdd11ca84beef15af5d39bb4d4bee23f0ca60208201527343b4fdfd4ff969587185cdb6f0bd875c5fc83f8c6040820152739efe1a1cbd6ca51ee8319afc4573d253c3b732af6060820152734807862aa8b2bf68830e4c8dc86d0e9a998e085a608082015273d632f22692fac7611d2aa1c0d552930d43caed3b60a082015273a5407eae9ba41422680e2e00537571bcc53efbfd60c0820152735a6a4d54456819380173272a5e8e9b9904bdf41b60e0820152733211c6cbef1429da3d0d58494938299c92ad586061010082015273db6925ea42897ca786a045b252d95aa7370f44b461012082015273f861483fa7e511fbc37487d91b6faa803af5d37c610140820152731e098b32944292969fb58c85bdc85545da39711761016082015273e0e970a99bc4f53804d8145bebbc7ebc9422ba7f610180820152736bfe880ed1d639bf80167b93cc9c56a39c1ba2dc6101a082015273bdfae7d2cf2e69e27b75a5287ecd3808f62b5a766101c082015273fb8814d005c5f32874391e888da6eb2fe7a279026101e0820152730f3159811670c117c372428d4e69ac32325e4d0f610200820152734ebdf703948ddcea3b11f675b4d1fba9d2414a14610220820152730e9b5b092cad6f1c5e6bc7f89ffe1abb5c95f1c26102408201527321410232b484136404911780bc32756d5d1a9fa961026082015273322135dd9cbae8afa84727d9ae1434b5b3eba44b61028082015273c26b89a667578ec7b3f11b2f98d6fd15c07c54ba6102a0820152739409280dc1e6d33ab7a8c6ec03e5763fb61772b56102c0820152735fae7e604fc3e24fd43a72867cebac94c65b404a6102e0820152602154601860215580601810615440575b5060215f525f5b601881106154035760205483906001600160a01b03165f51602061a9135f395f51905f523b1561093257604051906318caf8e360e31b8252600482015260406024820152600c60448201526b21bab93b32a0b230b83a32b960a11b60648201525f81608481835f51602061a9135f395f51905f525af180156153f8576153e5575b505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81525f51602061a9535f395f51905f5260048201526040602482015260046044820152631554d11560e21b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153d0575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b815273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860048201526040602482015260046044820152635553444360e01b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153bb575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c7600482015260406024820152600b60448201526a14d51050931157d413d3d360aa1b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153a6575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81525f51602061a9335f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f51602061a9135f395f51905f525af1801561029c57615391575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe5600482015260406024820152600b60448201526a10d496541513d7d413d3d360aa1b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153805750f35b8161538a91615568565b61017b5780f35b8161539b91615568565b61017b5780826152fd565b816153b091615568565b61017b57808261528a565b816153c591615568565b61017b578082615209565b816153da91615568565b61017b57808261518f565b6153f191505f90615568565b5f8161511d565b6040513d5f823e3d90fd5b81516001600160a01b03167f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57082015560209091019060010161509c565b7f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570017f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5885b8181106154915750615095565b5f8155600101615484565b634e487b7160e01b5f52604160045260245ffd5b6020813d6020116154d7575b816154c960209383615568565b810103126109325751614da2565b3d91506154bc565b6154f391503d805f833e6111e88183615568565b5f614d57565b346109325760403660031901126109325761552a60209161551981615532565b600435815260243583820152615867565b604051908152f35b604081019081106001600160401b0382111761549c57604052565b606081019081106001600160401b0382111761549c57604052565b90601f801991011681019081106001600160401b0382111761549c57604052565b60206040818301928281528451809452019201905f5b8181106155ac5750505090565b82516001600160a01b031684526020938401939092019160010161559f565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b83831061561a57505050505090565b9091929394602080615638600193601f1986820301875289516155cb565b9701930193019193929061560b565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061567957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106156d3575050506020806001929701930193019193929061566a565b82516001600160e01b0319168452602093840193909201916001909101906156b4565b60215481101561570e5760215f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b600e5481101561570e57600e5f5260205f2001905f90565b601f5481101561570e57601f5f5260205f2001905f90565b90600182811c92168015615780575b602083101461576c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615761565b5f929181549161579983615752565b80835292600181169081156157ee57506001146157b557505050565b5f9081526020812093945091925b8383106157d4575060209250010190565b6001816020929493945483858701015201910191906157c3565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161549c5760051b60200190565b8181029291811591840414171561583557565b634e487b7160e01b5f52601160045260245ffd5b8115615853570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a000000149015171561583557602061589e92015190615849565b90565b6001600160401b03811161549c57601f01601f191660200190565b602081830312610932578051906001600160401b038211610932570181601f82011215610932578051906158ef826158a1565b926158fd6040519485615568565b8284526020838301011161093257815f9260208093018386015e8301015290565b90816020910312610932575190565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151906159618261580b565b9261596f6040519485615568565b82845260208085019360051b82010191821161093257602001915b8183106159975750505090565b8251600a8110156109325781526020928301920161598a565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151906159e48261580b565b926159f26040519485615568565b82845260208085019360051b82010191821161093257602001915b818310615a1a5750505090565b82516001600160a01b038116810361093257815260209283019201615a0d565b80511561570e5760200190565b80516001101561570e5760400190565b805182101561570e5760209160051b010190565b90816020910312610932575180151581036109325790565b919082604091031261093257604051615a9b81615532565b6020808294805184520151910152565b9060808282031261093257615adc906040805193615ac88561554d565b805185526020810151602086015201615a83565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b7380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b81525f51602061a9335f395f51905f5260208201525f51602061a9535f395f51905f5260408201525f6060820152608081019190915260a00190565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151615b998161580b565b92615ba76040519485615568565b81845260208085019260051b82010192831161093257602001905b828210615bcf5750505090565b8151815260209182019101615bc2565b9190820391821161583557565b9190820180921161583557565b60085460ff168015615c085790565b50604051630667f9d760e41b81525f51602061a9135f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a9135f395f51905f525afa9081156153f8575f91615c62575b50151590565b90506020813d602011615c8c575b81615c7d60209383615568565b8101031261093257515f615c5c565b3d9150615c70565b5f51602061a9135f395f51905f523b15610932576040519063260a5b1560e21b82526004820152600260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f615cee91615568565b565b905f51602061a9135f395f51905f523b15610932576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f51602061a9135f395f51905f523b156109325760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f51602061a9135f395f51905f523b156109325760405163c88a5e6d60e01b81526001600160a01b0391909116600482015260248101919091525f81604481835f51602061a9135f395f51905f525af180156153f857615ce45750565b60405190615df88261554d565b815f81525f60208201526040805191615e1083615532565b5f83525f60208401520152565b604051610ca09190615e2f8382615568565b6064815291601f1901825f5b828110615e4757505050565b602090615e52615deb565b82828501015201615e3b565b5f51602061a9135f395f51905f523b15610932576040519063a8d4d1d960e01b82526004820152600260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b15610932576040519163a8d4d1d960e01b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b156109325760405191638466f41560e01b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f5b8151811015615f9557615f618183615a57565b51600a811015615f8157600514615f7a57600101615f4e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b8151811015615f9557615fb08183615a57565b51600a811015615f8157600914615f7a57600101615f9d565b5f5b8151811015615f9557615fde8183615a57565b51600a811015615f8157600814615f7a57600101615fcb565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f1960448401526044835261602f606484615568565b82516001600160a01b038316915f91829182855af19061604d617858565b826160ad575b50816160a2575b501561606557505050565b61609d615cee936040519063095ea7b360e01b602083015260248201525f604482015260448152616097606482615568565b82617915565b617915565b90503b15155f61605a565b805191925081159182156160c5575b5050905f616053565b6160d89250602080918301019101615a6b565b5f806160bc565b602081830312610932578051906001600160401b038211610932570181601f820112156109325780516161118161580b565b9261611f6040519485615568565b81845260208085019260061b8401019281841161093257602001915b838310616149575050505090565b60206040916161588486615a83565b81520192019161613b565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106161a75750505090565b825184526020938401939092019160010161619a565b604051906161cc606083615568565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af180156153f85761627f915f916178445750615a3a565b5161010052606060a08190526040516162db9161629c9082615568565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b6040820152610100516179d8565b60a051505f806163636163916040516162f660a05182615568565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a48301906155cb565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156153f8576163fe915f9161782a575b50615f9b565b906040519161640e60a084615568565b6004835260803660208501371561781d575f5b61642a83615a3a565b526103e8610100510461643c83615a47565b5281516002101561570e5760a05182016101005160011c905281516003101561570e5761010051608083015260405163155adc9160e31b8152935f858061648986868b8a60048601616163565b0381836001600160a01b0386165af19485156153f8575f95617801575b506164b96164b386615a3a565b51615867565b85515f19810191908211615835576164d76164b36165319389615a57565b60a05160405192906164e99084615568565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152617a3f565b61653d6164b386615a3a565b85515f198101908111615835576165d86165f15f936165606164b386958c615a57565b60a0516040519291906165739084615568565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a051602486015260848501906155cb565b916044840152606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa5060a0516040516166579161661a9082615568565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617a74565b6166a961666386615a3a565b5151604060e08190528051919061667a9083615568565b601882527f4e6f6d696e61746f722073686f756c646e27742062652030000000000000000060208301526179d8565b6166fa60206166b787615a3a565b51015160e051805191906166cb9083615568565b601a82527f44656e6f6d696e61746f722073686f756c646e2774206265203000000000000060208301526179d8565b6167066164b386615a3a565b9460e051506167458660e0515161671f60e05182615568565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617ab8565b61674d615deb565b5083515f198101908111615835576167659085615a57565b516005818102048103615835575f8060e0515160208101906370a0823160e01b82523060248201526024815261679c604482615568565b51908b5afa506167ad610beb617858565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b81101561549c57610c568160016167fe9301600e55615722565b90556011546001600160a01b031661014052600f546010549060e01b616822617c18565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e05151602081019061686b81610cd3888886617c01565b5190205f5260205260ff600360e0515f20015416156177f3575b610140516001600160a01b03165f908152600d60205260409020905f52602052610cd36168c360e0515f209360e05151928391602083019586617c01565b5190205f5260205260e0515f2060018101549160028201546168e58185615bec565b6176dd575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a9135f395f51905f525afa95861561769d575f966176a9575b506001908201610100031b5f1901811b1985165f51602061a9135f395f51905f523b156109325760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a9135f395f51905f525af1801561769d57617688575b506169c1617dd1565b901591821561767a575b50506175865750506169db6188f7565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a9135f395f51905f525af18015616ed25761012051608052617553575b5060015b8451811015616f9f575f80616ad0616af6616a338561573a565b50616a3e868b615a57565b51616ae2610586616aaa60e0515194616a5960a05187615568565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e051519283809261578a565b60e05151635821efa160e01b602082015260a051602482015295869460848601906155cb565b848103602319016044860152906155cb565b90606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa50616b186164b38284615a57565b5f80616b8d616bb18c616b2b878c615a57565b5160e0515191616b3d60e05184615568565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a051602486015260848501906155cb565b60448401929092526001600160a01b0316606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89616bf5616bd8878c615a57565b5160e05151638307c65560e01b8152958694859460048601615ae4565b03816101205160018060a01b038a165af1908115616ed2576101205191616f81575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715616f6757616c64616c6f916a084595161401484a000000616c5c878c615a57565b519102615849565b9160e0510151615867565b91616cb38260e05151616c8460e05182615568565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617ab8565b616cf68160e05151616cc760e05182615568565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617ab8565b616d398360e05151616d0a60e05182615568565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617ab8565b60c05115616ee15760a05160e05151616e6d94616e12939092616da8929190616d629083615568565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617afb565b60a05160e051519190616dbb9083615568565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283617a3f565b60a05160e051519190616e259083615568565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289617a3f565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a9135f395f51905f525af1918215616ed257600192616eb4575b5001616a19565b616ecb9060203d8111610f5957610f4c8183615568565b505f616ead565b60e051513d61012051823e3d90fd5b616f0a90616efb616f6294616ef46161bd565b908d617afb565b616f036161bd565b908b617afb565b60e0515190616f1b60a05183615568565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617afb565b616e6d565b634e487b7160e01b61012051526011600452602461012051fd5b616f99915060803d8111610b2057610b118183615568565b5f616c17565b50509150919392506069610100510261010051810460691461010051151715616f675760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015616ed257617023916101205191617536575b50615fc9565b156173d95761708b8460e0515161703c60a05182615568565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617ab8565b60e0518051949061709c9086615568565b6001855260e051601f19013660208701376170b685615a3a565b5260e0515163155adc9160e31b81526101205181806170db8888878c60048601616163565b03816101205160018060a01b0388165af190816173b6575b5061734a576001617102617b30565b6308c379a0146172bc575b616ed25761711c608094615a3a565b519461713f60e0515196879586948594638307c65560e01b865260048601615ae4565b61012051919003926001600160a01b03165af1908161729f575b5061723d576001617168617b30565b6308c379a0146171ba575b616ed2575b615cee60e0515161718b60e05182615568565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617a74565b6171c2617b4b565b806171ce575b50617173565b6101205160a05160e051519193506172379291906171ec9082615568565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152617bbd565b5f6171c8565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6172b79060803d608011610b2057610b118183615568565b617159565b6172c4617b4b565b806172d0575b5061710d565b6101205160a05160e051519193506173449291906172ee9082615568565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152617bbd565b5f6172ca565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6173d4903d8061012051833e6173cc8183615568565b8101906160df565b6170f3565b60a05160e0515161743b918691906173f19082615568565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617ab8565b60e0518051949061744c9086615568565b6001855260e051601f190136602087013761746685615a3a565b5260e051519363155adc9160e31b855261012051858061748c8488878c60048601616163565b03816101205160018060a01b0388165af1908115616ed2576080956174b59261751b5750615a3a565b51946174d860e0515196879586948594638307c65560e01b865260048601615ae4565b61012051919003926001600160a01b03165af18015616ed2576174fc575b50617178565b6175149060803d608011610b2057610b118183615568565b505f6174f6565b617531903d8061012051833e6173cc8183615568565b610720565b61754d91503d8061012051833e6104a08183615568565b5f61701d565b6020813d60201161757e575b8161756c60209383615568565b8101031261093257516080525f616a15565b3d915061755f565b545f51602061a9135f395f51905f523b156176735760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a9135f395f51905f525af18015616ed257617658575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6101205161766591615568565b6101205161767357806175f6565b6101205180fd5b600502141590505f806169cb565b5f61769291615568565b5f610120525f6169b8565b60e051513d5f823e3d90fd5b9095506020813d6020116176d5575b816176c560209383615568565b810103126109325751948161693b565b3d91506176b8565b6176e78185615bec565b6101000361010081116158355760ff81116158355760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a9135f395f51905f525afa91821561769d576177a3606a6020946001945f916177d9575b5060e051519586915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615568565b1b8360050210156177b457506168ea565b60e0515162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b6177ed91503d805f833e6111e88183615568565b5f617741565b6177fb61804b565b50616885565b6178169195503d805f833e6173cc8183615568565b935f6164a6565b6127106101005104616421565b61783e91503d805f833e6104a08183615568565b5f6163f8565b6112a991503d805f833e6112a18183615568565b3d15617882573d90617869826158a1565b916178776040519384615568565b82523d5f602084013e565b606090565b6178a790602061789c82518286015190615822565b935191015190615822565b908082036178b55750505f90565b11156178c057600190565b5f1990565b5f51602061a9135f395f51905f523b15610932576040519063fe74f05b60e01b82526004820152600160248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b8151617940926001600160a01b03909216915f91829160200182855af161793a617858565b91617f90565b8051908161794c575050565b60208061795d938301019101615a6b565b1561796457565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b61589e93926060928252602082015281604082015201906155cb565b5f51602061a9135f395f51905f523b1561093257617a20915f916040519384928392636cd1e26960e11b845260048401528460248401526060604484015260648301906155cb565b03815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b15610932575f91617a206040519485938493636cd1e26960e11b8552600485016179bc565b5f610cd3617aa1829360405192839163104c13eb60e21b60208401526020602484015260448301906155cb565b6020815191016a636f6e736f6c652e6c6f675afa50565b617ae7617aa15f93928493604051938492632d839cb360e21b60208501526040602485015260648401906155cb565b90604483015203601f198101835282615568565b905f51602061a9135f395f51905f523b15610932575f91617a206040519485938493630389490b60e61b8552600485016179bc565b5f9060033d11617b3c57565b905060045f803e5f5160e01c90565b5f60443d1061589e576040513d600319016004823e8051913d60248401116001600160401b03841117617bb757828201928351916001600160401b038311617baf573d84016003190185840160200111617baf575061589e92910160200190615568565b949350505050565b92915050565b617bef617aa15f9392610cd38594604051948593634b5c427760e01b60208601526040602486015260648501906155cb565b838103602319016044850152906155cb565b60209291908391805192839101825e019081520190565b617c23601454615752565b617ce0576040519081826020600e549283815201600e5f5260205f20925f5b818110617cc7575050617c5792500383615568565b81518060051b908082046020149015171561583557617c75816158a1565b90617c836040519283615568565b808252617c92601f19916158a1565b013660208301375f5b8351811015617cc25780617cb160019286615a57565b5160208260051b8501015201617c9b565b509150565b8454835260019485019487945060209093019201617c42565b60405161589e8161058681601461578a565b6007810190617d018254615752565b617dbd57600191500190604051808360208295549384815201905f5260205f20925f5b818110617da4575050617d3992500383615568565b81518060051b908082046020149015171561583557617d57816158a1565b90617d656040519283615568565b808252617d74601f19916158a1565b013660208301375f5b8351811015617cc25780617d9360019286615a57565b5160208260051b8501015201617d7d565b8454835260019485019487945060209093019201617d24565b5061589e610586916040519283809261578a565b5f806020600f5460e01b617e1f6024617dea600d617cf2565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615568565b6011549151916001600160a01b03165afa90617e39617858565b601054909290600581901b906001600160fb1b03811603615835575f938051602081115f14617ec457506020905b5f925b828410617e7957505050509190565b90919295617e878783615bec565b835181101561570e57830160200151600388901b91906001600160f81b031916881560088a8504141715615835576001921c179601929190617e6a565b90617e67565b905f806020600285015460e01b617ee56024617dea88617cf2565b60048601549151916001600160a01b03165afa6003617f02617858565b930154600581901b906001600160fb1b03811603615835575f938051602081115f14617f8a57506020905b5f925b828410617f3f57505050509190565b90919295617f4d8783615bec565b835181101561570e57830160200151600388901b91906001600160f81b031916881560088a8504141715615835576001921c179601929190617f30565b90617f2d565b90617fb45750805115617fa557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580617fe5575b617fc5575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15617fbd565b9080601f830112156109325781516180058161580b565b926180136040519485615568565b81845260208085019260051b82010192831161093257602001905b82821061803b5750505090565b815181526020918201910161802e565b601154600f546010546001600160a01b03909216915f9160e01b61806f600d617cf2565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906180a881610cd3888886617c01565b5190205f5260205260ff600360405f200154166188b6575f51602061a9135f395f51905f523b156109325760405163266cf10960e01b81525f81600481835f51602061a9135f395f51905f525af180156153f8576188a1575b5061810c600d617eca565b90506040516365bc948160e01b81528660048201528581602481835f51602061a9135f395f51905f525af190811561099657869161883d575b5080516181b657608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618835578160206181d18361820295615a57565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a9135f395f51905f525afa928315610ad7578893618802575b5082156187aa575b6182348282615a57565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a9135f395f51905f525afa9081156111f7578b91618779575b5061828f600d617eca565b91909382155f14618772575f19905b5f51602061a9135f395f51905f523b15618759576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a9135f395f51905f525af180156186e257908d9161875d575b505061830f600d617eca565b601154909491506001600160a01b03165f51602061a9135f395f51905f523b15618759576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a9135f395f51905f525af1801561874e57908c91618739575b50508261872e575b505015618724578793889360ff601354166185a9575b6001868601610100031b5f1901851b16841c810361859b575090618429917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89610cd36183fe8d604051928391602083019586617c01565b51902061840b8686615a57565b51906040519283528a602084015260408301526060820152a1615a57565b51906040519060808201928284106001600160401b0385111761549c5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019061849281610cd38d8d86617c01565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d602052604084208185526020526040842060405160208101906184ed81610cd3888886617c01565b519020855260205260ff6003604086200154161561853e576040948452600d602052848420908452602052610cd3618532858520938651928391602083019586617c01565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016181b8565b94506185f493506185ba8383615a57565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a9135f395f51905f525afa9485156110cf578a956186f1575b5061862086600d618a0b565b95909661862e81600d618ae4565b60115490939192906001600160a01b03165f51602061a9135f395f51905f523b156186ed576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a9135f395f51905f525af180156186e257908d916186c9575b5050876186c1575b5094956183a35750935091506001906185a3565b96505f6186ad565b816186d391615568565b6186de578b5f6186a5565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d821161871c575b8161870c60209383615568565b810103126109325751935f618614565b3d91506186ff565b91506001906185a3565b141590505f8061838d565b8161874391615568565b6149bf578a5f618385565b6040513d8e823e3d90fd5b8d80fd5b8161876791615568565b6186de578b5f618303565b8c9061829e565b90506020813d82116187a2575b8161879360209383615568565b8101031261093257515f618284565b3d9150618786565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56187fa6187d88484615a57565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a161822a565b9092506020813d821161882d575b8161881d60209383615568565b810103126109325751915f618222565b3d9150618810565b5050506184c0565b90503d8087833e61884e8183615568565b81016040828203126104c95781516001600160401b0381116149b15781618876918401617fee565b916020810151906001600160401b03821161889d57618896929101617fee565b505f618145565b8880fd5b6188ae9194505f90615568565b5f925f618101565b91939092505f52600d60205260405f20905f52602052610cd36188e860405f2093604051928391602083019586617c01565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806189c9575b505f60105560ff196013541660135561893d601454615752565b806189455750565b601f811160011461895757505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106189be57505060145f525f602081208160145555565b5f81556001016189a5565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618a005750618923565b5f81556001016189f3565b91905f5b6101008110618a2257505090505f905f90565b8060ff0360ff8111615835576004850154600190911b906001600160a01b03165f51602061a9135f395f51905f523b15610932576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a9135f395f51905f525af180156153f857618ad4575b50618aae84617eca565b81618aca575b50618ac157600101618a0f565b92505060019190565b905015155f618ab4565b5f618ade91615568565b5f618aa4565b91905f5b6101008110618afb57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a9135f395f51905f523b15610932576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a9135f395f51905f525af180156153f857618b97575b50618b7a84617eca565b81618b8d575b50618ac157600101618ae8565b905015155f618b80565b5f618ba191615568565b5f618b7056fe60808060405234601557611d11908161001a8239f35b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146107d05750806348bd7dfd1461073b5780638307c655146106d5578063a9270fbe146102c7578063aad6e488146101fd5763ecbbc0331461006a575f61000f565b346101f95760203660031901126101f95761008960043560601c610cfc565b602081016100978151610c9d565b5f925f5b835181101561012f5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036100cb838551610939565b511614610126575b6001905f516020611cbc5f395f51905f52828060a01b036100f5838651610939565b51161461012157818060a01b0361010d828551610939565b51166101198286610925565b525b0161009b565b61011b565b600194506100d3565b5050915f146101f3578051600181018091116101df5761014e90610c9d565b915f5b8251811015610182576001906001600160a01b0361016f8285610925565b511661017b8287610925565b5201610151565b50506101905f915183610925565b525b6040518091602082016020835281518091526020604084019201905f5b8181106101bd575050500390f35b82516001600160a01b03168452859450602093840193909201916001016101af565b634e487b7160e01b5f52601160045260245ffd5b50610192565b5f80fd5b346101f95760803660031901126101f957610216610824565b5061021f61083a565b5060643567ffffffffffffffff81116101f957366023820112156101f95780600401359060246020610250846108dc565b61025d60405191826108ba565b848152019260051b820101903682116101f957602401915b8183106102b757604051631d04569d60e21b81526020600482015260126024820152714375727665416461707465722e707269636560701b6044820152606490fd5b8235815260209283019201610275565b346101f9576102d536610850565b9160601c9181815f926102e786610cfc565b926001600160a01b03166105f1575060208201935f5b85518110156105e6575f516020611cbc5f395f51905f5260018060a01b03610326838751610939565b51161480156105b6575b61033c576001016102fd565b835161037496505f516020611cbc5f395f51905f52925082916001600160a01b03916103689190610939565b5116146105ad57610ffd565b9091604051926103856060856108ba565b6002845260208401926040368537604051634903b0d160e01b81526001600160801b0383166004820152602081602481875afa5f9181610579575b506104ee57506040519162cb501b60e31b8352600f0b6004830152602082602481865afa80156104b0575f906104bb575b6020925060011c610401866108f4565b5260246040518094819362cb501b60e31b8352600f0b60048301525afa9081156104b0575f9161047e575b5060011c61043983610915565b52905b604051918291602083019060208452518091526040830191905f5b818110610465575050500390f35b8251845285945060209384019390920191600101610457565b90506020813d6020116104a8575b81610499602093836108ba565b810103126101f957518361042c565b3d915061048c565b6040513d5f823e3d90fd5b506020823d6020116104e6575b816104d5602093836108ba565b810103126101f957602091516103f1565b3d91506104c8565b602092506001600160801b039160249160011c61050a886108f4565b526040519485938492634903b0d160e01b84521660048301525afa9081156104b0575f91610547575b5060011c61054083610915565b529061043c565b90506020813d602011610571575b81610562602093836108ba565b810103126101f9575183610533565b3d9150610555565b9091506020813d6020116105a5575b81610595602093836108ba565b810103126101f9575190876103c0565b3d9150610588565b60019350610ffd565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036105de838751610939565b511614610330565b506103749450610ffd565b9093906001600160a01b03161561060d575b9261037493610ffd565b60208201935f5b85518110156106c9575f516020611cbc5f395f51905f5260018060a01b0361063d838751610939565b5116148015610699575b61065357600101610614565b835161037496505f516020611cbc5f395f51905f5293925083916001600160a01b03916106809190610939565b511614610690575b909350610603565b60019350610688565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036106c1838751610939565b511614610647565b50906103749450610688565b346101f95760a03660031901126101f9576106ee610824565b6106f661083a565b6064359160028310156101f9576080926107169260843592600435610957565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f95761074936610850565b50505060405161075a6060826108ba565b600281526020810160403682376001610772836108f4565b52604051906020820192602083525180935260408201905f935b8085106107995783830384f35b9091825190600a8210156107bc576020816001938293520193019401939061078c565b634e487b7160e01b5f52602160045260245ffd5b346101f95760403660031901126101f957631d04569d60e21b815260206004820152601760248201527f4375727665416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f957565b604435906001600160a01b03821682036101f957565b60609060031901126101f957600435906024356001600160a01b03811681036101f957906044356001600160a01b03811681036101f95790565b6040810190811067ffffffffffffffff8211176108a657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a657604052565b67ffffffffffffffff81116108a65760051b60200190565b8051156109015760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156109015760400190565b80518210156109015760209160051b010190565b9060088110156109015760051b0190565b919082039182116101df57565b9394929194604051956060870187811067ffffffffffffffff8211176108a6576040525f87525f602088015260405161098f8161088a565b5f81525f60208201526040880152868215610c9257506040519260e0840184811067ffffffffffffffff8211176108a65760405260208401966040850160608601945f865260808701945f865260c08801935f855260601c9485895260018060a01b031690818c5260018060a01b03169182845260a0890152610a125f95610cfc565b93610a268560018060a01b038b5116610e7a565b15159052610bad575060208201985f5b8a51811015610b9d575f516020611cbc5f395f51905f5260018060a01b03610a5f838751610939565b5116148015610b6d575b610a7557600101610a36565b610ac095969798999a505f516020611cbc5f395f51905f5290818352610aa360018060a01b03918651610939565b511614610b64575b5190516001600160a01b039081169116610ffd565b600f9291920b9052600f0b90525a9160028110156107bc57610b0657610af5610aff92610aec836111b3565b86525a9061094a565b6020850152611721565b6040830152565b60405163643c60f360e01b815260206004820152602f60248201527f4f72646572536964652e427579206973206e6f7420617661696c61626c65206660448201526e37b9103a3434b99030b230b83a32b960891b6064820152608490fd5b60019350610aab565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610b95838751610939565b511614610a69565b50610ac094959697989950610aab565b15610bc1575b610ac0939495969798610aab565b60208201985f5b8a51811015610c82575f516020611cbc5f395f51905f5260018060a01b03610bf1838751610939565b5116148015610c52575b610c0757600101610bc8565b610ac095969798999a505f516020611cbc5f395f51905f5290818452610c3560018060a01b03918651610939565b511614610c49575b98979695949350610bb3565b60019350610c3d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610c7a838751610939565b511614610bfb565b50610ac094959697989950610c3d565b955050505050915090565b90610ca7826108dc565b610cb460405191826108ba565b8281528092610cc5601f19916108dc565b0190602036910137565b908160209103126101f957516001600160a01b03811681036101f95790565b5f1981146101df5760010190565b90604051610d098161088a565b604051610100610d1981836108ba565b3682378152602081015f815281935f92610d32826119c0565b610ddb57925b60088110610d47575b50505050565b60405163c661065760e01b815260048101829052906020826024816001600160a01b0387165afa5f9281610dab575b50610d815750610d41565b600191610d8f828751610939565b90838060a01b03169052610da38451610cee565b845201610d38565b610dcd91935060203d8111610dd4575b610dc581836108ba565b810190610ccf565b915f610d76565b503d610dbb565b925b60088110610deb5750505050565b60405163046e8dd760e31b81526001600160801b038216600f0b6004820152906020826024816001600160a01b0387165afa5f9281610e5a575b50610e305750610d41565b600191610e3e828751610939565b90838060a01b03169052610e528451610cee565b845201610ddd565b610e7391935060203d8111610dd457610dc581836108ba565b915f610e25565b815151602491906001600160a01b03165f516020611cbc5f395f51905f52148015610fd5575b15610fcb57602060ff60015b1693610ec08560018060a01b039251610939565b516040516370a0823160e01b81526001600160a01b03909416600485018190529394859290918391165afa9182156104b0575f92610f96575b50606460ff91602093941590815f14610f8e575f915b15610f8557600a6001965b85604051988997889663556d6e9f60e01b88521660048701521660248501520460448301525afa9081610f56575b50610f5257600190565b5f90565b6020813d602011610f7d575b81610f6f602093836108ba565b810103126101f95751610f48565b3d9150610f62565b600a5f96610f1a565b600191610f0f565b91506020823d602011610fc3575b81610fb1602093836108ba565b810103126101f9579051906064610ef9565b3d9150610fa4565b602060ff5f610eac565b508251516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610ea0565b5f94939192918590846001600160a01b0384165f516020611cbc5f395f51905f52148061112a575b61110e575b6001600160a01b03165f516020611cbc5f395f51905f52149081611105575b506110e9575b5f955b60208401518710156110e05783516001600160a01b0390611074908990610939565b516001600160a01b03851691160361109f575060016001600160801b038716600f0b965b0195611052565b9560018060a01b036110b2828651610939565b51166001600160a01b038616146110cc575b600190611098565b6001600160801b038116600f0b91506110c4565b95509392505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061104f565b9050155f611049565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061102a565b508115611025565b3d1561116c573d9067ffffffffffffffff82116108a65760405191611161601f8201601f1916602001846108ba565b82523d5f602084013e565b606090565b1561117857565b60405162461bcd60e51b8152602060048201526013602482015272115d1a081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b6040810180516020830180515f959447946001600160a01b039485169490938893909116905f516020611cbc5f395f51905f5286036116b85747965b60c0840151156114305750516001600160a01b03165f516020611cbc5f395f51905f52036113735750805160a08201516060830151608090930151600f90810b93900b916001600160a01b0316803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b6024840152604483018190525f6064840152839183916084918391905af180156113685761134f575b50505f516020611cbc5f395f51905f52905b516001600160a01b0316036112ce57506112b66112cc914761094a565b9280808086335af16112c6611132565b50611171565b565b926040516370a0823160e01b8152306004820152602081602481885afa918215611343579161130f575b506112cc916113069161094a565b80933390611b9e565b90506020813d60201161133b575b8161132a602093836108ba565b810103126101f957516112cc6112f8565b3d915061131d565b604051903d90823e3d90fd5b81611359916108ba565b61136457845f611287565b8480fd5b6040513d84823e3d90fd5b9061139b60a082019261138984513033846119f9565b60018060a01b03835116845191611a42565b60018060a01b0381511660806060830151600f0b920151600f0b925190803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b602484015260448301525f606483015282908290818381608481015b03925af180156113685761141b575b50505f516020611cbc5f395f51905f5290611299565b81611425916108ba565b61136457845f611405565b90916001600160801b03606085015116915f516020611cbc5f395f51905f526001600160801b036080870151169460018060a01b03905116145f146114d2575050825160a090930151926001600160a01b0316803b156113645760405163ce7d650360e01b815260048101929092526024820192909252604481018390525f6064820152600160848201523060a4820152918391839182908160c481016113f6565b9094506114fe60a085939501956114ec87513033846119f9565b60018060a01b03845116875191611a42565b81518551906001600160a01b0316803b156101f95760405163ce7d650360e01b8152600481018790526024810186905260448101929092525f60648301819052600160848401523060a484015290829060c490829084905af19081611699575b50908a95949392916115cf575b50519251926001600160a01b0316803b15611364578492836084926040519687958694630b68372160e31b86526004860152602485015260448401528160648401525af180156113685761141b5750505f516020611cbc5f395f51905f5290611299565b6115de9192939495504761094a565b8015611612576115f78a80808085335af16112c6611132565b806116075790899493929161156b565b985050505050505050565b506040516370a0823160e01b81523060048201526020816024818a5afa801561168e5788908b90611658575b611648925061094a565b611653813389611b9e565b6115f7565b50506020813d602011611686575b81611673602093836108ba565b810103126101f95787611648915161163e565b3d9150611666565b6040513d8c823e3d90fd5b6116ab9196959493929b505f906108ba565b5f9990919293945f61155e565b6040516370a0823160e01b81523060048201529350602084602481895afa80156104b05789945f916116ec575b50966111ef565b9450506020843d602011611719575b81611708602093836108ba565b810103126101f9578893515f6116e5565b3d91506116fb565b60405161172d8161088a565b5f81525f60208201525060608101906001600160801b0382511660808201906001600160801b0382511660c084015115155f146118f557508251604051634903b0d160e01b81526004810192909252602090829060249082906001600160a01b03165afa5f91816118c1575b506118b0575060018060a01b038251169060208451600f0b60246040518095819362cb501b60e31b835260048301525afa9182156104b0575f9261187b575b506064620186a060209304935b5194519151604051635e0d443f60e01b8152600f93840b6004820152920b602483015260448201849052909384919082906001600160a01b03165afa9182156104b0575f92611847575b506040519161183d8361088a565b8252602082015290565b9091506020813d602011611873575b81611863602093836108ba565b810103126101f95751905f61182f565b3d9150611856565b91506020823d6020116118a8575b81611896602093836108ba565b810103126101f95790519060646117d8565b3d9150611889565b906064620186a060209304936117e5565b9091506020813d6020116118ed575b816118dd602093836108ba565b810103126101f95751905f611799565b3d91506118d0565b8351604051634903b0d160e01b81526004810184905292955091925090602090839060249082906001600160a01b03165afa9182156104b0575f9261198b575b506064620186a0602093049360018060a01b0390511694604051958693849263556d6e9f60e01b8452600484015260248301528560448301525afa9182156104b0575f9261184757506040519161183d8361088a565b91506020823d6020116119b8575b816119a6602093836108ba565b810103126101f9579051906064611935565b3d9150611999565b604051634903b0d160e01b81525f600482015290602090829060249082906001600160a01b03165afa9081610f565750610f5257600190565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526112cc91611a3d6084836108ba565b611bf2565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156104b0575f95611b6a575b5084018094116101df5760405163095ea7b360e01b602082019081526001600160a01b039290921660248201526044808201959095529384525f908190611acd6064876108ba565b85519082855af190611add611132565b82611b38575b5081611b2d575b5015611af557505050565b611a3d6112cc936040519063095ea7b360e01b602083015260248201525f604482015260448152611b276064826108ba565b82611bf2565b90503b15155f611aea565b80519192508115918215611b50575b5050905f611ae3565b611b639250602080918301019101611bda565b5f80611b47565b9094506020813d602011611b96575b81611b86602093836108ba565b810103126101f95751935f611a85565b3d9150611b79565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526112cc91611a3d6064836108ba565b908160209103126101f9575180151581036101f95790565b5f80611c1a9260018060a01b03169360208151910182865af1611c13611132565b9083611c5d565b8051908115159182611c42575b5050611c305750565b635274afe760e01b5f5260045260245ffd5b611c559250602080918301019101611bda565b155f80611c27565b90611c815750805115611c7257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611cb2575b611c92575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611c8a56fe000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea264697066735822122095b2866d1bfb6558995f95f5311386e755a500933ce3b93e801eddc460105df664736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c756520677265000000000000000000000000a2e3356610840701bdf5611a53974510ae27e2e10000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec773746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220261575f55631d0bee0c5b5098e221188d5046535cb8f7c19239c842d6c79289064736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"138:14752:70:-:0;;;;;;3166:4:2;138:14752:70;;3166:4:2;138:14752:70;;;3166:4:2;138:14752:70;3166:4:2;138:14752:70;;1038:4:12;138:14752:70;;;1038:4:12;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;138:14752:70;;;;;;;;;:::i;:::-;564:29:65;138:14752:70;;-1:-1:-1;;;138:14752:70;;;;;564:29:65;;138:14752:70;;;;:::i;:::-;;;;-1:-1:-1;;;138:14752:70;;;;;564:29:65;;138:14752:70;;;;:::i;:::-;564:29:65;138:14752:70;;-1:-1:-1;;;138:14752:70;;;;564:29:65;;;138:14752:70;;;564:29:65;138:14752:70;;;564:29:65;138:14752:70;;;-1:-1:-1;;138:14752:70;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;564:29:65;138:14752:70;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;138:14752:70;;;;;;;;;;;-1:-1:-1;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;564:29:65;138:14752:70;;;;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;;;;;;;;;3166:4:2;138:14752:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x61016080604052600436101561001d575b50361561001b575f80fd5b005b5f905f3560e01c90816308c41745146154f9575080630a9254e414614cf15780631b92811314614c515780631ed7831c14614bd357806321ce99d1146142c057806327e10f5b14613bb55780632ade388014613a465780632b23bee7146137c15780633584c58c146137315780633dbde0cc14612a3b5780633e5e3c23146129bd5780633f7286f41461293f578063444bb9ce146122a457806359f2cba1146121f2578063642b929d14611fa857806366d9a9a014611dfa57806385226c8114611d60578063916a17c614611ad457806391e2f3bf146112cc57806399dd5ff814610675578063a00872f114610605578063ad74a8691461059b578063b5508aa9146104fa578063ba414fa6146104d5578063d170c3cc146102a7578063d4bdd1791461020c578063e20c9f711461017e5763fa7626d403610010573461017b578060031936011261017b57602060ff601e54166040519015158152f35b80fd5b503461017b578060031936011261017b5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101ed576101e9856101dd81870382615568565b60405191829182615589565b0390f35b82546001600160a01b03168452602090930192600192830192016101c6565b503461017b578060031936011261017b5760205460405163ecbbc03360e01b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b6004820152908290829060249082906001600160a01b03165afa801561029c5761027791839161027a575b5051615e5e565b80f35b61029691503d8085833e61028e8183615568565b8101906159b0565b5f610270565b6040513d84823e3d90fd5b503461017b57604036600319011261017b576004356001600160a01b0381168082036104d157602435916001600160401b0383116104cd57366023840112156104cd578260040135926102f98461580b565b936103076040519586615568565b8085526024602086019160051b830101913683116104c957602401905b8282106104b95750505061033783615a3a565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156104ae5761037791869161048c575b50615f4c565b1591845b84518110156104885761038e8186615a57565b51906040519163ecbbc03360e01b83526004830152868260248183875af1801561047d578561045d916001948a91610463575b506103dc86868060a01b036103d584615a3a565b5116615ff7565b6103ef86868060a01b036103d584615a47565b610427826103fd868c615a57565b51878060a01b0361040d85615a3a565b5116888060a01b0361041e86615a47565b5116918b616217565b610431848a615a57565b5190858060a01b0361044282615a47565b511690610454878060a01b0391615a3a565b51169188616217565b0161037b565b61047791503d808c833e61028e8183615568565b5f6103c1565b6040513d89823e3d90fd5b8580f35b6104a891503d8088833e6104a08183615568565b81019061592d565b5f610371565b6040513d87823e3d90fd5b8135815260209182019101610324565b8680fd5b8380fd5b8280fd5b503461017b578060031936011261017b5760206104f0615bf9565b6040519015158152f35b503461017b578060031936011261017b576019546105178161580b565b916105256040519384615568565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061056f57604051602080825281906101e9908201886155ef565b60016020819260405161058d81610586818961578a565b0382615568565b815201920192019190610552565b503461017b578060031936011261017b5760205460405163ecbbc03360e01b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b6004820152908290829060249082906001600160a01b03165afa801561029c5761027791839161027a575051615e5e565b503461017b57602036600319011261017b57600435601f548110156106715761062d9061573a565b91909161065d576040516101e99061064981610586818761578a565b6040519182916020835260208301906155cb565b634e487b7160e01b81526004819052602490fd5b5080fd5b503461017b57604036600319011261017b576004359060243580159081150361067157156112af5773ae7ab96520de3a18e5e111b5eaab095312d7fe8491815b60205460405163549387df60e11b8152736e1218b5cd701478a4be13af5c8c951f507b381160611b60048201526001600160a01b039283166024820181905295831660448201819052929091859183916064918391165afa90811561093e579061072691859161128d575b50615a3a565b51821080611281575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b8152901515600482015283816024815f51602061a9135f395f51905f525afa801561093e5790849161126c575b50508315918215610b5c5783946107a08260018060a0989697981b0360205416615d8e565b602080546040516370a0823160e01b81523060048201526001600160a01b0390911631929181602481895afa9081156104ae578591610b27575b50955b608060018060a01b036020541660a460405180988193638307c65560e01b8352736e1218b5cd701478a4be13af5c8c951f507b381160611b60048401528760248401528b60448401528160648401528960848401525af1948515610ad7578895610af6575b50156109b5575060205461086b9291610865916001600160a01b03163190615bdf565b90615cf0565b8051600381018091116109a1576040516370a0823160e01b815230600482015290602082602481875afa8015610996578592879161095d575b506108b8926108b291615bdf565b90615eae565b51600219810191908211610949576020602491604051928380926370a0823160e01b82523060048301525afa90811561093e578491610906575b506102779261090091615bdf565b90615efd565b90506020813d602011610936575b8161092160209383615568565b8101031261093257516102776108f2565b5f80fd5b3d9150610914565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b9250506020823d60201161098e575b8161097960209383615568565b810103126109325790518491906108b86108a4565b3d915061096c565b6040513d88823e3d90fd5b634e487b7160e01b85526011600452602485fd5b909194935060038501808611610ae2576040516370a0823160e01b815230600482015290602082602481865afa918215610ad7578892610aa1575b506108b26109fe9285615bdf565b6002198501948511610a8d57906020602492604051938480926370a0823160e01b82523060048301525afa918215610996578692610a55575b50610277946109006108659493610a4d93615bdf565b519147615bdf565b9291506020833d602011610a85575b81610a7160209383615568565b810103126109325791519091610277610a37565b3d9150610a64565b634e487b7160e01b86526011600452602486fd5b91506020823d602011610acf575b81610abc60209383615568565b81010312610932579051906108b26109f0565b3d9150610aaf565b6040513d8a823e3d90fd5b634e487b7160e01b87526011600452602487fd5b610b1991955060803d608011610b20575b610b118183615568565b810190615aab565b935f610842565b503d610b07565b9450506020843d602011610b54575b81610b4360209383615568565b81010312610932578693515f6107da565b3d9150610b36565b604051632eca54bf60e21b81526004810182905294602086602481737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa9586156104ae578596611238575b50848060405160208101906370a0823160e01b825230602482015260248152610bc6604482615568565b5190737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05afa50610bfa610beb617858565b6020808251830101910161591e565b50601180546001600160a01b031916737f39c581f595b53c5cb19bd0b3f8da6c935e2ca0179055600f805463ffffffff19166370a08231179055600e54600160401b81101561122457610c56816001610c6f9301600e55615722565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b036011541695600f5460e01b60105490610c8f617c18565b6001600160a01b038a165f908152600d60205260409020909163ffffffff60e01b1690818a52602052604089206040516020810190610ce181610cd3888886617c01565b03601f198101835282615568565b5190208a5260205260ff600360408b2001541615611216575b6001600160a01b038a165f908152600d60205260409020908952602052610cd3610d3360408a2093604051928391602083019586617c01565b51902087526020526040862096600188015490600289015498610d568a84615bec565b6110da575b8054604051630667f9d760e41b81526001600160a01b038416600482015260248101829052999a989997988b98946020866044815f51602061a9135f395f51905f525afa9586156110cf578a96611096575b506001908201610100031b5f1901811b198516915f51602061a9135f395f51905f523b15611092576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528781606481835f51602061a9135f395f51905f525af1908115610ad757889161107d575b505083610e35617dd1565b919015918215611072575b5050610f8f57505050610e516188f7565b60405190636f074d1f60e11b8252600482015260208160248187737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05af1801561093e57610f60575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015260248101849052908160448187865af1801561093e57610f33575b506040516370a0823160e01b8152306004820152602081602481855afa90811561093e578491610efe575b509047956107dd565b9350506020833d602011610f2b575b81610f1a60209383615568565b81010312610932578592515f610ef5565b3d9150610f0d565b610f549060203d602011610f59575b610f4c8183615568565b810190615a6b565b610eca565b503d610f42565b610f819060203d602011610f88575b610f798183615568565b81019061591e565b505f610e8d565b503d610f6f565b869291839154905f51602061a9135f395f51905f523b156104d1576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f51602061a9135f395f51905f525af1801561029c5761105d575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b611068828092615568565b61017b5780610ffc565b14159050845f610e40565b8161108791615568565b6104c957865f610e2a565b8980fd5b995094506020893d6020116110c7575b816110b360209383615568565b810103126109325797518b98909481610dad565b3d91506110a6565b6040513d8c823e3d90fd5b6110e48a84615bec565b6101000361010081116112025760ff8111611202576001901b996040519a63348051d760e11b8c528060048d01528a8c6024815f51602061a9135f395f51905f525afa9b8c156111f7578b9c6111d3575b50604051809c602082015f51602061a9735f395f51905f529052604082015f51602061a8d35f395f51905f5290526060820169030ba32b9103a3430b7160b51b905280516020819201606a84015e81018c606a82015203606a01601f1981018d526111a0908d615568565b8510156111ae579950610d5b565b60405162461bcd60e51b815260206004820152806111cf602482018e6155cb565b0390fd5b6111f0919c503d808d833e6111e88183615568565b8101906158bc565b9a5f611135565b6040513d8d823e3d90fd5b634e487b7160e01b8a52601160045260248afd5b61121e61804b565b50610cfa565b634e487b7160e01b86526041600452602486fd5b9095506020813d602011611264575b8161125460209383615568565b810103126109325751945f610b9c565b3d9150611247565b8161127691615568565b6104d157825f61077b565b50620186a0821161072f565b6112a991503d8087833e6112a18183615568565b810190615b66565b5f610720565b73ae7ab96520de3a18e5e111b5eaab095312d7fe849181926106b5565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b82527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048301525f51602061a9335f395f51905f5260248301525f51602061a9535f395f51905f5260448301525afa801561029c5761135c918391611ac05750615a3a565b51821080611ab4575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c57611a9f575b508060405160208101906370a0823160e01b8252306024820152602481526113d7604482615568565b51905f51602061a9335f395f51905f525afa506113f5610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015611a8b57610c5681600161144a9301600e55615722565b905560018060a01b0360115416600f5460e01b60105490611469617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908187526020526040862060405160208101906114ad81610cd3888886617c01565b519020875260205260ff60036040882001541615611a7d575b6001600160a01b0384165f908152600d60205260409020908652602052610cd36114ff6040872093604051928391602083019586617c01565b519020845260205282604081209160018301549260028101546115228186615bec565b611968575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa96871561099657869761192f575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e578491611916575b5050846115fc617dd1565b91901591821561190b575b50506118ba5782856116176188f7565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481865f51602061a9335f395f51905f525af180156118925761189d575b506040516370a0823160e01b8152306004820152906020826024815f51602061a9335f395f51905f525afa91821561189257839261185e575b506040516370a0823160e01b8152306004820152916020836024815f51602061a9535f395f51905f525afa92831561093e57849361182a575b50602054604051638307c65560e01b8152929060809084906001600160a01b03168188816117038760048301615b12565b03925af19283156104ae578593611809575b506040516370a0823160e01b81523060048201526020816024815f51602061a9335f395f51905f525afa9081156109965786916117d5575b506108659061175b93615bdf565b516040516370a0823160e01b81523060048201526020816024815f51602061a9535f395f51905f525afa90811561093e5784916117a1575b506102779261086591615bdf565b90506020813d6020116117cd575b816117bc60209383615568565b810103126109325751610277611793565b3d91506117af565b90506020813d602011611801575b816117f060209383615568565b81010312610932575161175b61174d565b3d91506117e3565b61182391935060803d608011610b2057610b118183615568565b9185611715565b9092506020813d602011611856575b8161184660209383615568565b81010312610932575191846116d2565b3d9150611839565b9091506020813d60201161188a575b8161187a60209383615568565b8101031261093257519083611699565b3d915061186d565b6040513d85823e3d90fd5b6118b59060203d602011610f5957610f4c8183615568565b611660565b82945054905f51602061a9135f395f51905f523b156104d1576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610fde565b14159050855f611607565b8161192091615568565b6104d157825f6115f1565b8580fd5b955095506020853d602011611960575b8161194c60209383615568565b810103126109325793519487949081611574565b3d915061193f565b909192506119768185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a611a2e916020948b91611a63575b506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f575090859291611527565b60405162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b611a7791503d808d833e6111e88183615568565b5f6119cf565b611a8561804b565b506114c6565b634e487b7160e01b83526041600452602483fd5b81611aa991615568565b61067157815f6113ae565b50620f42408211611365565b6112a991503d8085833e6112a18183615568565b503461017b578060031936011261017b57601c54611af18161580b565b90611aff6040519283615568565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310611b4257604051806101e98782615647565b604051611b4e81615532565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611cc15784600197946002979460209794611bd9945491818110611ca5575b818110611c89575b818110611c6d575b818110611c51575b818110611c35575b818110611c19575b818110611bff575b10611beb575b500382615568565b83820152815201920192019190611b2d565b6001600160e01b031916815286015f611bd1565b828a1b6001600160e01b0319168452928901928b01611bcb565b604083901b6001600160e01b0319168452928901928b01611bc3565b606083901b6001600160e01b0319168452928901928b01611bbb565b608083901b6001600160e01b0319168452928901928b01611bb3565b60a083901b6001600160e01b0319168452928901928b01611bab565b60c083901b6001600160e01b0319168452928901928b01611ba3565b60e083901b6001600160e01b0319168452928901928b01611b9b565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611b76565b503461017b578060031936011261017b57601a54611d7d8161580b565b91611d8b6040519384615568565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611dd557604051602080825281906101e9908201886155ef565b600160208192604051611dec81610586818961578a565b815201920192019190611db8565b503461017b578060031936011261017b57601b54611e178161580b565b90611e256040519283615568565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310611e6857604051806101e98782615647565b604051611e7481615532565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611f095784600197946002979460209794611ef7945491818110611ca557818110611c8957818110611c6d57818110611c5157818110611c3557818110611c1957818110611bff5710611beb57500382615568565b83820152815201920192019190611e53565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611e9c565b503461017b57602036600319011261017b5760205460405163549387df60e11b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b600482810191909152602482018490525f51602061a9535f395f51905f52604483015235916001600160a01b0316908381606481855afa801561093e5761202f91859161128d5750615a3a565b518210806121e6575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b815290151560048201528380826024815f51602061a9135f395f51905f525afa9182156121d95784926121c0575b505061209091615d8e565b602080546040516370a0823160e01b8152306004820152926001600160a01b0390911680319285929190856024815f51602061a9535f395f51905f525afa948515611892578395612187575b5060809060a460405180958193638307c65560e01b83527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048401528160248401525f51602061a9535f395f51905f5260448401528160648401528660848401525af19182156104ae578592612160575b5061086561175b929360018060a01b03602054163190615bdf565b61175b92506121806108659160803d608011610b2057610b118183615568565b9250612145565b925093506020823d6020116121b8575b816121a460209383615568565b8101031261093257608085925194906120dc565b3d9150612197565b819250906121cd91615568565b6104d15781835f612085565b50604051903d90823e3d90fd5b50620f42408211612038565b503461017b578060031936011261017b5760205460405163549387df60e11b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201525f51602061a9535f395f51905f526044820152908290829060649082906001600160a01b03165afa801561029c5761027791839161228a575b5051615c94565b61229e91503d8085833e6112a18183615568565b5f612283565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b8252735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048301525f51602061a8f35f395f51905f5260248301528460448301525afa801561029c57612327918391611ac05750615a3a565b51821080612930575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c5761291b575b508060405160208101906370a0823160e01b8252306024820152602481526123a2604482615568565b51905f51602061a8f35f395f51905f525afa506123c0610beb617858565b50601180546001600160a01b0319165f51602061a8f35f395f51905f52179055600f805463ffffffff19166370a08231179055600e54600160401b811015611a8b57610c568160016124159301600e55615722565b905560018060a01b0360115416600f5460e01b60105490612434617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081875260205260408620604051602081019061247881610cd3888886617c01565b519020875260205260ff6003604088200154161561290d575b6001600160a01b0384165f908152600d60205260409020908652602052610cd36124ca6040872093604051928391602083019586617c01565b519020845260205282604081209160018301549260028101546124ed8186615bec565b612837575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa9687156109965786976127fe575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e5784916127e9575b5050846125c7617dd1565b9190159182156127de575b50506118ba5782856125e26188f7565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481865f51602061a8f35f395f51905f525af18015611892576127c1575b506040516370a0823160e01b81523060048201529082476020846024815f51602061a8f35f395f51905f525afa93841561029c57829461278a575b50602054604051638307c65560e01b8152735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048201525f51602061a8f35f395f51905f52602482015260448101849052606481018490526084810185905292608091849160a4918391906001600160a01b03165af19182156104ae576126f29261086591879161276b575b50519147615bdf565b6040516370a0823160e01b81523060048201526020816024815f51602061a8f35f395f51905f525afa90811561093e578491612737575b506108659061027793615bdf565b90506020813d602011612763575b8161275260209383615568565b810103126109325751610277612729565b3d9150612745565b612784915060803d608011610b2057610b118183615568565b876126e9565b915092506020813d6020116127b9575b816127a760209383615568565b81010312610932578390519285612666565b3d915061279a565b6127d99060203d602011610f5957610f4c8183615568565b61262b565b14159050855f6125d2565b816127f391615568565b6104d157825f6125bc565b955095506020853d60201161282f575b8161281b60209383615568565b81010312610932579351948794908161253f565b3d915061280e565b909192506128458185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a6128fc916020948b91611a6357506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f5750908592916124f2565b61291561804b565b50612491565b8161292591615568565b61067157815f612379565b50655af3107a40008211612330565b503461017b578060031936011261017b5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061299e576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201612987565b503461017b578060031936011261017b5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612a1c576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201612a05565b503461017b578060031936011261017b57610ca0604051612a5c8282615568565b60648152601f1982019081366020830137835b606481106136ed5750612a80615e1d565b90845b6064811061318c57505060015b6063811061314f575050612aa76040519283615568565b60648252366020830137815b606481106131125750612ac4615e1d565b90825b60648110612b4857505060015b60638110612ae0578280f35b612aea8183615a57565b515160018201908183116109a157612b3b82612b18612b4293612b106001979689615a57565b515190615efd565b6040612b3281612b28878a615a57565b5101519288615a57565b51015190617887565b850b6178c5565b01612ad4565b604051634b88b8ad60e11b815290602082600481885f51602061a9135f395f51905f525af19182156104ae5785926130df575b50612b868184615a57565b51858060405160208101906370a0823160e01b825230602482015260248152612bb0604482615568565b51905f51602061a9335f395f51905f525afa50612bce610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156130cb57610c56816001612c239301600e55615722565b9055601154600f5460105488926001600160a01b03169160e01b612c45617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612c8981610cd3888886617c01565b519020865260205260ff600360408720015416156130bd575b6001600160a01b0384165f908152600d60205260409020908552602052610cd3612cdb6040862093604051928391602083019586617c01565b5190208352602052604082206001810154936002820154612cfc8187615bec565b612fb1575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a9135f395f51905f525afa97881561047d578798612f79575b506001908201610100031b5f1901811b198716915f51602061a9135f395f51905f523b156104c9576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a9135f395f51905f525af19081156104ae578591612f64575b5050612dd5617dd1565b919015918215612f59575b50506118ba5750505050612df26188f7565b60208054612e3d91906001600160a01b0316612e0e8487615a57565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f51602061a9335f395f51905f525af1801561099657612f3d575b506020548590608090612e98906001600160a01b0316612e7b8588615a57565b51604051948580948193638307c65560e01b835260048301615b12565b03925af1908115610996578691612f1f575b50612eb58286615a57565b52612ec08185615a57565b5060405191631135fc2960e21b83526004830152602082602481885f51602061a9135f395f51905f525af19182156104ae57600192612f01575b5001612ac7565b612f189060203d8111610f5957610f4c8183615568565b505f612efa565b612f37915060803d8111610b2057610b118183615568565b5f612eaa565b612f549060203d8111610f5957610f4c8183615568565b612e5b565b141590505f80612de0565b81612f6e91615568565b6104cd57835f612dcb565b965096506020863d8211612fa9575b81612f9560209383615568565b81010312610932579451958b959081612d4e565b3d9150612f88565b9091929350612fc08186615bec565b6101000361010081116130a95760ff81116130a95760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061a9135f395f51905f525afa9283156121d95760209382606a9261307b949261308d575b506040519586925f51602061a9735f395f51905f52828501525f51602061a8d35f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b831015611a3f57509089939291612d01565b6130a29192503d8084833e6111e88183615568565b905f61301c565b634e487b7160e01b8b52601160045260248bfd5b6130c561804b565b50612ca2565b634e487b7160e01b87526041600452602487fd5b9091506020813d821161310a575b816130fa60209383615568565b810103126109325751905f612b7b565b3d91506130ed565b806103e8026103e88104820361094957633b9aca00820290808204620f4240149015171561094957906001916131488285615a57565b5201612ab3565b6131598183615a57565b51516001820190818311610ae25761317f82612b1861318693612b106001979689615a57565b870b6178c5565b01612a90565b604051634b88b8ad60e11b8152906020826004818a5f51602061a9135f395f51905f525af191821561047d5787926136ba575b506131ca8184615a57565b51878060405160208101906370a0823160e01b8252306024820152602481526131f4604482615568565b51905f51602061a9335f395f51905f525afa50613212610beb617858565b50601180546001600160a01b0319165f51602061a9335f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b8110156136a657610c568160016132679301600e55615722565b9055601154600f546010548a926001600160a01b03169160e01b613289617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906132cd81610cd3888886617c01565b519020865260205260ff60036040872001541615613698575b6001600160a01b0384165f908152600d60205260409020908552602052610cd361331f6040862093604051928391602083019586617c01565b51902083526020526040822060018101549360028201546133408187615bec565b6135a9575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a9135f395f51905f525afa97881561047d578798613571575b506001908201610100031b5f1901811b198716915f51602061a9135f395f51905f523b156104c9576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a9135f395f51905f525af19081156104ae57859161355c575b5050613419617dd1565b919015918215613551575b50506118ba57505050506134366188f7565b6020805461345291906001600160a01b0316612e0e8487615a57565b03818b5f51602061a9335f395f51905f525af18015610ad757613535575b506020548790608090613490906001600160a01b0316612e7b8588615a57565b03925af1908115610ad7578891613517575b506134ad8286615a57565b526134b88185615a57565b5060405191631135fc2960e21b835260048301526020826024818a5f51602061a9135f395f51905f525af191821561047d576001926134f9575b5001612a83565b6135109060203d8111610f5957610f4c8183615568565b505f6134f2565b61352f915060803d8111610b2057610b118183615568565b5f6134a2565b61354c9060203d8111610f5957610f4c8183615568565b613470565b141590505f80613424565b8161356691615568565b6104cd57835f61340f565b965096506020863d82116135a1575b8161358d60209383615568565b81010312610932579451958d959081613392565b3d9150613580565b90919293506135b88186615bec565b6101000361010081116136845760ff81116136845760405163348051d760e11b8152600190911b600482018190528d80836024815f51602061a9135f395f51905f525afa9283156121d95760209382606a92613672949261308d57506040519586925f51602061a9735f395f51905f52828501525f51602061a8d35f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b831015611a3f5750908b939291613345565b634e487b7160e01b8d52601160045260248dfd5b6136a061804b565b506132e6565b634e487b7160e01b89526041600452602489fd5b9091506020813d82116136e5575b816136d560209383615568565b810103126109325751905f6131bf565b3d91506136c8565b806103e8026103e881048203610a8d5767016345785d8a0000820290808204655af3107a40001490151715610a8d579060019161372a8285615a57565b5201612a6f565b503461017b578060031936011261017b5760205460405163549387df60e11b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b60048201525f51602061a9335f395f51905f5260248201525f51602061a9535f395f51905f526044820152908290829060649082906001600160a01b03165afa801561029c5761027791839161228a575051615c94565b503461017b57602036600319011261017b5760205460405163549387df60e11b8152735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b600482810191909152602482018490525f51602061a8f35f395f51905f52604483015235916001600160a01b0316908381606481855afa801561093e5761384891859161128d5750615a3a565b51821080613a37575b5f51602061a9135f395f51905f523b156104cd57604051632631f2b160e11b815290151560048201528380826024815f51602061a9135f395f51905f525afa9182156121d9578492613a1e575b50506138a991615d8e565b602080546040516370a0823160e01b8152306004820152926001600160a01b0390911680319285929190856024815f51602061a8f35f395f51905f525afa9485156118925783956139e5575b5060809060a460405180958193638307c65560e01b8352735fd5b7d4af0048f6b302c56a498c4e965949c2f360611b60048401528160248401525f51602061a8f35f395f51905f5260448401528160648401528660848401525af19182156104ae5785926139be575b50610865613979929360018060a01b03602054163190615bdf565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f35f395f51905f525afa90811561093e5784916117a157506102779261086591615bdf565b61397992506139de6108659160803d608011610b2057610b118183615568565b925061395e565b925093506020823d602011613a16575b81613a0260209383615568565b8101031261093257608085925194906138f5565b3d91506139f5565b81925090613a2b91615568565b6104d15781835f61389e565b50655af3107a40008211613851565b503461017b578060031936011261017b57601d54613a638161580b565b613a706040519182615568565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310613b2457868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210613add57505050500390f35b91936001919395506020613b148192603f198a82030186526040838a51878060a01b038151168452015191818582015201906155ef565b9601920192018594939192613ace565b604051613b3081615532565b82546001600160a01b03168152600183018054613b4c8161580b565b91613b5a6040519384615568565b8183528a526020808b20908b9084015b838210613b90575050505060019282602092836002950152815201920192019190613aa0565b600160208192604051613ba781610586818a61578a565b815201930191019091613b6a565b503461017b57602036600319011261017b576004358160648160018060a01b03602054166040519283809263549387df60e11b825273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600483015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248301525f51602061a9535f395f51905f5260448301525afa801561029c57613c4c918391611ac05750615a3a565b518210806142b5575b5f51602061a9135f395f51905f523b1561067157604051632631f2b160e11b8152901515600482015281816024815f51602061a9135f395f51905f525afa801561029c576142a0575b508060405160208101906370a0823160e01b825230602482015260248152613cc7604482615568565b519073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa50613cec610beb617858565b50601180546001600160a01b03191673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055600f805463ffffffff19166370a08231179055600e54600160401b811015611a8b57610c56816001613d489301600e55615722565b905560018060a01b0360115416600f5460e01b60105490613d67617c18565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818752602052604086206040516020810190613dab81610cd3888886617c01565b519020875260205260ff60036040882001541615614292575b6001600160a01b0384165f908152600d60205260409020908652602052610cd3613dfd6040872093604051928391602083019586617c01565b51902084526020528260408120916001830154926002810154613e208186615bec565b6141bc575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a9135f395f51905f525afa968715610996578697614183575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b1561192b576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529087901b9190911760448201528381606481835f51602061a9135f395f51905f525af190811561093e57849161416e575b505084613efa617dd1565b919015918215614163575b50506118ba578285613f156188f7565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905290816044818673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af1801561189257614146575b506040516370a0823160e01b8152306004820152829060208160248173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa90811561029c578291614111575b506040516370a0823160e01b8152306004820152926020846024815f51602061a9535f395f51905f525afa9384156118925783946140da575b50602054604051638307c65560e01b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c760601b600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201525f51602061a9535f395f51905f526044820152606481018590526084810183905293608091859160a4918391906001600160a01b03165af19283156104ae5785936140b9575b506040516370a0823160e01b815230600482015260208160248173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa9081156109965786916117d557506108659061175b93615bdf565b6140d391935060803d608011610b2057610b118183615568565b918561406d565b925092506020823d602011614109575b816140f760209383615568565b81010312610932578391519285613fdf565b3d91506140ea565b9150506020813d60201161413e575b8161412d60209383615568565b810103126109325782905184613fa6565b3d9150614120565b61415e9060203d602011610f5957610f4c8183615568565b613f65565b14159050855f613f05565b8161417891615568565b6104d157825f613eef565b955095506020853d6020116141b4575b816141a060209383615568565b810103126109325793519487949081613e72565b3d9150614193565b909192506141ca8185615bec565b610100036101008111610ae25760ff8111610ae25760405163348051d760e11b8152600190911b6004820181905287826024815f51602061a9135f395f51905f525afa8015610ad757606a614281916020948b91611a6357506040519485915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018b838201520301601f198101845283615568565b861015611a3f575090859291613e25565b61429a61804b565b50613dc4565b816142aa91615568565b61067157815f613c9e565b506127108211613c55565b503461017b578060031936011261017b57602154819060209060405b8185106142e7578380f35b846142f36024966156f6565b6001600160601b031991549060031b1c60601b168560018060a01b036020541684519889809263ecbbc03360e01b82528560048301525afa968715614bc9578697614bad575b508251966143478489615568565b60018852853660208a01376024602061435f856156f6565b90548751634903b0d160e01b8152600481018c90529384929091839160031b1c6001600160a01b03165afa889181614b7a575b50614b675750602460206143a5856156f6565b9054875162cb501b60e31b8152600481018c90529384929091839160031b1c6001600160a01b03165afa8015614b5d578890614b2b575b600a9150046143ea89615a3a565b525b6001600160a01b036143fd82615a3a565b51169761446561440c82615a3a565b51998980885160208101906370a0823160e01b825230602482015260248152614436604482615568565b5190845afa50614447610beb617858565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156136a657610c5681600161449a9301600e55615722565b905560018060a01b0360115416600f5460e01b896010549160ff60038a6144bf617c18565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b16948582526020528181208251602081019061450381610cd38c8c86617c01565b51902082526020522001541615614b1d575b6001600160a01b0384165f908152600d60205260409020908c52602052610cd361454c898d20938a51928391602083019586617c01565b5190208a526020528589209060018201549160028101549b61456e8d85615bec565b614a05575b81548951630667f9d760e41b81526001600160a01b0385166004820152602481018290529c9d9b9c9a9b999a98998e99956020876044815f51602061a9135f395f51905f525afa9687156149fb578b976149c3575b506001908201610100031b5f1901811b198616915f51602061a9135f395f51905f523b156149bf578c516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528881606481835f51602061a9135f395f51905f525af180156149b55790899161499c575b505061464e617dd1565b919015918215614991575b50506148a75750505061466a6188f7565b6146cb60206001600160a01b0361468085615a3a565b5182546001600160a01b0316911661469785615a3a565b518a5163095ea7b360e01b81526001600160a01b039093166004840152602483015290928391908290899082906044820190565b03925af1801561489d5761473e959493926080929091614881575b506020546001600160a01b03908116906146ff85615a3a565b5116918661471f6001600160a01b0361471788615a47565b511692615a3a565b518b51638307c65560e01b8152998a9586948593918b60048601615ae4565b03925af193841561487757908392916147c195614857575b506020546001600160a01b03908116919061477082615a3a565b5116906001600160a01b039061478590615a47565b51895163549387df60e11b815260048101959095526001600160a01b039283166024860152161660448301529093849190829081906064820190565b03915afa91821561484d57600193928561481d93614812938b93614827575b5061480691816147f260209351615d3f565b016147fe815151615d3f565b510151615d3f565b61481861481282615a3a565b51615d3f565b615a47565b01939291906142dc565b602091935091614844614806938d3d8091833e6112a18183615568565b939150916147e0565b84513d89823e3d90fd5b61487091945060803d8111610b2057610b118183615568565b925f614756565b86513d85823e3d90fd5b6148989060203d8111610f5957610f4c8183615568565b6146e6565b87513d87823e3d90fd5b91868992819454905f51602061a9135f395f51905f523b156104d15784516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061a9135f395f51905f525af1801561498557614970575b815162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61497b838092615568565b6106715781614910565b505051903d90823e3d90fd5b141590505f80614659565b816149a691615568565b6149b157875f614644565b8780fd5b8b513d8b823e3d90fd5b8a80fd5b9a50955060208a3d82116149f3575b816149df60209383615568565b810103126109325798518e999095816145c8565b3d91506149d2565b8d513d8d823e3d90fd5b614a0f8d85615bec565b6101000361010081116136845760ff8111613684576001901b895163348051d760e11b81528160048201528d816024815f51602061a9135f395f51905f525afa908115614b1157606a8f8060208f9295614ac7955f51602061a8d35f395f51905f52989791614af7575b5083519788945f51602061a9735f395f51905f528487015285015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283615568565b821015614ad45750614573565b895162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b614b0b91503d8085833e6111e88183615568565b5f614a79565b8e8c51903d90823e3d90fd5b614b2561804b565b50614515565b506020813d8211614b55575b81614b4460209383615568565b8101031261093257600a90516143dc565b3d9150614b37565b85513d8a823e3d90fd5b600a9004614b7489615a3a565b526143ec565b9091506020813d8211614ba5575b81614b9560209383615568565b810103126109325751905f614392565b3d9150614b88565b614bc29197503d8088833e61028e8183615568565b955f614339565b83513d88823e3d90fd5b503461017b578060031936011261017b5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110614c32576101e9856101dd81870382615568565b82546001600160a01b0316845260209093019260019283019201614c1b565b503461017b57606036600319011261017b576024356001600160a01b038116810361067157816044356001600160a01b0381168103610671576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0394851660248201529184166044830152909283916064918391165afa801561029c57610277918391614cdd575051615c94565b61229e91503d8085833e6104a08183615568565b5034610932575f3660031901126109325760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061a9135f395f51905f525afa9081156153f857614d7a916020915f916154df575b50604051809381926371ee464d60e01b83526040600484015260448301906155cb565b630134c06a602483015203815f5f51602061a9135f395f51905f525af180156153f8576154b0575b50604051611d2b8082018281106001600160401b0382111761549c578291618ba8833903905ff080156153f85760018060a01b03166001600160601b0360a01b602054161760205560405161030081018181106001600160401b0382111761549c5760405273ecd5e75afb02efa118af914515d6521aabd189f1815273ed279fdd11ca84beef15af5d39bb4d4bee23f0ca60208201527343b4fdfd4ff969587185cdb6f0bd875c5fc83f8c6040820152739efe1a1cbd6ca51ee8319afc4573d253c3b732af6060820152734807862aa8b2bf68830e4c8dc86d0e9a998e085a608082015273d632f22692fac7611d2aa1c0d552930d43caed3b60a082015273a5407eae9ba41422680e2e00537571bcc53efbfd60c0820152735a6a4d54456819380173272a5e8e9b9904bdf41b60e0820152733211c6cbef1429da3d0d58494938299c92ad586061010082015273db6925ea42897ca786a045b252d95aa7370f44b461012082015273f861483fa7e511fbc37487d91b6faa803af5d37c610140820152731e098b32944292969fb58c85bdc85545da39711761016082015273e0e970a99bc4f53804d8145bebbc7ebc9422ba7f610180820152736bfe880ed1d639bf80167b93cc9c56a39c1ba2dc6101a082015273bdfae7d2cf2e69e27b75a5287ecd3808f62b5a766101c082015273fb8814d005c5f32874391e888da6eb2fe7a279026101e0820152730f3159811670c117c372428d4e69ac32325e4d0f610200820152734ebdf703948ddcea3b11f675b4d1fba9d2414a14610220820152730e9b5b092cad6f1c5e6bc7f89ffe1abb5c95f1c26102408201527321410232b484136404911780bc32756d5d1a9fa961026082015273322135dd9cbae8afa84727d9ae1434b5b3eba44b61028082015273c26b89a667578ec7b3f11b2f98d6fd15c07c54ba6102a0820152739409280dc1e6d33ab7a8c6ec03e5763fb61772b56102c0820152735fae7e604fc3e24fd43a72867cebac94c65b404a6102e0820152602154601860215580601810615440575b5060215f525f5b601881106154035760205483906001600160a01b03165f51602061a9135f395f51905f523b1561093257604051906318caf8e360e31b8252600482015260406024820152600c60448201526b21bab93b32a0b230b83a32b960a11b60648201525f81608481835f51602061a9135f395f51905f525af180156153f8576153e5575b505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81525f51602061a9535f395f51905f5260048201526040602482015260046044820152631554d11560e21b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153d0575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b815273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860048201526040602482015260046044820152635553444360e01b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153bb575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b815273bebc44782c7db0a1a60cb6fe97d0b483032ff1c7600482015260406024820152600b60448201526a14d51050931157d413d3d360aa1b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153a6575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81525f51602061a9335f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f51602061a9135f395f51905f525af1801561029c57615391575b50505f51602061a9135f395f51905f523b1561017b57806040516318caf8e360e31b81527380466c64868e1ab14a1ddf27a676c3fcbe638fe5600482015260406024820152600b60448201526a10d496541513d7d413d3d360aa1b60648201528181608481835f51602061a9135f395f51905f525af1801561029c576153805750f35b8161538a91615568565b61017b5780f35b8161539b91615568565b61017b5780826152fd565b816153b091615568565b61017b57808261528a565b816153c591615568565b61017b578082615209565b816153da91615568565b61017b57808261518f565b6153f191505f90615568565b5f8161511d565b6040513d5f823e3d90fd5b81516001600160a01b03167f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57082015560209091019060010161509c565b7f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570017f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5885b8181106154915750615095565b5f8155600101615484565b634e487b7160e01b5f52604160045260245ffd5b6020813d6020116154d7575b816154c960209383615568565b810103126109325751614da2565b3d91506154bc565b6154f391503d805f833e6111e88183615568565b5f614d57565b346109325760403660031901126109325761552a60209161551981615532565b600435815260243583820152615867565b604051908152f35b604081019081106001600160401b0382111761549c57604052565b606081019081106001600160401b0382111761549c57604052565b90601f801991011681019081106001600160401b0382111761549c57604052565b60206040818301928281528451809452019201905f5b8181106155ac5750505090565b82516001600160a01b031684526020938401939092019160010161559f565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b83831061561a57505050505090565b9091929394602080615638600193601f1986820301875289516155cb565b9701930193019193929061560b565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061567957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106156d3575050506020806001929701930193019193929061566a565b82516001600160e01b0319168452602093840193909201916001909101906156b4565b60215481101561570e5760215f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b600e5481101561570e57600e5f5260205f2001905f90565b601f5481101561570e57601f5f5260205f2001905f90565b90600182811c92168015615780575b602083101461576c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615761565b5f929181549161579983615752565b80835292600181169081156157ee57506001146157b557505050565b5f9081526020812093945091925b8383106157d4575060209250010190565b6001816020929493945483858701015201910191906157c3565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161549c5760051b60200190565b8181029291811591840414171561583557565b634e487b7160e01b5f52601160045260245ffd5b8115615853570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a000000149015171561583557602061589e92015190615849565b90565b6001600160401b03811161549c57601f01601f191660200190565b602081830312610932578051906001600160401b038211610932570181601f82011215610932578051906158ef826158a1565b926158fd6040519485615568565b8284526020838301011161093257815f9260208093018386015e8301015290565b90816020910312610932575190565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151906159618261580b565b9261596f6040519485615568565b82845260208085019360051b82010191821161093257602001915b8183106159975750505090565b8251600a8110156109325781526020928301920161598a565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151906159e48261580b565b926159f26040519485615568565b82845260208085019360051b82010191821161093257602001915b818310615a1a5750505090565b82516001600160a01b038116810361093257815260209283019201615a0d565b80511561570e5760200190565b80516001101561570e5760400190565b805182101561570e5760209160051b010190565b90816020910312610932575180151581036109325790565b919082604091031261093257604051615a9b81615532565b6020808294805184520151910152565b9060808282031261093257615adc906040805193615ac88561554d565b805185526020810151602086015201615a83565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b7380466c64868e1ab14a1ddf27a676c3fcbe638fe560601b81525f51602061a9335f395f51905f5260208201525f51602061a9535f395f51905f5260408201525f6060820152608081019190915260a00190565b602081830312610932578051906001600160401b03821161093257019080601f83011215610932578151615b998161580b565b92615ba76040519485615568565b81845260208085019260051b82010192831161093257602001905b828210615bcf5750505090565b8151815260209182019101615bc2565b9190820391821161583557565b9190820180921161583557565b60085460ff168015615c085790565b50604051630667f9d760e41b81525f51602061a9135f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a9135f395f51905f525afa9081156153f8575f91615c62575b50151590565b90506020813d602011615c8c575b81615c7d60209383615568565b8101031261093257515f615c5c565b3d9150615c70565b5f51602061a9135f395f51905f523b15610932576040519063260a5b1560e21b82526004820152600260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f615cee91615568565b565b905f51602061a9135f395f51905f523b15610932576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f51602061a9135f395f51905f523b156109325760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f51602061a9135f395f51905f523b156109325760405163c88a5e6d60e01b81526001600160a01b0391909116600482015260248101919091525f81604481835f51602061a9135f395f51905f525af180156153f857615ce45750565b60405190615df88261554d565b815f81525f60208201526040805191615e1083615532565b5f83525f60208401520152565b604051610ca09190615e2f8382615568565b6064815291601f1901825f5b828110615e4757505050565b602090615e52615deb565b82828501015201615e3b565b5f51602061a9135f395f51905f523b15610932576040519063a8d4d1d960e01b82526004820152600260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b15610932576040519163a8d4d1d960e01b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b156109325760405191638466f41560e01b8352600483015260248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b5f5b8151811015615f9557615f618183615a57565b51600a811015615f8157600514615f7a57600101615f4e565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b8151811015615f9557615fb08183615a57565b51600a811015615f8157600914615f7a57600101615f9d565b5f5b8151811015615f9557615fde8183615a57565b51600a811015615f8157600814615f7a57600101615fcb565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f1960448401526044835261602f606484615568565b82516001600160a01b038316915f91829182855af19061604d617858565b826160ad575b50816160a2575b501561606557505050565b61609d615cee936040519063095ea7b360e01b602083015260248201525f604482015260448152616097606482615568565b82617915565b617915565b90503b15155f61605a565b805191925081159182156160c5575b5050905f616053565b6160d89250602080918301019101615a6b565b5f806160bc565b602081830312610932578051906001600160401b038211610932570181601f820112156109325780516161118161580b565b9261611f6040519485615568565b81845260208085019260061b8401019281841161093257602001915b838310616149575050505090565b60206040916161588486615a83565b81520192019161613b565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106161a75750505090565b825184526020938401939092019160010161619a565b604051906161cc606083615568565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af180156153f85761627f915f916178445750615a3a565b5161010052606060a08190526040516162db9161629c9082615568565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b6040820152610100516179d8565b60a051505f806163636163916040516162f660a05182615568565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a48301906155cb565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af180156153f8576163fe915f9161782a575b50615f9b565b906040519161640e60a084615568565b6004835260803660208501371561781d575f5b61642a83615a3a565b526103e8610100510461643c83615a47565b5281516002101561570e5760a05182016101005160011c905281516003101561570e5761010051608083015260405163155adc9160e31b8152935f858061648986868b8a60048601616163565b0381836001600160a01b0386165af19485156153f8575f95617801575b506164b96164b386615a3a565b51615867565b85515f19810191908211615835576164d76164b36165319389615a57565b60a05160405192906164e99084615568565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152617a3f565b61653d6164b386615a3a565b85515f198101908111615835576165d86165f15f936165606164b386958c615a57565b60a0516040519291906165739084615568565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a051602486015260848501906155cb565b916044840152606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa5060a0516040516166579161661a9082615568565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617a74565b6166a961666386615a3a565b5151604060e08190528051919061667a9083615568565b601882527f4e6f6d696e61746f722073686f756c646e27742062652030000000000000000060208301526179d8565b6166fa60206166b787615a3a565b51015160e051805191906166cb9083615568565b601a82527f44656e6f6d696e61746f722073686f756c646e2774206265203000000000000060208301526179d8565b6167066164b386615a3a565b9460e051506167458660e0515161671f60e05182615568565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617ab8565b61674d615deb565b5083515f198101908111615835576167659085615a57565b516005818102048103615835575f8060e0515160208101906370a0823160e01b82523060248201526024815261679c604482615568565b51908b5afa506167ad610beb617858565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b81101561549c57610c568160016167fe9301600e55615722565b90556011546001600160a01b031661014052600f546010549060e01b616822617c18565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e05151602081019061686b81610cd3888886617c01565b5190205f5260205260ff600360e0515f20015416156177f3575b610140516001600160a01b03165f908152600d60205260409020905f52602052610cd36168c360e0515f209360e05151928391602083019586617c01565b5190205f5260205260e0515f2060018101549160028201546168e58185615bec565b6176dd575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a9135f395f51905f525afa95861561769d575f966176a9575b506001908201610100031b5f1901811b1985165f51602061a9135f395f51905f523b156109325760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a9135f395f51905f525af1801561769d57617688575b506169c1617dd1565b901591821561767a575b50506175865750506169db6188f7565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a9135f395f51905f525af18015616ed25761012051608052617553575b5060015b8451811015616f9f575f80616ad0616af6616a338561573a565b50616a3e868b615a57565b51616ae2610586616aaa60e0515194616a5960a05187615568565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e051519283809261578a565b60e05151635821efa160e01b602082015260a051602482015295869460848601906155cb565b848103602319016044860152906155cb565b90606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa50616b186164b38284615a57565b5f80616b8d616bb18c616b2b878c615a57565b5160e0515191616b3d60e05184615568565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a051602486015260848501906155cb565b60448401929092526001600160a01b0316606483015203601f198101835282615568565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89616bf5616bd8878c615a57565b5160e05151638307c65560e01b8152958694859460048601615ae4565b03816101205160018060a01b038a165af1908115616ed2576101205191616f81575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715616f6757616c64616c6f916a084595161401484a000000616c5c878c615a57565b519102615849565b9160e0510151615867565b91616cb38260e05151616c8460e05182615568565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617ab8565b616cf68160e05151616cc760e05182615568565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617ab8565b616d398360e05151616d0a60e05182615568565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617ab8565b60c05115616ee15760a05160e05151616e6d94616e12939092616da8929190616d629083615568565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617afb565b60a05160e051519190616dbb9083615568565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283617a3f565b60a05160e051519190616e259083615568565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289617a3f565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a9135f395f51905f525af1918215616ed257600192616eb4575b5001616a19565b616ecb9060203d8111610f5957610f4c8183615568565b505f616ead565b60e051513d61012051823e3d90fd5b616f0a90616efb616f6294616ef46161bd565b908d617afb565b616f036161bd565b908b617afb565b60e0515190616f1b60a05183615568565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617afb565b616e6d565b634e487b7160e01b61012051526011600452602461012051fd5b616f99915060803d8111610b2057610b118183615568565b5f616c17565b50509150919392506069610100510261010051810460691461010051151715616f675760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015616ed257617023916101205191617536575b50615fc9565b156173d95761708b8460e0515161703c60a05182615568565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617ab8565b60e0518051949061709c9086615568565b6001855260e051601f19013660208701376170b685615a3a565b5260e0515163155adc9160e31b81526101205181806170db8888878c60048601616163565b03816101205160018060a01b0388165af190816173b6575b5061734a576001617102617b30565b6308c379a0146172bc575b616ed25761711c608094615a3a565b519461713f60e0515196879586948594638307c65560e01b865260048601615ae4565b61012051919003926001600160a01b03165af1908161729f575b5061723d576001617168617b30565b6308c379a0146171ba575b616ed2575b615cee60e0515161718b60e05182615568565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617a74565b6171c2617b4b565b806171ce575b50617173565b6101205160a05160e051519193506172379291906171ec9082615568565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152617bbd565b5f6171c8565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6172b79060803d608011610b2057610b118183615568565b617159565b6172c4617b4b565b806172d0575b5061710d565b6101205160a05160e051519193506173449291906172ee9082615568565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152617bbd565b5f6172ca565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6173d4903d8061012051833e6173cc8183615568565b8101906160df565b6170f3565b60a05160e0515161743b918691906173f19082615568565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617ab8565b60e0518051949061744c9086615568565b6001855260e051601f190136602087013761746685615a3a565b5260e051519363155adc9160e31b855261012051858061748c8488878c60048601616163565b03816101205160018060a01b0388165af1908115616ed2576080956174b59261751b5750615a3a565b51946174d860e0515196879586948594638307c65560e01b865260048601615ae4565b61012051919003926001600160a01b03165af18015616ed2576174fc575b50617178565b6175149060803d608011610b2057610b118183615568565b505f6174f6565b617531903d8061012051833e6173cc8183615568565b610720565b61754d91503d8061012051833e6104a08183615568565b5f61701d565b6020813d60201161757e575b8161756c60209383615568565b8101031261093257516080525f616a15565b3d915061755f565b545f51602061a9135f395f51905f523b156176735760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a9135f395f51905f525af18015616ed257617658575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6101205161766591615568565b6101205161767357806175f6565b6101205180fd5b600502141590505f806169cb565b5f61769291615568565b5f610120525f6169b8565b60e051513d5f823e3d90fd5b9095506020813d6020116176d5575b816176c560209383615568565b810103126109325751948161693b565b3d91506176b8565b6176e78185615bec565b6101000361010081116158355760ff81116158355760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a9135f395f51905f525afa91821561769d576177a3606a6020946001945f916177d9575b5060e051519586915f51602061a9735f395f51905f52828401525f51602061a8d35f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615568565b1b8360050210156177b457506168ea565b60e0515162461bcd60e51b8152602060048201529081906111cf9060248301906155cb565b6177ed91503d805f833e6111e88183615568565b5f617741565b6177fb61804b565b50616885565b6178169195503d805f833e6173cc8183615568565b935f6164a6565b6127106101005104616421565b61783e91503d805f833e6104a08183615568565b5f6163f8565b6112a991503d805f833e6112a18183615568565b3d15617882573d90617869826158a1565b916178776040519384615568565b82523d5f602084013e565b606090565b6178a790602061789c82518286015190615822565b935191015190615822565b908082036178b55750505f90565b11156178c057600190565b5f1990565b5f51602061a9135f395f51905f523b15610932576040519063fe74f05b60e01b82526004820152600160248201525f816044815f51602061a9135f395f51905f525afa80156153f857615ce45750565b8151617940926001600160a01b03909216915f91829160200182855af161793a617858565b91617f90565b8051908161794c575050565b60208061795d938301019101615a6b565b1561796457565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b61589e93926060928252602082015281604082015201906155cb565b5f51602061a9135f395f51905f523b1561093257617a20915f916040519384928392636cd1e26960e11b845260048401528460248401526060604484015260648301906155cb565b03815f51602061a9135f395f51905f525afa80156153f857615ce45750565b905f51602061a9135f395f51905f523b15610932575f91617a206040519485938493636cd1e26960e11b8552600485016179bc565b5f610cd3617aa1829360405192839163104c13eb60e21b60208401526020602484015260448301906155cb565b6020815191016a636f6e736f6c652e6c6f675afa50565b617ae7617aa15f93928493604051938492632d839cb360e21b60208501526040602485015260648401906155cb565b90604483015203601f198101835282615568565b905f51602061a9135f395f51905f523b15610932575f91617a206040519485938493630389490b60e61b8552600485016179bc565b5f9060033d11617b3c57565b905060045f803e5f5160e01c90565b5f60443d1061589e576040513d600319016004823e8051913d60248401116001600160401b03841117617bb757828201928351916001600160401b038311617baf573d84016003190185840160200111617baf575061589e92910160200190615568565b949350505050565b92915050565b617bef617aa15f9392610cd38594604051948593634b5c427760e01b60208601526040602486015260648501906155cb565b838103602319016044850152906155cb565b60209291908391805192839101825e019081520190565b617c23601454615752565b617ce0576040519081826020600e549283815201600e5f5260205f20925f5b818110617cc7575050617c5792500383615568565b81518060051b908082046020149015171561583557617c75816158a1565b90617c836040519283615568565b808252617c92601f19916158a1565b013660208301375f5b8351811015617cc25780617cb160019286615a57565b5160208260051b8501015201617c9b565b509150565b8454835260019485019487945060209093019201617c42565b60405161589e8161058681601461578a565b6007810190617d018254615752565b617dbd57600191500190604051808360208295549384815201905f5260205f20925f5b818110617da4575050617d3992500383615568565b81518060051b908082046020149015171561583557617d57816158a1565b90617d656040519283615568565b808252617d74601f19916158a1565b013660208301375f5b8351811015617cc25780617d9360019286615a57565b5160208260051b8501015201617d7d565b8454835260019485019487945060209093019201617d24565b5061589e610586916040519283809261578a565b5f806020600f5460e01b617e1f6024617dea600d617cf2565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615568565b6011549151916001600160a01b03165afa90617e39617858565b601054909290600581901b906001600160fb1b03811603615835575f938051602081115f14617ec457506020905b5f925b828410617e7957505050509190565b90919295617e878783615bec565b835181101561570e57830160200151600388901b91906001600160f81b031916881560088a8504141715615835576001921c179601929190617e6a565b90617e67565b905f806020600285015460e01b617ee56024617dea88617cf2565b60048601549151916001600160a01b03165afa6003617f02617858565b930154600581901b906001600160fb1b03811603615835575f938051602081115f14617f8a57506020905b5f925b828410617f3f57505050509190565b90919295617f4d8783615bec565b835181101561570e57830160200151600388901b91906001600160f81b031916881560088a8504141715615835576001921c179601929190617f30565b90617f2d565b90617fb45750805115617fa557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580617fe5575b617fc5575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15617fbd565b9080601f830112156109325781516180058161580b565b926180136040519485615568565b81845260208085019260051b82010192831161093257602001905b82821061803b5750505090565b815181526020918201910161802e565b601154600f546010546001600160a01b03909216915f9160e01b61806f600d617cf2565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906180a881610cd3888886617c01565b5190205f5260205260ff600360405f200154166188b6575f51602061a9135f395f51905f523b156109325760405163266cf10960e01b81525f81600481835f51602061a9135f395f51905f525af180156153f8576188a1575b5061810c600d617eca565b90506040516365bc948160e01b81528660048201528581602481835f51602061a9135f395f51905f525af190811561099657869161883d575b5080516181b657608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618835578160206181d18361820295615a57565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a9135f395f51905f525afa928315610ad7578893618802575b5082156187aa575b6182348282615a57565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a9135f395f51905f525afa9081156111f7578b91618779575b5061828f600d617eca565b91909382155f14618772575f19905b5f51602061a9135f395f51905f523b15618759576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a9135f395f51905f525af180156186e257908d9161875d575b505061830f600d617eca565b601154909491506001600160a01b03165f51602061a9135f395f51905f523b15618759576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a9135f395f51905f525af1801561874e57908c91618739575b50508261872e575b505015618724578793889360ff601354166185a9575b6001868601610100031b5f1901851b16841c810361859b575090618429917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89610cd36183fe8d604051928391602083019586617c01565b51902061840b8686615a57565b51906040519283528a602084015260408301526060820152a1615a57565b51906040519060808201928284106001600160401b0385111761549c5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019061849281610cd38d8d86617c01565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d602052604084208185526020526040842060405160208101906184ed81610cd3888886617c01565b519020855260205260ff6003604086200154161561853e576040948452600d602052848420908452602052610cd3618532858520938651928391602083019586617c01565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016181b8565b94506185f493506185ba8383615a57565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a9135f395f51905f525afa9485156110cf578a956186f1575b5061862086600d618a0b565b95909661862e81600d618ae4565b60115490939192906001600160a01b03165f51602061a9135f395f51905f523b156186ed576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a9135f395f51905f525af180156186e257908d916186c9575b5050876186c1575b5094956183a35750935091506001906185a3565b96505f6186ad565b816186d391615568565b6186de578b5f6186a5565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d821161871c575b8161870c60209383615568565b810103126109325751935f618614565b3d91506186ff565b91506001906185a3565b141590505f8061838d565b8161874391615568565b6149bf578a5f618385565b6040513d8e823e3d90fd5b8d80fd5b8161876791615568565b6186de578b5f618303565b8c9061829e565b90506020813d82116187a2575b8161879360209383615568565b8101031261093257515f618284565b3d9150618786565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56187fa6187d88484615a57565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a161822a565b9092506020813d821161882d575b8161881d60209383615568565b810103126109325751915f618222565b3d9150618810565b5050506184c0565b90503d8087833e61884e8183615568565b81016040828203126104c95781516001600160401b0381116149b15781618876918401617fee565b916020810151906001600160401b03821161889d57618896929101617fee565b505f618145565b8880fd5b6188ae9194505f90615568565b5f925f618101565b91939092505f52600d60205260405f20905f52602052610cd36188e860405f2093604051928391602083019586617c01565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806189c9575b505f60105560ff196013541660135561893d601454615752565b806189455750565b601f811160011461895757505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106189be57505060145f525f602081208160145555565b5f81556001016189a5565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618a005750618923565b5f81556001016189f3565b91905f5b6101008110618a2257505090505f905f90565b8060ff0360ff8111615835576004850154600190911b906001600160a01b03165f51602061a9135f395f51905f523b15610932576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a9135f395f51905f525af180156153f857618ad4575b50618aae84617eca565b81618aca575b50618ac157600101618a0f565b92505060019190565b905015155f618ab4565b5f618ade91615568565b5f618aa4565b91905f5b6101008110618afb57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a9135f395f51905f523b15610932576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a9135f395f51905f525af180156153f857618b97575b50618b7a84617eca565b81618b8d575b50618ac157600101618ae8565b905015155f618b80565b5f618ba191615568565b5f618b7056fe60808060405234601557611d11908161001a8239f35b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816323eeca01146107d05750806348bd7dfd1461073b5780638307c655146106d5578063a9270fbe146102c7578063aad6e488146101fd5763ecbbc0331461006a575f61000f565b346101f95760203660031901126101f95761008960043560601c610cfc565b602081016100978151610c9d565b5f925f5b835181101561012f5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036100cb838551610939565b511614610126575b6001905f516020611cbc5f395f51905f52828060a01b036100f5838651610939565b51161461012157818060a01b0361010d828551610939565b51166101198286610925565b525b0161009b565b61011b565b600194506100d3565b5050915f146101f3578051600181018091116101df5761014e90610c9d565b915f5b8251811015610182576001906001600160a01b0361016f8285610925565b511661017b8287610925565b5201610151565b50506101905f915183610925565b525b6040518091602082016020835281518091526020604084019201905f5b8181106101bd575050500390f35b82516001600160a01b03168452859450602093840193909201916001016101af565b634e487b7160e01b5f52601160045260245ffd5b50610192565b5f80fd5b346101f95760803660031901126101f957610216610824565b5061021f61083a565b5060643567ffffffffffffffff81116101f957366023820112156101f95780600401359060246020610250846108dc565b61025d60405191826108ba565b848152019260051b820101903682116101f957602401915b8183106102b757604051631d04569d60e21b81526020600482015260126024820152714375727665416461707465722e707269636560701b6044820152606490fd5b8235815260209283019201610275565b346101f9576102d536610850565b9160601c9181815f926102e786610cfc565b926001600160a01b03166105f1575060208201935f5b85518110156105e6575f516020611cbc5f395f51905f5260018060a01b03610326838751610939565b51161480156105b6575b61033c576001016102fd565b835161037496505f516020611cbc5f395f51905f52925082916001600160a01b03916103689190610939565b5116146105ad57610ffd565b9091604051926103856060856108ba565b6002845260208401926040368537604051634903b0d160e01b81526001600160801b0383166004820152602081602481875afa5f9181610579575b506104ee57506040519162cb501b60e31b8352600f0b6004830152602082602481865afa80156104b0575f906104bb575b6020925060011c610401866108f4565b5260246040518094819362cb501b60e31b8352600f0b60048301525afa9081156104b0575f9161047e575b5060011c61043983610915565b52905b604051918291602083019060208452518091526040830191905f5b818110610465575050500390f35b8251845285945060209384019390920191600101610457565b90506020813d6020116104a8575b81610499602093836108ba565b810103126101f957518361042c565b3d915061048c565b6040513d5f823e3d90fd5b506020823d6020116104e6575b816104d5602093836108ba565b810103126101f957602091516103f1565b3d91506104c8565b602092506001600160801b039160249160011c61050a886108f4565b526040519485938492634903b0d160e01b84521660048301525afa9081156104b0575f91610547575b5060011c61054083610915565b529061043c565b90506020813d602011610571575b81610562602093836108ba565b810103126101f9575183610533565b3d9150610555565b9091506020813d6020116105a5575b81610595602093836108ba565b810103126101f9575190876103c0565b3d9150610588565b60019350610ffd565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036105de838751610939565b511614610330565b506103749450610ffd565b9093906001600160a01b03161561060d575b9261037493610ffd565b60208201935f5b85518110156106c9575f516020611cbc5f395f51905f5260018060a01b0361063d838751610939565b5116148015610699575b61065357600101610614565b835161037496505f516020611cbc5f395f51905f5293925083916001600160a01b03916106809190610939565b511614610690575b909350610603565b60019350610688565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b036106c1838751610939565b511614610647565b50906103749450610688565b346101f95760a03660031901126101f9576106ee610824565b6106f661083a565b6064359160028310156101f9576080926107169260843592600435610957565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f95761074936610850565b50505060405161075a6060826108ba565b600281526020810160403682376001610772836108f4565b52604051906020820192602083525180935260408201905f935b8085106107995783830384f35b9091825190600a8210156107bc576020816001938293520193019401939061078c565b634e487b7160e01b5f52602160045260245ffd5b346101f95760403660031901126101f957631d04569d60e21b815260206004820152601760248201527f4375727665416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f957565b604435906001600160a01b03821682036101f957565b60609060031901126101f957600435906024356001600160a01b03811681036101f957906044356001600160a01b03811681036101f95790565b6040810190811067ffffffffffffffff8211176108a657604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108a657604052565b67ffffffffffffffff81116108a65760051b60200190565b8051156109015760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156109015760400190565b80518210156109015760209160051b010190565b9060088110156109015760051b0190565b919082039182116101df57565b9394929194604051956060870187811067ffffffffffffffff8211176108a6576040525f87525f602088015260405161098f8161088a565b5f81525f60208201526040880152868215610c9257506040519260e0840184811067ffffffffffffffff8211176108a65760405260208401966040850160608601945f865260808701945f865260c08801935f855260601c9485895260018060a01b031690818c5260018060a01b03169182845260a0890152610a125f95610cfc565b93610a268560018060a01b038b5116610e7a565b15159052610bad575060208201985f5b8a51811015610b9d575f516020611cbc5f395f51905f5260018060a01b03610a5f838751610939565b5116148015610b6d575b610a7557600101610a36565b610ac095969798999a505f516020611cbc5f395f51905f5290818352610aa360018060a01b03918651610939565b511614610b64575b5190516001600160a01b039081169116610ffd565b600f9291920b9052600f0b90525a9160028110156107bc57610b0657610af5610aff92610aec836111b3565b86525a9061094a565b6020850152611721565b6040830152565b60405163643c60f360e01b815260206004820152602f60248201527f4f72646572536964652e427579206973206e6f7420617661696c61626c65206660448201526e37b9103a3434b99030b230b83a32b960891b6064820152608490fd5b60019350610aab565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610b95838751610939565b511614610a69565b50610ac094959697989950610aab565b15610bc1575b610ac0939495969798610aab565b60208201985f5b8a51811015610c82575f516020611cbc5f395f51905f5260018060a01b03610bf1838751610939565b5116148015610c52575b610c0757600101610bc8565b610ac095969798999a505f516020611cbc5f395f51905f5290818452610c3560018060a01b03918651610939565b511614610c49575b98979695949350610bb3565b60019350610c3d565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260018060a01b03610c7a838751610939565b511614610bfb565b50610ac094959697989950610c3d565b955050505050915090565b90610ca7826108dc565b610cb460405191826108ba565b8281528092610cc5601f19916108dc565b0190602036910137565b908160209103126101f957516001600160a01b03811681036101f95790565b5f1981146101df5760010190565b90604051610d098161088a565b604051610100610d1981836108ba565b3682378152602081015f815281935f92610d32826119c0565b610ddb57925b60088110610d47575b50505050565b60405163c661065760e01b815260048101829052906020826024816001600160a01b0387165afa5f9281610dab575b50610d815750610d41565b600191610d8f828751610939565b90838060a01b03169052610da38451610cee565b845201610d38565b610dcd91935060203d8111610dd4575b610dc581836108ba565b810190610ccf565b915f610d76565b503d610dbb565b925b60088110610deb5750505050565b60405163046e8dd760e31b81526001600160801b038216600f0b6004820152906020826024816001600160a01b0387165afa5f9281610e5a575b50610e305750610d41565b600191610e3e828751610939565b90838060a01b03169052610e528451610cee565b845201610ddd565b610e7391935060203d8111610dd457610dc581836108ba565b915f610e25565b815151602491906001600160a01b03165f516020611cbc5f395f51905f52148015610fd5575b15610fcb57602060ff60015b1693610ec08560018060a01b039251610939565b516040516370a0823160e01b81526001600160a01b03909416600485018190529394859290918391165afa9182156104b0575f92610f96575b50606460ff91602093941590815f14610f8e575f915b15610f8557600a6001965b85604051988997889663556d6e9f60e01b88521660048701521660248501520460448301525afa9081610f56575b50610f5257600190565b5f90565b6020813d602011610f7d575b81610f6f602093836108ba565b810103126101f95751610f48565b3d9150610f62565b600a5f96610f1a565b600191610f0f565b91506020823d602011610fc3575b81610fb1602093836108ba565b810103126101f9579051906064610ef9565b3d9150610fa4565b602060ff5f610eac565b508251516001600160a01b031673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610ea0565b5f94939192918590846001600160a01b0384165f516020611cbc5f395f51905f52148061112a575b61110e575b6001600160a01b03165f516020611cbc5f395f51905f52149081611105575b506110e9575b5f955b60208401518710156110e05783516001600160a01b0390611074908990610939565b516001600160a01b03851691160361109f575060016001600160801b038716600f0b965b0195611052565b9560018060a01b036110b2828651610939565b51166001600160a01b038616146110cc575b600190611098565b6001600160801b038116600f0b91506110c4565b95509392505050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061104f565b9050155f611049565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935061102a565b508115611025565b3d1561116c573d9067ffffffffffffffff82116108a65760405191611161601f8201601f1916602001846108ba565b82523d5f602084013e565b606090565b1561117857565b60405162461bcd60e51b8152602060048201526013602482015272115d1a081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b6040810180516020830180515f959447946001600160a01b039485169490938893909116905f516020611cbc5f395f51905f5286036116b85747965b60c0840151156114305750516001600160a01b03165f516020611cbc5f395f51905f52036113735750805160a08201516060830151608090930151600f90810b93900b916001600160a01b0316803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b6024840152604483018190525f6064840152839183916084918391905af180156113685761134f575b50505f516020611cbc5f395f51905f52905b516001600160a01b0316036112ce57506112b66112cc914761094a565b9280808086335af16112c6611132565b50611171565b565b926040516370a0823160e01b8152306004820152602081602481885afa918215611343579161130f575b506112cc916113069161094a565b80933390611b9e565b90506020813d60201161133b575b8161132a602093836108ba565b810103126101f957516112cc6112f8565b3d915061131d565b604051903d90823e3d90fd5b81611359916108ba565b61136457845f611287565b8480fd5b6040513d84823e3d90fd5b9061139b60a082019261138984513033846119f9565b60018060a01b03835116845191611a42565b60018060a01b0381511660806060830151600f0b920151600f0b925190803b1561136457604051630f7c084960e21b8152600f93840b60048201529390920b602484015260448301525f606483015282908290818381608481015b03925af180156113685761141b575b50505f516020611cbc5f395f51905f5290611299565b81611425916108ba565b61136457845f611405565b90916001600160801b03606085015116915f516020611cbc5f395f51905f526001600160801b036080870151169460018060a01b03905116145f146114d2575050825160a090930151926001600160a01b0316803b156113645760405163ce7d650360e01b815260048101929092526024820192909252604481018390525f6064820152600160848201523060a4820152918391839182908160c481016113f6565b9094506114fe60a085939501956114ec87513033846119f9565b60018060a01b03845116875191611a42565b81518551906001600160a01b0316803b156101f95760405163ce7d650360e01b8152600481018790526024810186905260448101929092525f60648301819052600160848401523060a484015290829060c490829084905af19081611699575b50908a95949392916115cf575b50519251926001600160a01b0316803b15611364578492836084926040519687958694630b68372160e31b86526004860152602485015260448401528160648401525af180156113685761141b5750505f516020611cbc5f395f51905f5290611299565b6115de9192939495504761094a565b8015611612576115f78a80808085335af16112c6611132565b806116075790899493929161156b565b985050505050505050565b506040516370a0823160e01b81523060048201526020816024818a5afa801561168e5788908b90611658575b611648925061094a565b611653813389611b9e565b6115f7565b50506020813d602011611686575b81611673602093836108ba565b810103126101f95787611648915161163e565b3d9150611666565b6040513d8c823e3d90fd5b6116ab9196959493929b505f906108ba565b5f9990919293945f61155e565b6040516370a0823160e01b81523060048201529350602084602481895afa80156104b05789945f916116ec575b50966111ef565b9450506020843d602011611719575b81611708602093836108ba565b810103126101f9578893515f6116e5565b3d91506116fb565b60405161172d8161088a565b5f81525f60208201525060608101906001600160801b0382511660808201906001600160801b0382511660c084015115155f146118f557508251604051634903b0d160e01b81526004810192909252602090829060249082906001600160a01b03165afa5f91816118c1575b506118b0575060018060a01b038251169060208451600f0b60246040518095819362cb501b60e31b835260048301525afa9182156104b0575f9261187b575b506064620186a060209304935b5194519151604051635e0d443f60e01b8152600f93840b6004820152920b602483015260448201849052909384919082906001600160a01b03165afa9182156104b0575f92611847575b506040519161183d8361088a565b8252602082015290565b9091506020813d602011611873575b81611863602093836108ba565b810103126101f95751905f61182f565b3d9150611856565b91506020823d6020116118a8575b81611896602093836108ba565b810103126101f95790519060646117d8565b3d9150611889565b906064620186a060209304936117e5565b9091506020813d6020116118ed575b816118dd602093836108ba565b810103126101f95751905f611799565b3d91506118d0565b8351604051634903b0d160e01b81526004810184905292955091925090602090839060249082906001600160a01b03165afa9182156104b0575f9261198b575b506064620186a0602093049360018060a01b0390511694604051958693849263556d6e9f60e01b8452600484015260248301528560448301525afa9182156104b0575f9261184757506040519161183d8361088a565b91506020823d6020116119b8575b816119a6602093836108ba565b810103126101f9579051906064611935565b3d9150611999565b604051634903b0d160e01b81525f600482015290602090829060249082906001600160a01b03165afa9081610f565750610f5257600190565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526112cc91611a3d6084836108ba565b611bf2565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830181905294919390831691602085604481865afa9485156104b0575f95611b6a575b5084018094116101df5760405163095ea7b360e01b602082019081526001600160a01b039290921660248201526044808201959095529384525f908190611acd6064876108ba565b85519082855af190611add611132565b82611b38575b5081611b2d575b5015611af557505050565b611a3d6112cc936040519063095ea7b360e01b602083015260248201525f604482015260448152611b276064826108ba565b82611bf2565b90503b15155f611aea565b80519192508115918215611b50575b5050905f611ae3565b611b639250602080918301019101611bda565b5f80611b47565b9094506020813d602011611b96575b81611b86602093836108ba565b810103126101f95751935f611a85565b3d9150611b79565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526112cc91611a3d6064836108ba565b908160209103126101f9575180151581036101f95790565b5f80611c1a9260018060a01b03169360208151910182865af1611c13611132565b9083611c5d565b8051908115159182611c42575b5050611c305750565b635274afe760e01b5f5260045260245ffd5b611c559250602080918301019101611bda565b155f80611c27565b90611c815750805115611c7257805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611cb2575b611c92575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611c8a56fe000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea264697066735822122095b2866d1bfb6558995f95f5311386e755a500933ce3b93e801eddc460105df664736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c756520677265000000000000000000000000a2e3356610840701bdf5611a53974510ae27e2e10000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec773746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220261575f55631d0bee0c5b5098e221188d5046535cb8f7c19239c842d6c79289064736f6c634300081b0033","sourceMap":"138:14752:70:-:0;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;138:14752:70;;;;;;;2421:18:5;138:14752:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14075:7;1590:14:0;138:14752:70;;-1:-1:-1;;;14075:23:70;;-1:-1:-1;;;138:14752:70;14075:23;;138:14752;;;;;;14075:23;;138:14752;;-1:-1:-1;;;;;138:14752:70;14075:23;;;;;;14109:26;14075:23;;;;;138:14752;;;14109:26;:::i;:::-;138:14752;;14075:23;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;138:14752:70;;;;;;;-1:-1:-1;;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1126:10:65;;;;;;:::i;:::-;138:14752:70;;;1590:14:0;;;;1102:59:65;;138:14752:70;1102:59:65;;138:14752:70;;;;;;;;;;;1102:59:65;;;;;;;;;;;;1075:134;1102:59;;;;;138:14752:70;1075:134:65;;:::i;:::-;1074:135;1224:13;;1259:3;138:14752:70;;1239:18:65;;;;;1322:10;;;;:::i;:::-;138:14752:70;;;;1590:14:0;;;;1304:29:65;;138:14752:70;1304:29:65;;138:14752:70;1304:29:65;;138:14752:70;1304:29:65;;;;;;;;;;1708:14;1304:29;1442:1;1304:29;;;;;1259:3;138:14752:70;1396:17:65;138:14752:70;;;;;;1354:9:65;;;:::i;:::-;1590:14:0;138:14752:70;1396:17:65;:::i;:::-;1477;138:14752:70;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;138:14752:70;;;;;;1566:9:65;;;:::i;:::-;1590:14:0;138:14752:70;;;;;;1577:9:65;;;:::i;:::-;1590:14:0;138:14752:70;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;138:14752:70;;;;;;;1686:9:65;;;:::i;:::-;1590:14:0;138:14752:70;;1697:9:65;138:14752:70;;;;;1697:9:65;;:::i;:::-;1590:14:0;138:14752:70;1708:14:65;;;:::i;:::-;138:14752:70;1224:13:65;;1304:29;;;;;;;;;;;;;:::i;:::-;;;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;1239:18:65;;138:14752:70;;1102:59:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;138:14752:70;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;13865:7;1590:14:0;138:14752:70;;-1:-1:-1;;;13865:23:70;;-1:-1:-1;;;138:14752:70;13865:23;;138:14752;;;;;;13865:23;;138:14752;;-1:-1:-1;;;;;138:14752:70;13865:23;;;;;;13899:26;13865:23;;;;;138:14752;;13899:26;:::i;138:14752::-;;;;;;;-1:-1:-1;;138:14752:70;;;;;;534:59:65;138:14752:70;534:59:65;;;;;;;;:::i;:::-;138:14752:70;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;138:14752:70;;;;;;;;;534:59:65;;138:14752:70;;;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;;;;;;;;;;;5049:44;;;875:42;;5049:44;;138:14752;1590:14:0;138:14752:70;;-1:-1:-1;;;5257:44:70;;-1:-1:-1;;;138:14752:70;5257:44;;138:14752;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;5257:44;;138:14752;;;5257:44;;;;;;;;5340:9;5257:44;;;;;5049;5340:9;;:::i;:::-;138:14752;5322:27;;:56;;;5049:44;-1:-1:-1;;;;;;;;;;;5312:67:70;;;;138:14752;;-1:-1:-1;;;5312:67:70;;138:14752;;;;5312:67;;138:14752;5312:67;138:14752;;;-1:-1:-1;;;;;;;;;;;5312:67:70;;;;;;;;;;;5049:44;-1:-1:-1;;5394:16:70;;;5390:489;;;;138:14752;;5449:15;138:14752;1666:18;138:14752;;;;;;;;;1590:14:0;138:14752:70;5449:15;:::i;:::-;138:14752;1590:14:0;;138:14752:70;;-1:-1:-1;;;5558:41:70;;5593:4;138:14752;5558:41;;138:14752;-1:-1:-1;;;;;138:14752:70;;;5500:24;;;138:14752;;;5558:41;;;;;;;;;;;;5390:489;5538:61;5390:489;;138:14752;1666:18;138:14752;;;;;1590:14:0;138:14752:70;5910:94;138:14752;;1590:14:0;;;;;;;5910:94:70;;138:14752;;;;5910:94;;138:14752;;;;;;;;;;;;5257:44;138:14752;;;;;;;;5910:94;;;;;;;;;;;5390:489;-1:-1:-1;6015:927:70;;;-1:-1:-1;138:14752:70;1590:14:0;6094:45:70;;138:14752;6094:45;;-1:-1:-1;;;;;138:14752:70;6115:24;;6094:45;:::i;:::-;;;:::i;:::-;138:14752;;6218:1;1293:42;;;;;;;138:14752;;-1:-1:-1;;;6237:41:70;;6272:4;138:14752;6237:41;;138:14752;;;;;;6237:41;;;;;;;;;;;;;6015:927;6237:61;;;;;;:::i;:::-;;;:::i;:::-;138:14752;-1:-1:-1;;138:14752:70;;;;;;;;;;;;;1590:14:0;;;;;;;6396:41:70;;6272:4;138:14752;6396:41;;138:14752;6396:41;;;;;;;;;;;6015:927;6396:61;;;;;;:::i;:::-;;;:::i;:41::-;;;138:14752;6396:41;;138:14752;6396:41;;;;;;1590:14:0;6396:41:70;;;:::i;:::-;;;1590:14:0;;;;;6396:61:70;:41;;1590:14:0;-1:-1:-1;138:14752:70;;6396:41;;;-1:-1:-1;6396:41:70;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;138:14752:70;-1:-1:-1;;;523:5:65;;;138:14752:70;523:5:65;138:14752:70;;523:5:65;6237:41:70;;;;138:14752;6237:41;;138:14752;6237:41;;;;;;1590:14:0;6237:41:70;;;:::i;:::-;;;1590:14:0;;;;;;;;-1:-1:-1;6237:61:70;:41;;;;;-1:-1:-1;6237:41:70;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;1293:42:70;-1:-1:-1;;;523:5:65;;;138:14752:70;523:5:65;138:14752:70;;523:5:65;6015:927:70;1293:42;;;;;6546:1;1293:42;;;;;;;138:14752;;-1:-1:-1;;;6586:42:70;;6622:4;138:14752;6586:42;;138:14752;;;;;;6586:42;;;;;;;;;;;;6015:927;6565:63;;;;;;:::i;:::-;-1:-1:-1;;138:14752:70;;;;;;;;;;;;;1590:14:0;;;;;;;6740:42:70;;6622:4;138:14752;6740:42;;138:14752;6740:42;;;;;;;;;;;6015:927;6719:63;6876:41;6719:63;;6876:41;6719:63;;;;;:::i;:::-;138:14752;6876:21;;:41;:::i;6740:42::-;;;;138:14752;6740:42;;138:14752;6740:42;;;;;;1590:14:0;6740:42:70;;;:::i;:::-;;;1590:14:0;;;;;;6740:42:70;;6876:41;6740:42;;;;;-1:-1:-1;6740:42:70;;138:14752;-1:-1:-1;;;523:5:65;;;138:14752:70;523:5:65;138:14752:70;;523:5:65;6586:42:70;;;138:14752;6586:42;;138:14752;6586:42;;;;;;1590:14:0;6586:42:70;;;:::i;:::-;;;1590:14:0;;;;;;;6565:63:70;6586:42;;;;;-1:-1:-1;6586:42:70;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;1293:42:70;-1:-1:-1;;;523:5:65;;;138:14752:70;523:5:65;138:14752:70;;523:5:65;5910:94:70;;;;;138:14752;5910:94;138:14752;5910:94;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5558:41;;;;138:14752;5558:41;;138:14752;5558:41;;;;;;1590:14:0;5558:41:70;;;:::i;:::-;;;1590:14:0;;;;;;;5558:41:70;;;;;;-1:-1:-1;5558:41:70;;5390:489;138:14752;;-1:-1:-1;;;14753:31:70;;138:14752;14753:31;;138:14752;;;;;;;;1472:42;14753:31;;;;;;;;;;;5390:489;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;14824:4:70;138:14752;27501:38:3;;138:14752:70;;27501:38:3;;;;;;:::i;:::-;27484:56;;1472:42:70;27484:56:3;;;27568:30;27484:56;;:::i;:::-;138:14752:70;;;;27568:30:3;;;;;;:::i;:::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;1472:42:70;1590:14:0;;;7009:9:8;138:14752:70;;-1:-1:-1;;138:14752:70;27524:10:3;138:14752:70;;;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;:::-;14824:4;;;;1590:14:0;;;;;;;;;;;;;;;;;;;;;;1666:18:70;138:14752;;;;6854:12:8;138:14752:70;;;7009:9:8;138:14752:70;;1590:14:0;15610:11:8;138:14752:70;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;138:14752:70;;15735:37:8;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;5390:489:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;15943:15:8;138:14752:70;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;;:::i;:::-;15938:460;;5390:489:70;138:14752;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5390:489:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5390:489:70;16678:31:8;;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;5390:489:70;16720:176:8;;;;14785:4;;;;;:::i;:::-;138:14752:70;;1590:14:0;;;;14854:27:70;;138:14752;14854:27;;138:14752;;14854:27;138:14752;14854:27;;1472:42;14854:27;;;;;;;;5390:489;-1:-1:-1;138:14752:70;1590:14:0;;138:14752:70;;-1:-1:-1;;;5676:60:70;;-1:-1:-1;;;;;138:14752:70;;;;5676:60;;138:14752;;;;;;;;;;;5676:60;;;;;;;;;;5390:489;-1:-1:-1;138:14752:70;;-1:-1:-1;;;5771:42:70;;14824:4;138:14752;5771:42;;138:14752;;;;;5771:42;;;;;;;;;;;;5390:489;5750:63;5847:21;;5390:489;;;5771:42;;;;138:14752;5771:42;;138:14752;5771:42;;;;;;1590:14:0;5771:42:70;;;:::i;:::-;;;1590:14:0;;;;;;;5771:42:70;;;;;;-1:-1:-1;5771:42:70;;5676:60;;;138:14752;5676:60;138:14752;5676:60;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;14854:27;;;138:14752;14854:27;138:14752;14854:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;16720:176:8;138:14752:70;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;138:14752:70;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;138:14752:70;;;;16769:41:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;16769:41;;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;138:14752:70;;-1:-1:-1;;;16824:61:8;;138:14752:70;;16824:61:8;;12810:59;;138:14752:70;12810:59:8;;138:14752:70;12810:59:8;27501:38:3;138:14752:70;;12810:59:8;-1:-1:-1;;;5257:44:70;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;138:14752:70;;16769:41:8;;;16724:29;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;;138:14752:70;;;16424:32:8;;;;;138:14752:70;16424:32:8;;138:14752:70;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;15938:460:8;16028:34;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;;;;;1590:14:0;;;;16314:19:8;;;138:14752:70;16314:19:8;;138:14752:70;16314:19:8;;138:14752:70;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;;;;;15938:460;138:14752:70;;;16170:185:8;;138:14752:70;16170:185:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;138:14752:70;12810:59:8;;-1:-1:-1;;;;;;;;;;;12810:59:8;;138:14752:70;12810:59:8;;-1:-1:-1;;;12810:59:8;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;12810:59:8;138:14752:70;;;16170:185:8;12810:59;16170:185;138:14752:70;;16170:185:8;;;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;12810:59;138:14752:70;;-1:-1:-1;;;12810:59:8;;138:14752:70;;12810:59:8;;138:14752:70;;;;;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;138:14752:70;-1:-1:-1;;;523:5:65;;6854:12:8;138:14752:70;523:5:65;138:14752:70;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;14753:31;;;;138:14752;14753:31;;138:14752;14753:31;;;;;;1590:14:0;14753:31:70;;;:::i;:::-;;;1590:14:0;;;;;14753:31:70;;;;;;;-1:-1:-1;14753:31:70;;5312:67;;;;;:::i;:::-;138:14752;;5312:67;;;;5322:56;5353:25;5371:7;5353:25;;5322:56;;5257:44;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5049;875:42;5049:44;;;;;138:14752;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;8092:35;138:14752;1666:18;138:14752;;;;;1590:14:0;138:14752:70;;;1590:14:0;;;;;;;8092:35:70;;1047:42;138:14752;;;8092:35;;138:14752;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;8092:35;;;;;;8166:9;8092:35;;;;;8166:9;;:::i;:::-;138:14752;8148:27;;:56;;;138:14752;-1:-1:-1;;;;;;;;;;;8138:67:70;;;;138:14752;;-1:-1:-1;;;8138:67:70;;138:14752;;;;8138:67;;138:14752;8138:67;138:14752;;;-1:-1:-1;;;;;;;;;;;8138:67:70;;;;;;;;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;8235:4:70;138:14752;27501:38:3;;138:14752:70;;27501:38:3;;;138:14752:70;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;;;;;;;1590:14:0;;;27524:10:3;138:14752:70;;7009:9:8;138:14752:70;;;7009:9:8;138:14752:70;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;1666:18:70;138:14752;;;;6854:12:8;138:14752:70;;7009:9:8;138:14752:70;;1590:14:0;15610:11:8;138:14752:70;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;138:14752:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;;15943:15:8;138:14752:70;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;138:14752:70;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;138:14752:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;138:14752:70;16678:31:8;;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;138:14752:70;16720:176:8;;;;14785:4;;;;:::i;:::-;138:14752:70;1590:14:0;;138:14752:70;;-1:-1:-1;;;8268:55:70;;-1:-1:-1;;;;;138:14752:70;;;;8268:55;;138:14752;;;;;;;;;;;8268:55;-1:-1:-1;;;;;;;;;;;8268:55:70;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;8357:37:70;;8235:4;138:14752;8357:37;;138:14752;;;;;;-1:-1:-1;;;;;;;;;;;8357:37:70;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;8427:37:70;;8235:4;138:14752;8427:37;;138:14752;;;;;;-1:-1:-1;;;;;;;;;;;8427:37:70;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;1590:14:0;138:14752:70;;-1:-1:-1;;;8508:53:70;;138:14752;;8508:53;;138:14752;;-1:-1:-1;;;;;138:14752:70;;8508:53;138:14752;8508:53;138:14752;;8508:53;;;:::i;:::-;;;;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;8638:37:70;;8235:4;138:14752;8638:37;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;8638:37:70;;;;;;;;;;;138:14752;8623:52;;;;;;:::i;:::-;138:14752;;;-1:-1:-1;;;8753:37:70;;8235:4;138:14752;8753:37;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;8753:37:70;;;;;;;;;;;138:14752;8753:52;;;;;;:::i;:37::-;;;138:14752;8753:37;;138:14752;8753:37;;;;;;1590:14:0;8753:37:70;;;:::i;:::-;;;1590:14:0;;;;;8753:52:70;:37;;;;;-1:-1:-1;8753:37:70;;8638;;;138:14752;8638:37;;138:14752;8638:37;;;;;;1590:14:0;8638:37:70;;;:::i;:::-;;;1590:14:0;;;;;8623:52:70;8638:37;;;;;-1:-1:-1;8638:37:70;;8508:53;;;;;;;;;;;;;;;:::i;:::-;;;;;8427:37;;;;138:14752;8427:37;;138:14752;8427:37;;;;;;1590:14:0;8427:37:70;;;:::i;:::-;;;1590:14:0;;;;;8427:37:70;;;;;;;-1:-1:-1;8427:37:70;;8357;;;;138:14752;8357:37;;138:14752;8357:37;;;;;;1590:14:0;8357:37:70;;;:::i;:::-;;;1590:14:0;;;;;8357:37:70;;;;;;;-1:-1:-1;8357:37:70;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;8268:55:70;;;138:14752;8268:55;138:14752;8268:55;;;;;;;:::i;:::-;;;16720:176:8;138:14752:70;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;138:14752:70;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;138:14752:70;;;;16769:41:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;;138:14752:70;;;16424:32:8;;;;;138:14752:70;16424:32:8;;138:14752:70;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;138:14752:70;;;;;16314:19:8;;138:14752:70;;;16314:19:8;138:14752:70;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;138:14752:70;16314:19:8;;;;;15938:460;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;12810:59:8;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;138:14752:70;;-1:-1:-1;;;12810:59:8;;138:14752:70;;12810:59:8;;138:14752:70;;;;;;;;;;;:::i;16314:19:8:-;;;;;;;;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;8138:67;;;;;:::i;:::-;138:14752;;8138:67;;;;8148:56;8179:25;8197:7;8179:25;;8148:56;;8092:35;;;;;;;;;;;;;:::i;138:14752::-;;;;;;;;;;;;;3190:18:5;138:14752:70;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3190:18:5;138:14752:70;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;1590:14:0;;138:14752:70;;1666:18;138:14752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;1590:14:0;138:14752:70;1590:14:0;138:14752:70;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:5;138:14752:70;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2883:26:5;138:14752:70;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2883:26:5;138:14752:70;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;1590:14:0;;138:14752:70;;1666:18;138:14752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;138:14752:70;1590:14:0;138:14752:70;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;;;;;;1590:14:0;138:14752:70;;;;;;;;;;;;;;;;;;;-1:-1:-1;;138:14752:70;;;;;1590:14:0;138:14752:70;;-1:-1:-1;;;9049:34:70;;-1:-1:-1;;;138:14752:70;9049:34;;;138:14752;;;;;;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;;;;9049:34;138:14752;;9049:34;;;;;;9122:9;9049:34;;;;;9122:9;;:::i;:::-;138:14752;9104:27;;:56;;;138:14752;-1:-1:-1;;;;;;;;;;;9094:67:70;;;;138:14752;;-1:-1:-1;;;9094:67:70;;138:14752;;;;9094:67;;138:14752;9094:67;;138:14752;;;-1:-1:-1;;;;;;;;;;;9094:67:70;;;;;;;;;;;138:14752;9195:15;;;;;:::i;:::-;138:14752;1590:14:0;;138:14752:70;;-1:-1:-1;;;9301:37:70;;9332:4;138:14752;9301:37;;138:14752;;-1:-1:-1;;;;;138:14752:70;;;9244:24;;;;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;9301:37:70;;;;;;;;;;;138:14752;;;;9382:52;138:14752;;1590:14:0;;;;;;;9382:52:70;;1047:42;138:14752;;;9382:52;;138:14752;;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;9049:34;138:14752;;;;;;;;9382:52;;;;;;;;;;;138:14752;;9471:38;;138:14752;;1666:18;138:14752;;;;;1590:14:0;138:14752:70;9485:24;9471:38;;:::i;9382:52::-;9471:38;9382:52;;;9471:38;9382:52;138:14752;9382:52;138:14752;9382:52;;;;;;;:::i;:::-;;;;;9301:37;;;;;138:14752;9301:37;;138:14752;9301:37;;;;;;1590:14:0;9301:37:70;;;:::i;:::-;;;1590:14:0;;;;138:14752:70;1590:14:0;;;9301:37:70;;;;;;;-1:-1:-1;9301:37:70;;9094:67;;;;;;;;:::i;:::-;138:14752;;9094:67;;;;;;138:14752;;;1590:14:0;;;;;;;;9104:56:70;9135:25;9153:7;9135:25;;9104:56;;138:14752;;;;;;;;;;;;;14285:7;1590:14:0;138:14752:70;;-1:-1:-1;;;14285:35:70;;-1:-1:-1;;;138:14752:70;14285:35;;138:14752;385:42;138:14752;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;;;;14285:35;;138:14752;;-1:-1:-1;;;;;138:14752:70;14285:35;;;;;;14331:26;14285:35;;;;;138:14752;;;14331:26;:::i;14285:35::-;;;;;;;;;;;;;:::i;:::-;;;;138:14752;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;10706:35;138:14752;1666:18;138:14752;;;;;1590:14:0;138:14752:70;;;1590:14:0;;;;;;;10706:35:70;;138:14752;;;;10706:35;;138:14752;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;;;;10706:35;;;;;;10780:9;10706:35;;;;;10780:9;;:::i;:::-;138:14752;10762:27;;:57;;;138:14752;-1:-1:-1;;;;;;;;;;;10752:68:70;;;;138:14752;;-1:-1:-1;;;10752:68:70;;138:14752;;;;10752:68;;138:14752;10752:68;138:14752;;;-1:-1:-1;;;;;;;;;;;10752:68:70;;;;;;;;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;10860:4:70;138:14752;27501:38:3;;138:14752:70;;27501:38:3;;;138:14752:70;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;;;;;;;1590:14:0;;;7009:9:8;138:14752:70;;-1:-1:-1;;138:14752:70;27524:10:3;138:14752:70;;;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;1666:18:70;138:14752;;;;6854:12:8;138:14752:70;;7009:9:8;138:14752:70;;1590:14:0;15610:11:8;138:14752:70;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;138:14752:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;;15943:15:8;138:14752:70;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;138:14752:70;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;138:14752:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;138:14752:70;16678:31:8;;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;138:14752:70;16720:176:8;;;;14785:4;;;;:::i;:::-;138:14752:70;1590:14:0;;138:14752:70;;-1:-1:-1;;;10893:56:70;;-1:-1:-1;;;;;138:14752:70;;;;10893:56;;138:14752;;;;;;;;;;;10893:56;-1:-1:-1;;;;;;;;;;;10893:56:70;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;11037:38:70;;10860:4;138:14752;11037:38;;138:14752;;;10982:21;138:14752;;;;-1:-1:-1;;;;;;;;;;;11037:38:70;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;1590:14:0;138:14752:70;;-1:-1:-1;;;11119:53:70;;-1:-1:-1;;;138:14752:70;11119:53;;138:14752;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;;;;;10706:35;138:14752;;;;;;;;;;;;;;;;11119:53;;138:14752;;1590:14:0;-1:-1:-1;;;;;138:14752:70;11119:53;;;;;;;11216:35;11119:53;11216:35;11119:53;;;;;138:14752;;;11216:21;;:35;:::i;:::-;138:14752;;-1:-1:-1;;;11329:38:70;;10860:4;138:14752;11329:38;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;11329:38:70;;;;;;;;;;;138:14752;11313:54;;;;;;:::i;11329:38::-;;;138:14752;11329:38;;138:14752;11329:38;;;;;;1590:14:0;11329:38:70;;;:::i;:::-;;;1590:14:0;;;;;11313:54:70;11329:38;;;;;-1:-1:-1;11329:38:70;;11119:53;;;;138:14752;11119:53;138:14752;11119:53;;;;;;;:::i;:::-;;;;11037:38;;;;;138:14752;11037:38;;138:14752;11037:38;;;;;;1590:14:0;11037:38:70;;;:::i;:::-;;;1590:14:0;;;;;;;11037:38:70;;;;;;;-1:-1:-1;11037:38:70;;10893:56;;;138:14752;10893:56;138:14752;10893:56;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;16424:32;;;;;138:14752:70;16424:32:8;;138:14752:70;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;138:14752:70;;;;;16314:19:8;;138:14752:70;;;16314:19:8;138:14752:70;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;138:14752:70;16314:19:8;;;;;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;12810:59:8;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;10752:68:70;;;;;:::i;:::-;138:14752;;10752:68;;;;10762:57;10793:26;10811:8;10793:26;;10762:57;;138:14752;;;;;;;;;;;;;;;;;;3038:18:5;138:14752:70;;;;;;;3038:18:5;138:14752:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;138:14752:70;;;;;;;3331:16:5;138:14752:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:3;138:14752;;-1:-1:-1;;138:14752:70;;;;;;;;;11774:13;11789:19;1421:3;11789:19;;;;11906:28;;;:::i;:::-;11977:13;;11992:19;1421:3;11992:19;;;;12312:13;;138:14752;12327:23;138:14752;12327:23;;;;138:14752;;;;;;;;:::i;:::-;1421:3;138:14752;;;;;;;12746:13;12761:19;1421:3;12761:19;;;;12877:28;;;:::i;:::-;12948:13;;12963:19;1421:3;12963:19;;;;13283:13;;138:14752;13298:23;138:14752;13298:23;;;;138:14752;;;13323:3;13351:9;;;;:::i;:::-;;138:14752;;1293:42;;;;;;;;13433:53;13379:13;:30;13424:66;13379:13;;138:14752;13379:13;;;;:::i;:::-;;138:14752;13379:30;;:::i;:::-;138:14752;13466:13;13433:9;;;;;:::i;:::-;;:15;;1293:42;13466:13;;:::i;:::-;;:19;;13433:53;;:::i;:::-;1421:3;;13424:66;:::i;:::-;138:14752;13283:13;;12984:3;138:14752;;-1:-1:-1;;;13016:13:70;;138:14752;;;;;13016:13;-1:-1:-1;;;;;;;;;;;13016:13:70;;;;;;;;;;;12984:3;13070:10;;;;;:::i;:::-;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;12092:4:70;27501:38:3;;;138:14752:70;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;;;;;;;1590:14:0;;;27524:10:3;138:14752:70;;7009:9:8;138:14752:70;;;7009:9:8;138:14752:70;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;6854:12:8;138:14752:70;7009:9:8;138:14752:70;15610:11:8;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;12984:3:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;12984:3:70;138:14752;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;12984:3:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;12984:3:70;16678:31:8;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;12984:3:70;16720:176:8;;;;14785:4;;;;;;:::i;:::-;138:14752:70;1590:14:0;;13095:50:70;;138:14752;-1:-1:-1;;;;;138:14752:70;13134:10;;;;:::i;:::-;138:14752;;;-1:-1:-1;;;13095:50:70;;-1:-1:-1;;;;;138:14752:70;;;;13095:50;;138:14752;;;;;;;;;;;;;;;13095:50;;;;-1:-1:-1;;;;;;;;;;;13095:50:70;;;;;;;;12984:3;-1:-1:-1;138:14752:70;1590:14:0;138:14752:70;;12201:48;;13172;;-1:-1:-1;;;;;138:14752:70;13209:10;;;;:::i;:::-;138:14752;;;1590:14:0;;;;;;;;;13172:48:70;;138:14752;13172:48;;;:::i;:::-;;;;;;;;;;;;;;12984:3;13160:60;;;;;:::i;:::-;;;;;;:::i;:::-;;138:14752;;1590:14:0;;;;13234:23:70;;138:14752;13234:23;;138:14752;;13234:23;27501:38:3;13234:23:70;;-1:-1:-1;;;;;;;;;;;13234:23:70;;;;;;;138:14752;13234:23;;;12984:3;;138:14752;12948:13;;13234:23;;;138:14752;13234:23;;;;;;;;;:::i;:::-;;;;;13172:48;;;;12201;13172;;;;;;;;;:::i;:::-;;;;13095:50;;;138:14752;13095:50;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;16424:32;;;;;138:14752:70;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;138:14752:70;;;;;16314:19:8;;138:14752:70;;;16314:19:8;;138:14752:70;27501:38:3;138:14752:70;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;138:14752:70;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;12810:59:8;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;138:14752:70;-1:-1:-1;;;523:5:65;;6854:12:8;138:14752:70;523:5:65;27501:38:3;138:14752:70;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;27501:38:3;138:14752:70;;13016:13;;;;138:14752;13016:13;;;;;;;;;1590:14:0;13016:13:70;;;:::i;:::-;;;1590:14:0;;;;;13016:13:70;;;;;;;-1:-1:-1;13016:13:70;;12782:3;523:5:65;11842:4:70;523:5:65;11842:4:70;523:5:65;;;;;;;;;;;;;12825:7:70;523:5:65;;;;;;;12801:31:70;138:14752;12801:31;;;;;:::i;:::-;138:14752;;12746:13;;12352:3;12380:9;;;;:::i;:::-;;138:14752;;1293:42;;;;;;;;12462:53;12408:13;:30;12453:66;12408:13;;138:14752;12408:13;;;;:::i;12462:53::-;1421:3;;12453:66;:::i;:::-;138:14752;12312:13;;12013:3;138:14752;;-1:-1:-1;;;12045:13:70;;138:14752;;;;;12045:13;-1:-1:-1;;;;;;;;;;;12045:13:70;;;;;;;;;;;12013:3;12099:10;;;;;:::i;:::-;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;12092:4:70;27501:38:3;;;138:14752:70;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;;;;;;;1590:14:0;;;27524:10:3;138:14752:70;;7009:9:8;138:14752:70;;;7009:9:8;138:14752:70;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;6854:12:8;138:14752:70;7009:9:8;138:14752:70;15610:11:8;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;12013:3:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;12013:3:70;138:14752;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;12013:3:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;12013:3:70;16678:31:8;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;12013:3:70;16720:176:8;;;;14785:4;;;;;;:::i;:::-;138:14752:70;1590:14:0;;12124:50:70;;138:14752;-1:-1:-1;;;;;138:14752:70;12163:10;;;;:::i;12124:50::-;;;;-1:-1:-1;;;;;;;;;;;12124:50:70;;;;;;;;12013:3;-1:-1:-1;138:14752:70;1590:14:0;138:14752:70;;12201:48;;;;-1:-1:-1;;;;;138:14752:70;12238:10;;;;:::i;12201:48::-;;;;;;;;;;;;;;12013:3;12189:60;;;;;:::i;:::-;;;;;;:::i;:::-;;138:14752;;1590:14:0;;;;12263:23:70;;138:14752;12263:23;;138:14752;;12263:23;27501:38:3;12263:23:70;;-1:-1:-1;;;;;;;;;;;12263:23:70;;;;;;;138:14752;12263:23;;;12013:3;;138:14752;11977:13;;12263:23;;;138:14752;12263:23;;;;;;;;;:::i;:::-;;;;;12201:48;;;;;;;;;;;;;;:::i;:::-;;;;12124:50;;;138:14752;12124:50;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;16424:32;;;;;138:14752:70;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;138:14752:70;;;;;16314:19:8;;138:14752:70;;;16314:19:8;;138:14752:70;27501:38:3;138:14752:70;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;138:14752:70;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;12810:59:8;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;138:14752:70;-1:-1:-1;;;523:5:65;;6854:12:8;138:14752:70;523:5:65;27501:38:3;138:14752:70;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;27501:38:3;138:14752:70;;12045:13;;;;138:14752;12045:13;;;;;;;;;1590:14:0;12045:13:70;;;:::i;:::-;;;1590:14:0;;;;;12045:13:70;;;;;;;-1:-1:-1;12045:13:70;;11810:3;523:5:65;11842:4:70;523:5:65;11842:4:70;523:5:65;;;;;;;;;;;;;11853:8:70;523:5:65;;;;;;;11829:32:70;138:14752;11829:32;;;;;:::i;:::-;138:14752;;11774:13;;138:14752;;;;;;;;;;;;;14507:7;1590:14:0;138:14752:70;;-1:-1:-1;;;14507:35:70;;-1:-1:-1;;;138:14752:70;14507:35;;138:14752;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;;;;14507:35;;138:14752;;-1:-1:-1;;;;;138:14752:70;14507:35;;;;;;14553:26;14507:35;;;;;138:14752;;14553:26;:::i;138:14752::-;;;;;;;-1:-1:-1;;138:14752:70;;;;;1590:14:0;138:14752:70;;-1:-1:-1;;;9873:35:70;;-1:-1:-1;;;138:14752:70;9873:35;;;138:14752;;;;;;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;;;;9873:35;138:14752;;9873:35;;;;;;9947:9;9873:35;;;;;9947:9;;:::i;:::-;138:14752;9929:27;;:57;;;138:14752;-1:-1:-1;;;;;;;;;;;9919:68:70;;;;138:14752;;-1:-1:-1;;;9919:68:70;;138:14752;;;;9919:68;;138:14752;9919:68;;138:14752;;;-1:-1:-1;;;;;;;;;;;9919:68:70;;;;;;;;;;;138:14752;10021:15;;;;;:::i;:::-;138:14752;1590:14:0;;138:14752:70;;-1:-1:-1;;;10128:38:70;;10160:4;138:14752;10128:38;;138:14752;;-1:-1:-1;;;;;138:14752:70;;;10070:24;;;;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;10128:38:70;;;;;;;;;;;138:14752;;;;10210:53;138:14752;;1590:14:0;;;;;;;10210:53:70;;138:14752;;;;10210:53;;138:14752;;;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;;9873:35;138:14752;;;;;;;;10210:53;;;;;;;;;;;138:14752;;10300:38;;138:14752;;1666:18;138:14752;;;;;1590:14:0;138:14752:70;10314:24;10300:38;;:::i;:::-;138:14752;;;-1:-1:-1;;;10407:38:70;;10160:4;138:14752;10407:38;;138:14752;;;;;-1:-1:-1;;;;;;;;;;;10407:38:70;;;;;;;;;;;:54;;;;;;:::i;10210:53::-;10300:38;10210:53;;;10300:38;10210:53;138:14752;10210:53;138:14752;10210:53;;;;;;;:::i;:::-;;;;;10128:38;;;;;138:14752;10128:38;;138:14752;10128:38;;;;;;1590:14:0;10128:38:70;;;:::i;:::-;;;1590:14:0;;;;138:14752:70;1590:14:0;;;10128:38:70;;;;;;;-1:-1:-1;10128:38:70;;9919:68;;;;;;;;:::i;:::-;138:14752;;9919:68;;;;;9929:57;9960:26;9978:8;9960:26;;9929:57;;138:14752;;;;;;;;;;;;;3485:19:5;138:14752:70;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3485:19:5;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;1590:14:0;;1666:18:70;138:14752;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;7155:35;138:14752;1666:18;138:14752;;;;;1590:14:0;138:14752:70;;;1590:14:0;;;;;;;7155:35:70;;968:42;138:14752;;;7155:35;;138:14752;385:42;138:14752;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;7155:35;;;;;;7229:9;7155:35;;;;;7229:9;;:::i;:::-;138:14752;7211:27;;:56;;;138:14752;-1:-1:-1;;;;;;;;;;;7201:67:70;;;;138:14752;;-1:-1:-1;;;7201:67:70;;138:14752;;;;7201:67;;138:14752;7201:67;138:14752;;;-1:-1:-1;;;;;;;;;;;7201:67:70;;;;;;;;138:14752;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;7298:4:70;138:14752;27501:38:3;;138:14752:70;;27501:38:3;;;138:14752:70;27501:38:3;;:::i;:::-;27484:56;;385:42:70;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;385:42:70;1590:14:0;;;7009:9:8;138:14752:70;;-1:-1:-1;;138:14752:70;27524:10:3;138:14752:70;;;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;1666:18:70;138:14752;;;;6854:12:8;138:14752:70;;7009:9:8;138:14752:70;;1590:14:0;15610:11:8;138:14752:70;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;;;;15610:11:8;138:14752:70;;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;138:14752:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;;;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;138:14752:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;;;;;;;15943:15:8;138:14752:70;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;138:14752:70;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;138:14752:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;138:14752:70;16678:31:8;;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;138:14752:70;16720:176:8;;;;14785:4;;;;:::i;:::-;138:14752:70;1590:14:0;;138:14752:70;;-1:-1:-1;;;7331:55:70;;-1:-1:-1;;;;;138:14752:70;;;;7331:55;;138:14752;;;;;;;;;;;7331:55;385:42;7331:55;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;7420:37:70;;7298:4;138:14752;7420:37;;138:14752;;;;;;;385:42;7420:37;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;7490:37:70;;7298:4;138:14752;7490:37;;138:14752;;;;;;-1:-1:-1;;;;;;;;;;;7490:37:70;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;1590:14:0;138:14752:70;;-1:-1:-1;;;7571:53:70;;-1:-1:-1;;;138:14752:70;7571:53;;138:14752;385:42;138:14752;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;7155:35;138:14752;;;;;;;;;;;;;;;;7571:53;;138:14752;;1590:14:0;-1:-1:-1;;;;;138:14752:70;7571:53;;;;;;;;;;;138:14752;-1:-1:-1;138:14752:70;;-1:-1:-1;;;7701:37:70;;7298:4;138:14752;7701:37;;138:14752;;;;;385:42;7701:37;;;;;;;;;;;7686:52;;;;;;:::i;7571:53::-;;;;;138:14752;7571:53;138:14752;7571:53;;;;;;;:::i;:::-;;;;;7490:37;;;;;138:14752;7490:37;;138:14752;7490:37;;;;;;1590:14:0;7490:37:70;;;:::i;:::-;;;1590:14:0;;;;;;;7490:37:70;;;;;;;-1:-1:-1;7490:37:70;;7420;;;;138:14752;7420:37;;138:14752;7420:37;;;;;;1590:14:0;7420:37:70;;;:::i;:::-;;;1590:14:0;;;;;;;7420:37:70;;;;;;-1:-1:-1;7420:37:70;;7331:55;;;138:14752;7331:55;138:14752;7331:55;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;16424:32;;;;;138:14752:70;16424:32:8;;138:14752:70;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;138:14752:70;;;;;16314:19:8;;138:14752:70;;;16314:19:8;138:14752:70;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;138:14752:70;16314:19:8;;;;;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;12810:59:8;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;7201:67:70;;;;;:::i;:::-;138:14752;;7201:67;;;;7211:56;7242:25;7260:7;7242:25;;7211:56;;138:14752;;;;;;;;;;;;;3500:28;138:14752;3550:13;;138:14752;;;3565:7;;;;;;138:14752;;;3574:3;3624:31;;27501:38:3;3624:31:70;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;1590:14:0;;;138:14752:70;;;;;1666:18;138:14752;;;;3697:7;1590:14:0;138:14752:70;;;1590:14:0;;;;;;;3697:23:70;;;138:14752;3697:23;;138:14752;3697:23;;;;;;;;;;;3574:3;138:14752;;;;;;;;:::i;:::-;3775:1;138:14752;;;;3697:7;138:14752;;;27501:38:3;3697:7:70;3817:31;;;:::i;:::-;138:14752;;;;-1:-1:-1;;;3796:95:70;;138:14752;3796:95;;138:14752;;;;;;1590:14:0;;138:14752:70;;1590:14:0;;138:14752:70;-1:-1:-1;;;;;138:14752:70;3796:95;;;;;;;3574:3;-1:-1:-1;3792:347:70;;4050:31;27501:38:3;3697:7:70;4050:31;;;:::i;:::-;138:14752;;;;-1:-1:-1;;;4006:113:70;;138:14752;4006:113;;138:14752;;;;;;1590:14:0;;138:14752:70;;1590:14:0;;138:14752:70;-1:-1:-1;;;;;138:14752:70;4006:113;;;;;;;;;;3792:347;4122:2;523:5:65;;;3993:131:70;;;:::i;:::-;138:14752;3792:347;-1:-1:-1;;;;;4158:9:70;;;:::i;:::-;1590:14:0;138:14752:70;4184:10;6854:22:8;4184:10:70;;;:::i;:::-;138:14752;;;;;;3697:7;27501:38:3;;1590:14:0;;;;27501:38:3;;4177:4:70;27501:38:3;;;138:14752:70;27501:38:3;;;;;;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;;1666:18:70;138:14752;;;;;-1:-1:-1;;;;;1590:14:0;;6854:12:8;1590:14:0;;;6854:12:8;1590:14:0;;6854:22:8;27524:10:3;138:14752:70;;7009:9:8;138:14752:70;;;7009:9:8;138:14752:70;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;3775:1;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;1666:18:70;138:14752;;;;6854:12:8;138:14752:70;;7009:9:8;138:14752:70;;1590:14:0;138:14752:70;15610:11:8;138:14752:70;15653:34:8;138:14752:70;1590:14:0;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;;138:14752:70;;;;;;;;;3697:7;138:14752;;;;;;3697:7;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;138:14752:70;;3697:7;138:14752;;15703:77:8;138:14752:70;;15702:78:8;15698:126;;3792:347:70;-1:-1:-1;;;;;138:14752:70;;;;;;27635:8:3;138:14752:70;;;;;;;;3697:7;138:14752;15889:37:8;;138:14752:70;;;;;;15889:37:8;;;3697:7:70;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;138:14752:70;;3697:7;138:14752;;;;15943:15:8;3775:1:70;15943:15:8;;138:14752:70;15961:16:8;7009:9;15961:16;;138:14752:70;15943:34:8;;;;;:::i;:::-;15938:460;;3792:347:70;138:14752;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;138:14752:70;;;16424:32:8;;138:14752:70;;;;;;;;;;;;;;;;;;;;3697:7;138:14752;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;3792:347:70;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;138:14752:70;;;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;1590:14:0;;;;12656:92:8;;;;12810:59;;;138:14752:70;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;3792:347:70;16678:31:8;;;;:::i;:::-;16724:8;;;138:14752:70;;;16724:29:8;;3792:347:70;16720:176:8;;;;14785:4;;;;;:::i;:::-;4209:55:70;3697:7;-1:-1:-1;;;;;4216:9:70;;;:::i;:::-;1590:14:0;;;-1:-1:-1;;;;;138:14752:70;;;4253:10;;;:::i;:::-;138:14752;;;-1:-1:-1;;;4209:55:70;;-1:-1:-1;;;;;138:14752:70;;;;4209:55;;138:14752;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;4209:55;;;;;;;;;4325:180;;4209:55;;;4325:180;;4209:55;;;;3792:347;-1:-1:-1;3697:7:70;1590:14:0;-1:-1:-1;;;;;138:14752:70;;;;4377:9;;;:::i;:::-;1590:14:0;138:14752:70;;;4481:10;-1:-1:-1;;;;;4404:9:70;;;:::i;:::-;1590:14:0;138:14752:70;4481:10;;:::i;:::-;138:14752;;;-1:-1:-1;;;4325:180:70;;138:14752;;;;;;;;4325:180;138:14752;4325:180;;;:::i;:::-;;;;;;;;;;;;;;4589:45;4325:180;;;3792:347;-1:-1:-1;3697:7:70;1590:14:0;-1:-1:-1;;;;;138:14752:70;;;;;4613:9;138:14752;4613:9;:::i;:::-;1590:14:0;138:14752:70;;-1:-1:-1;;;;;138:14752:70;4624:9;;;:::i;:::-;1590:14:0;138:14752:70;;-1:-1:-1;;;4589:45:70;;138:14752;4589:45;;138:14752;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;4589:45;;;;;;;;;;3775:1;4589:45;;;4832:22;4589:45;4841:9;4589:45;;;;;3792:347;138:14752;4746:36;138:14752;;4649:35;3697:7;138:14752;;4649:35;:::i;:::-;4707:11;4698:34;4707:11;;138:14752;4698:34;:::i;:::-;4755:11;:23;138:14752;4746:36;:::i;:::-;4796:22;4805:9;;;:::i;:::-;138:14752;4796:22;:::i;:::-;4841:9;:::i;4832:22::-;138:14752;3550:13;;;;;;4589:45;3697:7;4589:45;;;;;4746:36;4589:45;;;;;;;;;;;:::i;:::-;;;;;;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;4325:180:70;;;;;;;;;;;;;;;:::i;:::-;;;;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;4209:55:70;;;3697:7;4209:55;;;;;;;;;:::i;:::-;;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;16720:176:8;138:14752:70;;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;138:14752:70;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;138:14752:70;;;;;16769:41:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;12810:59:8;138:14752:70;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;138:14752:70;;-1:-1:-1;;;16824:61:8;;3697:7:70;138:14752;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;138:14752:70;12810:59:8;27501:38:3;138:14752:70;;12810:59:8;-1:-1:-1;;;12810:59:8;;;;16824:61;;;16769:41;;;;;;:::i;:::-;138:14752:70;;16769:41:8;;;;138:14752:70;;;1590:14:0;;;;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;138:14752:70;;16587:43:8;;;;138:14752:70;;;;16587:43:8;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;16587:43:8;138:14752:70;;;16424:32:8;;;;;3697:7:70;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;15938:460:8;16028:34;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;3775:1;138:14752;;;;1590:14:0;;;16314:19:8;;;138:14752:70;16314:19:8;;138:14752:70;16314:19:8;;27501:38:3;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;16314:19;;3697:7:70;16314:19:8;;;16170:185;16314:19;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;15938:460;138:14752:70;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;;;;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;;;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;12810:59;138:14752:70;;-1:-1:-1;;;12810:59:8;;3697:7:70;138:14752;12810:59:8;;138:14752:70;;;;;;27501:38:3;138:14752:70;;;;:::i;16314:19:8:-;;;;;;;;;;;;;:::i;:::-;;;;;138:14752:70;;;1590:14:0;;;;;;;;15698:126:8;13208:33;;:::i;:::-;;15698:126;;4006:113:70;;3697:7;4006:113;;;;;;;;;1590:14:0;4006:113:70;;;:::i;:::-;;;1590:14:0;;;;4122:2:70;1590:14:0;;4006:113:70;;;;;-1:-1:-1;4006:113:70;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;3792:347:70;3951:2;523:5:65;;3932:21:70;;;:::i;:::-;138:14752;3792:347;;3796:95;;;;3697:7;3796:95;;;;;;;;;1590:14:0;3796:95:70;;;:::i;:::-;;;1590:14:0;;;;;3796:95:70;;;;;;;-1:-1:-1;3796:95:70;;3697:23;;;;;;;;;;;;;;:::i;:::-;;;;;;138:14752;;1590:14:0;138:14752:70;;1590:14:0;;;;138:14752:70;;;;;;;;;;;;;;;;;;2563:16:5;138:14752:70;;;;;;;2563:16:5;138:14752:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;1590:14:0;138:14752:70;;-1:-1:-1;;;13644:37:70;;138:14752;;;13644:37;;;138:14752;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;13644:37;;;;;;13692:23;13644:37;;;;;138:14752;;13692:23;:::i;13644:37::-;;;;;;;;;;;;;:::i;138:14752::-;;;;;;;-1:-1:-1;;138:14752:70;;;;;;-1:-1:-1;;;1614:20:70;;1590:14:0;138:14752:70;1614:20;;1590:14:0;;;;;138:14752:70;-1:-1:-1;;;138:14752:70;;;1590:14:0;-1:-1:-1;138:14752:70;1614:20;138:14752;-1:-1:-1;;;;;;;;;;;1614:20:70;;;;;;;1590:14:0;1614:20:70;1590:14:0;1614:20:70;138:14752;1614:20;;;138:14752;;;;1590:14:0;;;;;;;1594:52:70;;138:14752;;1594:52;;1590:14:0;138:14752:70;1590:14:0;;;;:::i;:::-;1576:8:70;1590:14:0;;;138:14752:70;1594:52;;138:14752;-1:-1:-1;;;;;;;;;;;1594:52:70;;;;;;;;138:14752;;;;1666:18;;;;;;;-1:-1:-1;;;;;1666:18:70;;;;;;;;;;;;138:14752;1666:18;;;;;;138:14752;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;138:14752:70;;1590:14:0;138:14752:70;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;1801:42;1590:14:0;;1857:42:70;1590:14:0;1787:1354:70;;1590:14:0;1913:42:70;138:14752;1787:1354;;1590:14:0;1969:42:70;1787:1354;;;1590:14:0;2025:42:70;1787:1354;;;1590:14:0;2081:42:70;1787:1354;;;1590:14:0;2137:42:70;1787:1354;;;1590:14:0;2193:42:70;138:14752;1787:1354;;1590:14:0;2249:42:70;1787:1354;;;1590:14:0;2305:42:70;1787:1354;;;1590:14:0;2361:42:70;1787:1354;;;1590:14:0;2417:42:70;1787:1354;;;1590:14:0;2473:42:70;1787:1354;;;1590:14:0;2529:42:70;1787:1354;;;1590:14:0;2585:42:70;1787:1354;;;1590:14:0;2641:42:70;1787:1354;;;1590:14:0;2697:42:70;1787:1354;;;1590:14:0;2753:42:70;1787:1354;;;1590:14:0;2809:42:70;1787:1354;;;1590:14:0;2865:42:70;1787:1354;;;1590:14:0;2921:42:70;1787:1354;;;1590:14:0;2977:42:70;1787:1354;;;1590:14:0;3033:42:70;1787:1354;;;1590:14:0;3089:42:70;1787:1354;;;1590:14:0;1756:1385:70;138:14752;1787:1354;1756:1385;1590:14:0;;1787:1354:70;1590:14:0;;;138:14752:70;1590:14:0;1756:1385:70;138:14752;;;1590:14:0;1787:1354:70;1590:14:0;;;;;;138:14752:70;;-1:-1:-1;;;;;138:14752:70;-1:-1:-1;;;;;;;;;;;3152:42:70;;;;138:14752;;1590:14:0;;;;3152:42:70;;138:14752;3152:42;;138:14752;;1590:14:0;;;;;138:14752:70;1590:14:0;;138:14752:70;-1:-1:-1;;;1614:20:70;138:14752;;1590:14:0;138:14752:70;3152:42;;;;-1:-1:-1;;;;;;;;;;;3152:42:70;;;;;;;;1590:14:0;3204:22:70;-1:-1:-1;;;;;;;;;;;3204:22:70;;;;138:14752;;;1590:14:0;;;3204:22:70;;-1:-1:-1;;;;;;;;;;;138:14752:70;3204:22;;138:14752;;1590:14:0;313:42:70;;;138:14752;;313:42;;138:14752;-1:-1:-1;;;1614:20:70;138:14752;;313:42;3204:22;;3152:42;3204:22;;-1:-1:-1;;;;;;;;;;;3204:22:70;;;;;;;;1590:14:0;3236:22:70;;-1:-1:-1;;;;;;;;;;;3236:22:70;;;;138:14752;;;1590:14:0;;;3236:22:70;;385:42;138:14752;3236:22;;138:14752;;1590:14:0;385:42:70;;;138:14752;;385:42;;138:14752;-1:-1:-1;;;1614:20:70;138:14752;;385:42;3236:22;;3152:42;3236:22;;-1:-1:-1;;;;;;;;;;;3236:22:70;;;;;;;;1590:14:0;3268:36:70;;-1:-1:-1;;;;;;;;;;;3268:36:70;;;;138:14752;;;1590:14:0;;;3268:36:70;;968:42;138:14752;3268:36;;138:14752;;1590:14:0;968:42:70;;;;138:14752;968:42;;138:14752;-1:-1:-1;;;1614:20:70;138:14752;;968:42;3268:36;;3152:42;3268:36;;-1:-1:-1;;;;;;;;;;;3268:36:70;;;;;;;;1590:14:0;3314:22:70;;-1:-1:-1;;;;;;;;;;;3314:22:70;;;;138:14752;;;1590:14:0;;;3314:22:70;;-1:-1:-1;;;;;;;;;;;138:14752:70;3314:22;;138:14752;;1590:14:0;457:42:70;;;138:14752;;457:42;;138:14752;-1:-1:-1;;;1614:20:70;138:14752;;457:42;3314:22;;3152:42;3314:22;;-1:-1:-1;;;;;;;;;;;3314:22:70;;;;;;;;1590:14:0;3346:36:70;;-1:-1:-1;;;;;;;;;;;3346:36:70;;;;138:14752;;;1590:14:0;;;3346:36:70;;1047:42;138:14752;3346:36;;138:14752;;1590:14:0;1047:42:70;;;968;138:14752;1047:42;;138:14752;-1:-1:-1;;;1614:20:70;138:14752;;1047:42;3346:36;;3152:42;3346:36;;-1:-1:-1;;;;;;;;;;;3346:36:70;;;;;;;;138:14752;;3346:36;;;;;:::i;:::-;138:14752;;3346:36;138:14752;3314:22;;;;;:::i;:::-;138:14752;;3314:22;;;;3268:36;;;;;:::i;:::-;138:14752;;3268:36;;;;3236:22;;;;;:::i;:::-;138:14752;;3236:22;;;;3204;;;;;:::i;:::-;138:14752;;3204:22;;;;3152:42;;;;138:14752;3152:42;;:::i;:::-;138:14752;3152:42;;;;138:14752;;1590:14:0;138:14752:70;1590:14:0;;;;;;;;-1:-1:-1;;;;;138:14752:70;;1590:14:0;;;;;;;;;;;;;138:14752:70;1590:14:0;;;;;;;;;;;;138:14752:70;1590:14:0;;;;;;138:14752:70;;;;;;;;;1590:14:0;138:14752:70;;1594:52;1590:14:0;1594:52:70;;1590:14:0;1594:52:70;;;;;;1590:14:0;1594:52:70;;;:::i;:::-;;;1590:14:0;;;;;1594:52:70;;;;;-1:-1:-1;1594:52:70;;1614:20;;;;;;138:14752;1614:20;;;;;;:::i;:::-;;;;138:14752;;;;;;-1:-1:-1;;138:14752:70;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;-1:-1:-1;;138:14752:70;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1666:18;138:14752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;3500:28;138:14752;;;;;;3500:28;-1:-1:-1;138:14752:70;;-1:-1:-1;138:14752:70;;;-1:-1:-1;138:14752:70;:::o;:::-;;;;;;;;;;;;;7505:10:8;138:14752:70;;;;;;7505:10:8;-1:-1:-1;138:14752:70;;-1:-1:-1;138:14752:70;;;-1:-1:-1;138:14752:70;:::o;:::-;534:59:65;138:14752:70;;;;;;534:59:65;-1:-1:-1;138:14752:70;;-1:-1:-1;138:14752:70;;;-1:-1:-1;138:14752:70;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;138:14752:70;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;;;;:::o;523:5:65:-;;;;;;;;;;;;;;;;:::o;:::-;138:14752:70;;;523:5:65;;;;;;;;;;;;;;;:::o;:::-;138:14752:70;;;523:5:65;;;;;;;;8534:180;138:14752:70;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;138:14752:70;8655:52:65;;:::i;:::-;8534:180;:::o;1590:14:0:-;-1:-1:-1;;;;;1590:14:0;;;;138:14752:70;;-1:-1:-1;;138:14752:70;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;138:14752:70;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;138:14752:70;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;138:14752:70:-;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;3775:1;138:14752;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;1590:14:0;;;138:14752:70;;;1590:14:0;138:14752:70;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;1590:14:0;;138:14752:70;;;;;1590:14:0;138:14752:70;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;138:14752:70;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;-1:-1:-1;;;;;;;;;;;138:14752:70;;;;-1:-1:-1;138:14752:70;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;138:14752:70;;;;;;;;;;;;;;;;;;;;:::o;1293:42::-;;;;;;;;;;:::o;1243:204:1:-;1302:7;138:14752:70;;;;;;;1325:14:1;:::o;1298:143::-;138:14752:70;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;138:14752:70;192:59:1;;;;;;138:14752:70;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;138:14752:70;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;2270:110;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;138:14752:70;;1590:14:0;;;;2349:24:1;;;;;138:14752:70;13713:1;138:14752;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;:::-;2270:110::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;138:14752:70;;1590:14:0;;;;2349:24:1;;;;;138:14752:70;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;13112:::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;138:14752:70;;1590:14:0;;;;13191:24:1;;;;;138:14752:70;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;26720:91:3:-;-1:-1:-1;;;;;;;;;;;26787:17:3;;;;138:14752:70;;-1:-1:-1;;;26787:17:3;;-1:-1:-1;;;;;138:14752:70;;;;26787:17:3;;;138:14752:70;;;;;;;;-1:-1:-1;138:14752:70;;;-1:-1:-1;;;;;;;;;;;;26787:17:3;;;;;;;;26720:91;:::o;1421:3:70:-;138:14752;;;;;;:::i;:::-;1421:3;-1:-1:-1;1421:3:70;;-1:-1:-1;1421:3:70;;;;138:14752;;;;;;;:::i;:::-;-1:-1:-1;1421:3:70;;-1:-1:-1;1421:3:70;;;;;;:::o;:::-;138:14752;;;;;;;;;:::i;:::-;1421:3;138:14752;;;-1:-1:-1;;1421:3:70;138:14752;-1:-1:-1;1421:3:70;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;15480:110:1;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;138:14752:70;;1590:14:0;;;;15559:24:1;;;;;138:14752:70;13923:1;138:14752;;;;-1:-1:-1;15559:24:1;;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;;;;;15480:110;:::o;:::-;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;138:14752:70;;1590:14:0;;;;15559:24:1;;;;;138:14752:70;;;;;-1:-1:-1;15559:24:1;;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;;;;;15480:110;:::o;14296:::-;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;138:14752:70;;1590:14:0;;;;14375:24:1;;;;;138:14752:70;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;8720:323:65:-;138:14752:70;8906:3:65;138:14752:70;;8881:23:65;;;;;8929:15;;;;:::i;:::-;138:14752:70;;;;;;;;8929:29:65;8925:79;;138:14752:70;;8866:13:65;;8925:79;8978:11;;138:14752:70;8978:11:65;:::o;138:14752:70:-;;;;;;;;;;;;8881:23:65;;;138:14752:70;8720:323:65;:::o;:::-;138:14752:70;8906:3:65;138:14752:70;;8881:23:65;;;;;8929:15;;;;:::i;:::-;138:14752:70;;;;;;;2531:24:65;8929:29;8925:79;;138:14752:70;;8866:13:65;;8720:323;138:14752:70;8906:3:65;138:14752:70;;8881:23:65;;;;;8929:15;;;;:::i;:::-;138:14752:70;;;;;;;6005:21:65;8929:29;8925:79;;138:14752:70;;8866:13:65;;5926:434:58;138:14752:70;;6065:47:58;;;;1590:14:0;;;;6065:47:58;;1666:18:70;138:14752;;;;;6065:47:58;;;;;138:14752:70;1590:14:0;;138:14752:70;;;;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;138:14752:70;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;138:14752:70;-1:-1:-1;6065:47:58;138:14752:70;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;138:14752:70;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;138:14752:70;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1666:18;138:14752;;;;;;;;;1666:18;138:14752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;138:14752:70;;:::i;:::-;;;;-1:-1:-1;;;138:14752:70;;;;;;;;;:::o;1911:4479:65:-;;;;;;138:14752:70;;-1:-1:-1;;;2117:44:65;;;;;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;1911:4479:65;;;;;2117:44;138:14752:70;;;;;2117:44:65;;;;;138:14752:70;2117:44:65;-1:-1:-1;;;;;138:14752:70;;2117:44:65;;;;;;:47;:44;;;;;:47;;:::i;:::-;138:14752:70;;;-1:-1:-1;138:14752:70;1590:14:0;;;138:14752:70;;2174:61:65;;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;2174:61:65;;;:::i;:::-;1590:14:0;;138:14752:70;2117:44:65;138:14752:70;;44640:78:15;138:14752:70;;;1590:14:0;;138:14752:70;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;138:14752:70;44640:78:15;;;138:14752:70;;;;;;:::i;:::-;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;138:14752:70;;1222:159:15;;591:42;1222:159;;-1:-1:-1;138:14752:70;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;2117:44:65;138:14752:70;;;;;2467:50:65;138:14752:70;;-1:-1:-1;;;;;138:14752:70;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;138:14752:70;;;;;;;;:::i;:::-;2117:44:65;138:14752:70;;;;1590:14:0;138:14752:70;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;138:14752:70;8433:4:65;523:5;;;8412:25;;;:::i;:::-;138:14752:70;;;8468:1:65;138:14752:70;;;;1590:14:0;;138:14752:70;;523:5:65;;8420:1;523:5;138:14752:70;;;;8487:1:65;138:14752:70;;;;;;;;;;;;-1:-1:-1;;;2822:49:65;;138:14752:70;2117:44:65;138:14752:70;;2822:49:65;138:14752:70;2822:49:65;;;2117:44;2822:49;;;:::i;:::-;;138:14752:70;;-1:-1:-1;;;;;138:14752:70;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;138:14752:70;;-1:-1:-1;;138:14752:70;;;1590:14:0;138:14752:70;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;138:14752:70;;;1590:14:0;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;138:14752:70;;-1:-1:-1;;138:14752:70;;;;;;;;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;1590:14:0;;138:14752:70;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;138:14752:70;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;138:14752:70;;12247:66:15;;;;;;:::i;:::-;1222:159;138:14752:70;;1222:159:15;;591:42;1222:159;;-1:-1:-1;1590:14:0;;138:14752:70;;3251:53:65;;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;138:14752:70;;;1590:14:0;;;138:14752:70;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;138:14752:70;;;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;138:14752:70;;;;3514:49:65;138:14752:70;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;138:14752:70;;;3514:49:65;:::i;:::-;1421:3:70;;:::i;:::-;-1:-1:-1;138:14752:70;;-1:-1:-1;;138:14752:70;;;;;;;3635:27:65;;;;:::i;:::-;138:14752:70;;523:5:65;;;;;;;;2117:44;138:14752:70;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;138:14752:70;44640:78:15;27501:38:3;;;138:14752:70;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;138:14752:70;;1590:14:0;;;27524:10:3;138:14752:70;;7009:9:8;138:14752:70;;;7009:9:8;138:14752:70;7505:10:8;138:14752:70;-1:-1:-1;;;138:14752:70;;;;;;;8420:1:65;1590:14:0;138:14752:70;;7505:10:8;138:14752:70;;:::i;1590:14:0:-;;;6854:12:8;138:14752:70;-1:-1:-1;;;;;138:14752:70;;;7009:9:8;138:14752:70;15610:11:8;138:14752:70;;1590:14:0;;15653:34:8;;:::i;:::-;15703:15;;-1:-1:-1;;;;;138:14752:70;;;;;27635:8:3;138:14752:70;;;;;15703:15:8;;138:14752:70;;;;;;2117:44:65;138:14752:70;1590:14:0;138:14752:70;;;2117:44:65;138:14752:70;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;138:14752:70;15725:48:8;;2117:44:65;138:14752:70;1590:14:0;138:14752:70;;8487:1:65;138:14752:70;;2117:44:65;138:14752:70;15703:77:8;138:14752:70;;15702:78:8;15698:126;;8365:37:65;15857:15:8;;-1:-1:-1;;;;;138:14752:70;;;;;27635:8:3;138:14752:70;;;;;;2117:44:65;138:14752:70;1590:14:0;138:14752:70;15889:37:8;;138:14752:70;;2117:44:65;138:14752:70;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;138:14752:70;15879:48:8;;2117:44:65;138:14752:70;1590:14:0;138:14752:70;;;2117:44:65;138:14752:70;8420:1:65;15943:15:8;;138:14752:70;15961:16:8;8468:1:65;15961:16:8;;138:14752:70;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;138:14752:70;;;;;-1:-1:-1;;;16424:32:8;;;;-1:-1:-1;;;;;138:14752:70;2117:44:65;16424:32:8;;138:14752:70;;;;;;;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;138:14752:70;;;-1:-1:-1;;;16587:43:8;;;;-1:-1:-1;;;;;138:14752:70;2117:44:65;16587:43:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;;523:5:65;;1590:14:0;;;12656:92:8;12810:59;;;138:14752:70;-1:-1:-1;138:14752:70;12810:59:8;138:14752:70;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;16678:31:8;;;:::i;:::-;16724:8;;138:14752:70;;;16724:29:8;;8365:37:65;16720:176:8;;;;14785:4;;;;:::i;:::-;138:14752:70;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;8365:37;-1:-1:-1;8420:1:65;3761:3;138:14752:70;;3741:18:65;;;;;1222:159:15;3878:14:65;138:14752:70;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;138:14752:70;;;;;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;138:14752:70;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;138:14752:70;;;;;;;:::i;:::-;;;;;;12952:65:15;138:14752:70;;12952:65:15;;;;;;:::i;:::-;1222:159;138:14752:70;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;138:14752:70;12771:66:15;4051:10:65;;;;;:::i;:::-;138:14752:70;;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;138:14752:70;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;138:14752:70;;1222:159:15;;591:42;1222:159;;;4166:10:65;138:14752:70;4166:10:65;;4093:97;4166:10;;;;:::i;:::-;138:14752:70;;;;-1:-1:-1;;;4093:97:65;;138:14752:70;;;;;2117:44:65;4093:97;;;:::i;:::-;;2117:44;;;1666:18:70;138:14752;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;138:14752:70;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;138:14752:70;523:5:65;;4244:52;:::i;:::-;138:14752:70;;;4349:11:65;;4335:26;:::i;:::-;138:14752:70;4375:60:65;138:14752:70;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;4375:60:65;:::i;:::-;4449;138:14752:70;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;4449:60:65;:::i;:::-;4523:61;138:14752:70;;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;4523:61:65;:::i;:::-;4599:1176;;;;;1590:14:0;;138:14752:70;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;138:14752:70;-1:-1:-1;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;4637:164:65;;:::i;:::-;1590:14:0;;138:14752:70;;;;1590:14:0;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;138:14752:70;;;;1590:14:0;138:14752:70;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;5013:164:65;;:::i;:::-;138:14752:70;;;1590:14:0;;;;5789:25:65;;138:14752:70;;2117:44:65;5789:25;;138:14752:70;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;138:14752:70;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;138:14752:70;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;138:14752:70;5216:173:65;5597:163;138:14752:70;;;:::i;:::-;5216:173:65;;;:::i;:::-;138:14752:70;;:::i;:::-;5407:172:65;;;:::i;:::-;138:14752:70;;;1590:14:0;138:14752:70;1590:14:0;;138:14752:70;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;138:14752:70;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;138:14752:70;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;138:14752:70;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;138:14752:70;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;2117:44:65;;138:14752:70;523:5:65;;;;;138:14752:70;2117:44:65;;138:14752:70;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;138:14752:70;;;;;1590:14:0;;138:14752:70;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;6590:122:65;:::i;:::-;138:14752:70;;;;;;;;;;:::i;:::-;8420:1:65;138:14752:70;;;;-1:-1:-1;;138:14752:70;;1590:14:0;138:14752:70;;;6783:37:65;;;:::i;:::-;138:14752:70;;;;-1:-1:-1;;;6835:57:65;;2117:44;;138:14752:70;;6835:57:65;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;1666:18:70;138:14752;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;138:14752:70;6831:346:65;7259:18;:::i;:::-;138:14752:70;;7190:97:65;138:14752:70;;;1590:14:0;;;;;;;;;;7190:97:65;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;138:14752:70;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;138:14752:70;;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;138:14752:70;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;138:14752:70;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;138:14752:70;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;138:14752:70;;44640:78:15;138:14752:70;;;;;;;;-1:-1:-1;;;138:14752:70;;;;;;7302:61:65;7190:97;;;138:14752:70;7190:97:65;138:14752:70;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;1590:14:0;;138:14752:70;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;138:14752:70;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;138:14752:70;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;138:14752:70;;44640:78:15;138:14752:70;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;;;:::i;:::-;;;6047:287;1590:14:0;;138:14752:70;;;7738:117:65;;138:14752:70;;;;;;;:::i;:::-;;;;;1590:14:0;138:14752:70;;;-1:-1:-1;;;138:14752:70;;;;;7738:117:65;:::i;:::-;138:14752:70;;;;;;;;;;:::i;:::-;8420:1:65;138:14752:70;;;;-1:-1:-1;;138:14752:70;;1590:14:0;138:14752:70;;;7926:37:65;;;:::i;:::-;138:14752:70;;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;1666:18:70;138:14752;;;;;;7974:57:65;;;;;;;138:14752:70;;8110:18:65;;7974:57;;8110:18;;:::i;:::-;138:14752:70;;8041:97:65;138:14752:70;;;1590:14:0;;;;;;;;;;8041:97:65;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;138:14752:70;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;138:14752:70;8041:97:65;138:14752:70;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;138:14752:70;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;138:14752:70;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;16769:41:8;;-1:-1:-1;;;;;138:14752:70;2117:44:65;16769:41:8;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;138:14752:70;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;138:14752:70;44640:78:15;12810:59:8;;138:14752:70;12810:59:8;138:14752:70;;;12810:59:8;-1:-1:-1;;;138:14752:70;12810:59:8;;;138:14752:70;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;138:14752:70;;;;16769:41:8;;;138:14752:70;2117:44:65;;;138:14752:70;16724:29:8;138:14752:70;523:5:65;16736:17:8;;;-1:-1:-1;16724:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;138:14752:70;;16587:43:8;;;;138:14752:70;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;138:14752:70;16021:3:8;138:14752:70;;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;138:14752:70;;2117:44:65;16314:19:8;;138:14752:70;-1:-1:-1;138:14752:70;44640:78:15;138:14752:70;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;138:14752:70;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;138:14752:70;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;;;138:14752:70;;;2117:44:65;138:14752:70;;;;16170:185:8;;138:14752:70;;16170:185:8;;;;;;:::i;:::-;138:14752:70;523:5:65;138:14752:70;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;138:14752:70;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;138:14752:70;;;;;;44640:78:15;138:14752:70;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;138:14752:70:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;138:14752:70;;;;:::o;:::-;;;:::o;426:547:59:-;688:35;426:547;637:17;619:35;138:14752:70;;637:17:59;;;138:14752:70;619:35:59;;:::i;:::-;138:14752:70;;706:17:59;;138:14752:70;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;138:14752:70;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;1590:14:0;957:9:59:o;2866:108:1:-;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;138:14752:70;;1590:14:0;;;;2943:24:1;;;;;138:14752:70;;;;;;-1:-1:-1;2943:24:1;;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;2866:108;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;138:14752:70;;;;2626:1:33;;;;3256:31;;2626:1;138:14752:70;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;138:14752:70;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;138:14752:70;;;6764:749:58:o;138:14752:70:-;;;-1:-1:-1;;;138:14752:70;;3256:31:33;138:14752:70;;;;;;;;;;;;;;-1:-1:-1;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;138:14752:70;;2117:44:65;138:14752:70;;;1590:14:0;;;;;;;;13326:29:1;;;;;138:14752:70;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;138:14752:70;13326:29:1;138:14752:70;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;138:14752:70;6669:42:15;6598:121;;138:14752:70;;6669:42:15;;;;;;;;;;;;;;138:14752:70;;;;;;:::i;6669:42:15:-;1222:159;138:14752:70;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;1590:14:0;7629:54:15;1222:159;7546:145;;;;138:14752:70;;7629:54:15;;;;;;;;;;138:14752:70;7629:54:15;;;1590:14:0;;;;;;:::i;:::-;;;;;138:14752:70;7629:54:15;138:14752:70;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;138:14752:70;15694:29:1;138:14752:70;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;138:14752:70:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;-1:-1:-1;;138:14752:70;;;;;;;;;-1:-1:-1;138:14752:70;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;138:14752:70;7935:53:15;1222:159;7846:150;;138:14752:70;7846:150:15;;138:14752:70;;7935:53:15;;;;;;;;;;138:14752:70;7935:53:15;;;138:14752:70;;;;;;:::i;:::-;;;;-1:-1:-1;;138:14752:70;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;138:14752:70;1052:14:8;138:14752:70;;:::i;:::-;1052:14:8;;138:14752:70;;;;;;1109:10:8;138:14752:70;;;;;;1109:10:8;1077:1;138:14752:70;;1077:1:8;138:14752:70;;1077:1:8;138:14752:70;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;138:14752:70;523:5:65;;;;;;;138:14752:70;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;138:14752:70;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;138:14752:70;;11456:84:8;523:5:65;11456:84:8;;;;;138:14752:70;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;138:14752:70:-;;;;;1109:10:8;138:14752:70;;;;;;-1:-1:-1;138:14752:70;;;;;;;;1048:135:8;138:14752:70;;;;;;1052:14:8;138:14752:70;:::i;953:236:8:-;1052:14;;;138:14752:70;;;;;:::i;:::-;1052:21:8;;1109:10;;;;138:14752:70;;;;;;;;;;;;;;;1077:1:8;138:14752:70;;1077:1:8;138:14752:70;;1077:1:8;138:14752:70;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;138:14752:70;523:5:65;;;;;;;138:14752:70;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;138:14752:70;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;138:14752:70;;11456:84:8;523:5:65;11456:84:8;;;;;138:14752:70;11331:13:8;;138:14752:70;;;;;1109:10:8;138:14752:70;;;;;;-1:-1:-1;138:14752:70;;;;;;;;1048:135:8;138:14752:70;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;138:14752:70;1364:48:8;1381:9;138:14752:70;1590:14:0;;1364:48:8;138:14752:70;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;138:14752:70;;1364:48:8;;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;138:14752:70;;1364:48:8;;;;;;:::i;:::-;1458:12;138:14752:70;1458:29:8;;;-1:-1:-1;;;;;138:14752:70;1458:29:8;;;;;:::i;:::-;1540:11;138:14752:70;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;138:14752:70;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;138:14752:70;;;;;;;;;1364:48:8;138:14752:70;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;138:14752:70;523:5:65;;11142:1:8;523:5:65;;;;;;;;138:14752:70;;;11097:47:8;11078:3;138:14752:70;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;138:14752:70;1590:14:0;;1364:48:8;138:14752:70;1392:19:8;;;:::i;1364:48::-;138:14752:70;1458:12:8;;138:14752:70;1458:29:8;;;-1:-1:-1;;;;;138:14752:70;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;138:14752:70;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;138:14752:70;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;138:14752:70;;;;;;;;;1364:48:8;138:14752:70;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;138:14752:70;523:5:65;;11142:1:8;523:5:65;;;;;;;;138:14752:70;;;11097:47:8;11078:3;138:14752:70;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;138:14752:70;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;138:14752:70;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;138:14752:70;;;;4917:24:33;138:14752:70;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;643:59:8;;;;;;;;;;;;;;;:::i;:::-;138:14752:70;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;138:14752:70;4397:9:8;138:14752:70;4438:11:8;138:14752:70;-1:-1:-1;;;;;138:14752:70;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;138:14752:70;;;27635:8:3;138:14752:70;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;138:14752:70;4573:48:8;;138:14752:70;;;;;4438:11:8;138:14752:70;;;4551:77:8;138:14752:70;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;138:14752:70;;-1:-1:-1;;;4811:11:8;;138:14752:70;;4361:12:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;138:14752:70;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;138:14752:70;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;138:14752:70;;4951:12:8;;4984:74;138:14752:70;;12810:59:8;;;4984:74;;138:14752:70;4361:12:8;4984:74;;643:59;138:14752:70;4911:25:8;643:59;;138:14752:70;643:59:8;138:14752:70;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;138:14752:70;;5109:16:8;;;;;5178:8;138:14752:70;5178:8:8;;5165:22;5178:8;;:::i;:::-;138:14752:70;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;138:14752:70;;4361:12:8;5165:22;;138:14752:70;;;;;;;;;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;138:14752:70;4361:12:8;138:14752:70;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;138:14752:70;;;4361:12:8;1978:27;;138:14752:70;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;1590:14:0;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;138:14752:70;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;138:14752:70;;;;4361:12:8;2177:37;;138:14752:70;12810:59:8;;;138:14752:70;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;138:14752:70;;;;-1:-1:-1;;;;;;138:14752:70;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;138:14752:70;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;138:14752:70;;;;4361:12:8;2281:43;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;138:14752:70;;5520:25:8;138:14752:70;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;138:14752:70;;5998:29:8;;5994:84;;138:14752:70;;6319:8:8;138:14752:70;6101:89:8;643:59;138:14752:70;;6132:37:8;;138:14752:70;;;6132:37:8;;;138:14752:70;6132:37:8;;;;;:::i;:::-;138:14752:70;6122:48:8;;6180:8;;;;:::i;:::-;138:14752:70;;;;;;;643:59:8;138:14752:70;643:59:8;;138:14752:70;;643:59:8;;138:14752:70;643:59:8;;;138:14752:70;6101:89:8;6319:8;:::i;:::-;138:14752:70;;;;;643:59:8;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;;;;;4438:11:8;138:14752:70;;;;;;6302:58:8;;138:14752:70;;;;6302:58:8;;138:14752:70;;;643:59:8;6302:58;;643:59;138:14752:70;643:59:8;;138:14752:70;;;27635:8:3;138:14752:70;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;138:14752:70;6230:48:8;;138:14752:70;;;;;;;;;643:59:8;;138:14752:70;;643:59:8;;;138:14752:70;4397:9:8;643:59;;;;;;138:14752:70;;;;;643:59:8;;;;;;;;5089:1309;138:14752:70;;;27635:8:3;138:14752:70;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;138:14752:70;6461:48:8;;138:14752:70;;;;;4438:11:8;138:14752:70;;;6439:77:8;138:14752:70;;643:59:8;;;138:14752:70;6664:15:8;138:14752:70;;27635:8:3;138:14752:70;;;;;;;;;;6696:37:8;;138:14752:70;;;;;;6696:37:8;;;138:14752:70;6696:37:8;;;;;:::i;:::-;138:14752:70;6686:48:8;;138:14752:70;;;;;4249:2493:8;:::o;643:59::-;138:14752:70;;-1:-1:-1;;;643:59:8;;138:14752:70;4361:12:8;643:59;;;;4911:25;643:59;;138:14752:70;643:59:8;138:14752:70;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;138:14752:70;6051:8:8;5094:13;138:14752:70;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;138:14752:70;4361:12:8;138:14752:70;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;138:14752:70;;;4361:12:8;3216:27;;138:14752:70;;;;;;;;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;138:14752:70;;;;;;-1:-1:-1;;;;;138:14752:70;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;138:14752:70;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;138:14752:70;;;;4361:12:8;3497:43;;138:14752:70;12810:59:8;;;138:14752:70;;;;12810:59:8;;;138:14752:70;;;;;;12810:59:8;138:14752:70;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;138:14752:70;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;138:14752:70;;3497:43:8;;;;138:14752:70;;;;3497:43:8;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;3497:43:8;138:14752:70;;;3216:27:8;;;;138:14752:70;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;138:14752:70;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;138:14752:70;;2281:43:8;;;;;138:14752:70;;1590:14:0;138:14752:70;;1590:14:0;;;;2281:43:8;138:14752:70;;;2177:37:8;;;;;:::i;:::-;138:14752:70;;2177:37:8;;;;2102:65;;;;;1978:27;;;138:14752:70;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;5205:114;5256:44;;5290:8;;;;:::i;:::-;138:14752:70;;;;-1:-1:-1;;;;;138:14752:70;;;;;;;;;;;;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;138:14752:70;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;5109:16;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;138:14752:70;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;138:14752:70;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;138:14752:70;;;4811:11:8;;;;;138:14752:70;4811:11:8;;:::i;:::-;138:14752:70;4811:11:8;;;;4547:255;4720:15;;;;;138:14752:70;;27635:8:3;138:14752:70;;;;;;;;;;4752:37:8;;138:14752:70;;;;;;4752:37:8;;;138:14752:70;4752:37:8;;;;;:::i;:::-;138:14752:70;4742:48:8;;138:14752:70;;;;;;;4713:78:8;:::o;11586:239::-;-1:-1:-1;;;;;1590:14:0;;11652:12:8;138:14752:70;1590:14:0;11652:12:8;138:14752:70;;;11681:9:8;138:14752:70;;11681:9:8;138:14752:70;11707:10:8;138:14752:70;11645:19:8;11707:10;138:14752:70;;;;11586:239:8;1590:14:0;11645:19:8;11734:11;1590:14:0;138:14752:70;;11762:25:8;138:14752:70;;11762:25:8;138:14752:70;;11804:14:8;138:14752:70;;:::i;:::-;;;;11586:239:8;:::o;138:14752:70:-;;;;;;;;;11645:19:8;11804:14;138:14752:70;11586:239:8:o;138:14752:70:-;11804:14:8;11645:19;138:14752:70;;;;;;;;1590:14:0;;;;;;138:14752:70;;11804:14:8;11645:19;138:14752:70;11645:19:8;138:14752:70;;;;11804:14:8;138:14752:70;;2270:110:1:o;1590:14:0:-;;;;;;;;138:14752:70;11707:10:8;11645:19;138:14752:70;;;;;;;;;;;;;;;;11645:19:8;1590:14:0;;11707:10:8;138:14752:70;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;138:14752:70;2771:3:8;138:14752:70;2771:3:8;138:14752:70;;;;2824:12:8;;;138:14752:70;;1590:14:0;;;;-1:-1:-1;;;;;138:14752:70;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;138:14752:70;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;138:14752:70;;;;2824:12:8;2815:49;;138:14752:70;12810:59:8;;;138:14752:70;;;12810:59:8;;;138:14752:70;;;;-1:-1:-1;138:14752:70;12810:59:8;138:14752:70;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;138:14752:70;;2678:18:8;;2941:90;2995:21;;;138:14752:70;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;138:14752:70;;1590:14:0;;;-1:-1:-1;;;;;138:14752:70;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;138:14752:70;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;138:14752:70;;;;2824:12:8;2815:49;;138:14752:70;12810:59:8;;;138:14752:70;;;12810:59:8;;;138:14752:70;;;;-1:-1:-1;138:14752:70;12810:59:8;138:14752:70;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;138:14752:70;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesCurveSwap(bytes32,address,address)":"1b928113","testGetLimitsCurveCryptoSwap()":"3584c58c","testGetLimitsCurveStableSwap()":"59f2cba1","testGetTokensCurveCryptoSwap()":"d4bdd179","testGetTokensCurveStableSwap()":"ad74a869","testSwapFuzzCurveCryptoSwap(uint256)":"91e2f3bf","testSwapFuzzCurveCryptoSwapUsingEth(uint256)":"642b929d","testSwapFuzzCurveStEthPool(uint256,bool)":"99dd5ff8","testSwapFuzzCurveStablePoolEthWithEth(uint256)":"2b23bee7","testSwapFuzzCurveStablePoolEthWithToken(uint256)":"444bb9ce","testSwapFuzzCurveStableSwap(uint256)":"27e10f5b","testSwapSellIncreasingSwapsCurve()":"3dbde0cc","testSwapsForAdditionalPools()":"21ce99d1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pair\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilitiesCurveSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsCurveCryptoSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsCurveStableSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensCurveCryptoSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensCurveStableSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzzCurveCryptoSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzzCurveCryptoSwapUsingEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"invertedSides\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzCurveStEthPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzzCurveStablePoolEthWithEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzzCurveStablePoolEthWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzzCurveStableSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasingSwapsCurve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapsForAdditionalPools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/CurveAdapter.t.sol\":\"CurveAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/CurveAdapter.t.sol\":{\"keccak256\":\"0x63aaa434cf4995c0813d74643ae00eb1d9dbbd1a38d501f6bfe406f491803464\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f7ed46eb61adabd20a491d72d2d465e176a82a2264398f79088a877ba3b652b\",\"dweb:/ipfs/QmRi5CN1J1rdbcgat7xg1bo2T2y64b6hSoh7y6ApCz8DTk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"pair","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesCurveSwap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsCurveCryptoSwap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsCurveStableSwap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensCurveCryptoSwap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensCurveStableSwap"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveCryptoSwap"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveCryptoSwapUsingEth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"invertedSides","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveStEthPool"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveStablePoolEthWithEth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveStablePoolEthWithToken"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzCurveStableSwap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasingSwapsCurve"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapsForAdditionalPools"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/CurveAdapter.t.sol":"CurveAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/CurveAdapter.t.sol":{"keccak256":"0x63aaa434cf4995c0813d74643ae00eb1d9dbbd1a38d501f6bfe406f491803464","urls":["bzz-raw://1f7ed46eb61adabd20a491d72d2d465e176a82a2264398f79088a877ba3b652b","dweb:/ipfs/QmRi5CN1J1rdbcgat7xg1bo2T2y64b6hSoh7y6ApCz8DTk"],"license":"AGPL-3.0-or-later"}},"version":1},"id":70} \ No newline at end of file diff --git a/evm/out/CurveAdapter.t.sol/IwstETH.json b/evm/out/CurveAdapter.t.sol/IwstETH.json deleted file mode 100644 index b81b61d..0000000 --- a/evm/out/CurveAdapter.t.sol/IwstETH.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStETHByWstETH","inputs":[{"name":"_wstETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unwrap","inputs":[{"name":"_wstETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getStETHByWstETH(uint256)":"bb2952fc","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","unwrap(uint256)":"de0e9a3e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_wstETHAmount\",\"type\":\"uint256\"}],\"name\":\"getStETHByWstETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_wstETHAmount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/CurveAdapter.t.sol\":\"IwstETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/curve/CurveAdapter.sol\":{\"keccak256\":\"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913\",\"dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/CurveAdapter.t.sol\":{\"keccak256\":\"0x63aaa434cf4995c0813d74643ae00eb1d9dbbd1a38d501f6bfe406f491803464\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f7ed46eb61adabd20a491d72d2d465e176a82a2264398f79088a877ba3b652b\",\"dweb:/ipfs/QmRi5CN1J1rdbcgat7xg1bo2T2y64b6hSoh7y6ApCz8DTk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_wstETHAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStETHByWstETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_wstETHAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/CurveAdapter.t.sol":"IwstETH"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/curve/CurveAdapter.sol":{"keccak256":"0x7b4cb321e3b307b8a0b538c098b31f0db01145f10f70377f90180fe0d400262f","urls":["bzz-raw://925c32c4b0bd6620d2d9a0710c172a4a38a4a7862c8fc42c0676c0b999d4d913","dweb:/ipfs/QmU23Jr4iVTH4mECJYxLbL3zX484T7J4t4aMRFvtochBmi"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/CurveAdapter.t.sol":{"keccak256":"0x63aaa434cf4995c0813d74643ae00eb1d9dbbd1a38d501f6bfe406f491803464","urls":["bzz-raw://1f7ed46eb61adabd20a491d72d2d465e176a82a2264398f79088a877ba3b652b","dweb:/ipfs/QmRi5CN1J1rdbcgat7xg1bo2T2y64b6hSoh7y6ApCz8DTk"],"license":"AGPL-3.0-or-later"}},"version":1},"id":70} \ No newline at end of file diff --git a/evm/out/CustomBytesAppend.sol/CustomBytesAppend.json b/evm/out/CustomBytesAppend.sol/CustomBytesAppend.json deleted file mode 100644 index 968a51d..0000000 --- a/evm/out/CustomBytesAppend.sol/CustomBytesAppend.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"extractAddress","inputs":[{"name":"input","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"extractedAddress","type":"address","internalType":"address"}],"stateMutability":"pure"}],"bytecode":{"object":"0x60808060405234601957610464908161001e823930815050f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63637083f914610024575f80fd5b60203660031901126101095760043560a05260206080526100456040610121565b610056610050610187565b516102ff565b60208151910120610065610187565b60208151910120145f146100ad576100a961008f61008a610084610187565b5161038c565b6103e0565b6040516001600160a01b0390911681529081906020820190565b0390f35b6100b56101c1565b156100cd576100a96100c861008a610344565b61008f565b60405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081a5b9c1d5d08199bdc9b585d60621b6044820152606490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f80199101166080016080811067ffffffffffffffff82111761014457604052565b61010d565b90601f8019910116810190811067ffffffffffffffff82111761014457604052565b67ffffffffffffffff811161014457601f01601f191660200190565b60405190610196604083610149565b60088252675f435553544f4d5f60c01b6020830152565b634e487b7160e01b5f52601160045260245ffd5b608051906101cd610187565b518203918211610296576101df610187565b51608051818401908185116102965710610261576101fc816102a8565b905f5b818110610226575050805160209091012090915061021b610187565b602081519101201490565b8061024e6102406102396001948961029b565b60806102da565b516001600160f81b03191690565b5f1a61025a82866102da565b53016101ff565b60405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420736c69636560981b6044820152606490fd5b6101ad565b9190820180921161029657565b906102b28261016b565b6102bf6040519182610149565b82815280926102d0601f199161016b565b0190602036910137565b9081518110156102eb570160200190565b634e487b7160e01b5f52603260045260245ffd5b806080511061026157610311816102a8565b905f5b81811061032057505090565b8061033161024060019360806102da565b5f1a61033d82866102da565b5301610314565b6014608051106102615761035860146102a8565b5f5b60148110610366575090565b806103796102406102396001945f61029b565b5f1a61038582856102da565b530161035a565b9060805160148301908184116102965710610261576103ab60146102a8565b5f5b601481106103ba57509150565b806103cd6102406102396001948861029b565b5f1a6103d982856102da565b53016103ad565b60148151036103f0576014015190565b60405162461bcd60e51b8152602060048201526016602482015275092dcecc2d8d2c840c2c8c8e4cae6e640d8cadccee8d60531b6044820152606490fdfea264697066735822122003145e20d541a8018273b67ee72c5ec7f33640598b59e53e4333b93768bec03c64736f6c634300081b0033","sourceMap":"57:3733:57:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c63637083f914610024575f80fd5b60203660031901126101095760043560a05260206080526100456040610121565b610056610050610187565b516102ff565b60208151910120610065610187565b60208151910120145f146100ad576100a961008f61008a610084610187565b5161038c565b6103e0565b6040516001600160a01b0390911681529081906020820190565b0390f35b6100b56101c1565b156100cd576100a96100c861008a610344565b61008f565b60405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081a5b9c1d5d08199bdc9b585d60621b6044820152606490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f80199101166080016080811067ffffffffffffffff82111761014457604052565b61010d565b90601f8019910116810190811067ffffffffffffffff82111761014457604052565b67ffffffffffffffff811161014457601f01601f191660200190565b60405190610196604083610149565b60088252675f435553544f4d5f60c01b6020830152565b634e487b7160e01b5f52601160045260245ffd5b608051906101cd610187565b518203918211610296576101df610187565b51608051818401908185116102965710610261576101fc816102a8565b905f5b818110610226575050805160209091012090915061021b610187565b602081519101201490565b8061024e6102406102396001948961029b565b60806102da565b516001600160f81b03191690565b5f1a61025a82866102da565b53016101ff565b60405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420736c69636560981b6044820152606490fd5b6101ad565b9190820180921161029657565b906102b28261016b565b6102bf6040519182610149565b82815280926102d0601f199161016b565b0190602036910137565b9081518110156102eb570160200190565b634e487b7160e01b5f52603260045260245ffd5b806080511061026157610311816102a8565b905f5b81811061032057505090565b8061033161024060019360806102da565b5f1a61033d82866102da565b5301610314565b6014608051106102615761035860146102a8565b5f5b60148110610366575090565b806103796102406102396001945f61029b565b5f1a61038582856102da565b530161035a565b9060805160148301908184116102965710610261576103ab60146102a8565b5f5b601481106103ba57509150565b806103cd6102406102396001948861029b565b5f1a6103d982856102da565b53016103ad565b60148151036103f0576014015190565b60405162461bcd60e51b8152602060048201526016602482015275092dcecc2d8d2c840c2c8c8e4cae6e640d8cadccee8d60531b6044820152606490fdfea264697066735822122003145e20d541a8018273b67ee72c5ec7f33640598b59e53e4333b93768bec03c64736f6c634300081b0033","sourceMap":"57:3733:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:3733:57;;;;;;723:23;57:3733;;;723:23;;57:3733;723:23;:::i;:::-;1802:36;57:3733;;:::i;:::-;188:10;1802:36;:::i;:::-;57:3733;188:10;;57:3733;;1792:47;57:3733;;:::i;:::-;;188:10;;57:3733;;1855:24;1792:87;813:599;1855:24;;;57:3733;970:59;985:43;57:3733;;:::i;:::-;188:10;985:43;:::i;:::-;970:59;:::i;:::-;57:3733;;-1:-1:-1;;;;;57:3733:57;;;;;;;;;;;;;;;;;813:599;1114:21;;:::i;:::-;;;;57:3733;1240:40;1255:24;;:::i;1240:40::-;813:599;;1110:302;57:3733;;-1:-1:-1;;;1371:30:57;;57:3733;;1371:30;;57:3733;;;;;;-1:-1:-1;;;57:3733:57;;;;;;1371:30;57:3733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;57:3733:57;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;57:3733:57;;;;:::o;:::-;;;;;;;;;;;;2073:353;57:3733;188:10;57:3733;;;:::i;:::-;188:10;57:3733;;;;;;;;;:::i;:::-;188:10;57:3733;188:10;57:3733;;;;;;;;;2891:29;57:3733;;3031:17;;;:::i;:::-;3063:13;-1:-1:-1;3078:10:57;;;;;;-1:-1:-1;;188:10:57;;57:3733;;;;2259:132;3156:13;;-1:-1:-1;57:3733:57;;:::i;:::-;;188:10;;57:3733;;2395:24;2259:160;2073:353;:::o;3090:3::-;3126:9;3121:15;;3126:9;57:3733;3126:9;;;:::i;:::-;57:3733;3121:15;:::i;:::-;57:3733;-1:-1:-1;;;;;;57:3733:57;;;3121:15;-1:-1:-1;3109:27:57;;;;;:::i;:::-;;57:3733;3063:13;;57:3733;;;-1:-1:-1;;;57:3733:57;;;;;;;;;;;;-1:-1:-1;;;57:3733:57;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;188:10;;57:3733;;;;;;;;;:::o;:::-;;;;;;;;;;;;2665:511;188:10;57:3733;188:10;2891:29;57:3733;;3031:17;;;:::i;:::-;3063:13;-1:-1:-1;3078:10:57;;;;;;3156:13;;2665:511;:::o;3090:3::-;57:3733;3121:15;;57:3733;3121:15;57:3733;3121:15;:::i;:::-;-1:-1:-1;3109:27:57;;;;;:::i;:::-;;57:3733;3063:13;;2665:511;1276:2;57:3733;188:10;2891:29;57:3733;;3031:17;1276:2;3031:17;:::i;:::-;-1:-1:-1;3078:10:57;1276:2;3078:10;;;;3156:13;2665:511;:::o;3090:3::-;3126:9;3121:15;;3126:9;57:3733;3126:9;-1:-1:-1;3126:9:57;:::i;3121:15::-;-1:-1:-1;3109:27:57;;;;;:::i;:::-;;57:3733;3063:13;;2665:511;;57:3733;188:10;1025:2;57:3733;;;;;;;;2891:29;57:3733;;3031:17;1025:2;3031:17;:::i;:::-;-1:-1:-1;3078:10:57;1025:2;3078:10;;;;-1:-1:-1;3156:13:57;-1:-1:-1;2665:511:57:o;3090:3::-;3126:9;3121:15;;3126:9;57:3733;3126:9;;;:::i;3121:15::-;-1:-1:-1;3109:27:57;;;;;:::i;:::-;;57:3733;3063:13;;3366:422;3603:2;188:10;;3588:17;57:3733;;3603:2;3721:61;;3366:422;:::o;57:3733::-;;;-1:-1:-1;;;57:3733:57;;;;;;;;;;;;-1:-1:-1;;;57:3733:57;;;;;;","linkReferences":{}},"methodIdentifiers":{"extractAddress(bytes32)":"637083f9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"input\",\"type\":\"bytes32\"}],\"name\":\"extractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"extractedAddress\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"extractAddress(bytes32)\":{\"details\":\"Extracts an address from a bytes32 input, assuming it is either prepended or appended with `_CUSTOM_`.\",\"params\":{\"input\":\"The bytes32 input containing the address and custom prefix/suffix.\"},\"returns\":{\"extractedAddress\":\"The extracted address.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/CustomBytesAppend.sol\":\"CustomBytesAppend\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"input","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"extractAddress","outputs":[{"internalType":"address","name":"extractedAddress","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"extractAddress(bytes32)":{"details":"Extracts an address from a bytes32 input, assuming it is either prepended or appended with `_CUSTOM_`.","params":{"input":"The bytes32 input containing the address and custom prefix/suffix."},"returns":{"extractedAddress":"The extracted address."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/CustomBytesAppend.sol":"CustomBytesAppend"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file diff --git a/evm/out/ERC20.sol/ERC20.json b/evm/out/ERC20.sol/ERC20.json deleted file mode 100644 index c46bc71..0000000 --- a/evm/out/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":28} \ No newline at end of file diff --git a/evm/out/ERC20/IERC20.sol/IERC20.json b/evm/out/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 624e3ab..0000000 --- a/evm/out/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/evm/out/ERC4626.sol/ERC4626.json b/evm/out/ERC4626.sol/ERC4626.json deleted file mode 100644 index 3f937c6..0000000 --- a/evm/out/ERC4626.sol/ERC4626.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC4626ExceededMaxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxRedeem\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the ERC-4626 \\\"Tokenized Vault Standard\\\" as defined in https://eips.ethereum.org/EIPS/eip-4626[ERC-4626]. This extension allows the minting and burning of \\\"shares\\\" (represented using the ERC-20 inheritance) in exchange for underlying \\\"assets\\\" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends the ERC-20 standard. Any additional extensions included along it would affect the \\\"shares\\\" token represented by this contract and not the \\\"assets\\\" token which is an independent contract. [CAUTION] ==== In empty (or nearly empty) ERC-4626 vaults, deposits are at high risk of being stolen through frontrunning with a \\\"donation\\\" to the vault that inflates the price of a share. This is variously known as a donation or inflation attack and is essentially a problem of slippage. Vault deployers can protect against this attack by making an initial deposit of a non-trivial amount of the asset, such that price manipulation becomes infeasible. Withdrawals may similarly be affected by slippage. Users can protect against this attack as well as unexpected slippage in general by verifying the amount received is as expected, using a wrapper that performs these checks such as https://github.com/fei-protocol/ERC4626#erc4626router-and-base[ERC4626Router]. Since v4.9, this implementation introduces configurable virtual assets and shares to help developers mitigate that risk. The `_decimalsOffset()` corresponds to an offset in the decimal representation between the underlying asset's decimals and the vault decimals. This offset also determines the rate of virtual shares to virtual assets in the vault, which itself determines the initial exchange rate. While not fully preventing the attack, analysis shows that the default offset (0) makes it non-profitable even if an attacker is able to capture value from multiple user deposits, as a result of the value being captured by the virtual shares (out of the attacker's donation) matching the attacker's expected gains. With a larger offset, the attack becomes orders of magnitude more expensive than it is profitable. More details about the underlying math can be found xref:erc4626.adoc#inflation-attack[here]. The drawback of this approach is that the virtual shares do capture (a very small) part of the value being accrued to the vault. Also, if the vault experiences losses, the users try to exit the vault, the virtual shares and assets will cause the first user to exit to experience reduced losses in detriment to the last users that will experience bigger losses. Developers willing to revert back to the pre-v4.9 behavior just need to override the `_convertToShares` and `_convertToAssets` functions. To learn more, check out our xref:ROOT:erc4626.adoc[ERC-4626 guide]. ====\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC4626ExceededMaxDeposit(address,uint256,uint256)\":[{\"details\":\"Attempted to deposit more assets than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxMint(address,uint256,uint256)\":[{\"details\":\"Attempted to mint more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxRedeem(address,uint256,uint256)\":[{\"details\":\"Attempted to redeem more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxWithdraw(address,uint256,uint256)\":[{\"details\":\"Attempted to withdraw more assets than the max amount for `receiver`.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Set the underlying asset contract. This must be an ERC20-compatible contract (ERC-20 or ERC-777).\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":\"ERC4626\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxDeposit"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxMint"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxRedeem"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxWithdraw"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Set the underlying asset contract. This must be an ERC20-compatible contract (ERC-20 or ERC-777)."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"decimals()":{"details":"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}."},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":"ERC4626"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"}},"version":1},"id":30} \ No newline at end of file diff --git a/evm/out/EfficientERC20.sol/EfficientERC20.json b/evm/out/EfficientERC20.sol/EfficientERC20.json deleted file mode 100644 index 7d635f0..0000000 --- a/evm/out/EfficientERC20.sol/EfficientERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"TransferFailed","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFromFailed","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220dee99b91f30bb724d6f6717c5fefe301844a87779613221b1762ae66e08f184364736f6c634300081b0033","sourceMap":"552:11213:58:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220dee99b91f30bb724d6f6717c5fefe301844a87779613221b1762ae66e08f184364736f6c634300081b0033","sourceMap":"552:11213:58:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFromFailed\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"PropellerHeads Developers\",\"details\":\"Gas-efficient version of Openzeppelin's SafeERC20 contract. This is a mix between SafeERC20 and GPv2SafeERC20 libraries. It provides efficient transfers optimised for router contracts, while keeping the Openzeppelins compatibility for approvals.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Propellerheads Safe ERC20 Transfer Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/EfficientERC20.sol\":\"EfficientERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"TransferFromFailed"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/EfficientERC20.sol":"EfficientERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"}},"version":1},"id":58} \ No newline at end of file diff --git a/evm/out/Errors.sol/Errors.json b/evm/out/Errors.sol/Errors.json deleted file mode 100644 index 85d4130..0000000 --- a/evm/out/Errors.sol/Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122099273c4480cbfe5f59513dd10a2450c395a7219d32b09541e53b0b6a8cdba1ab64736f6c634300081b0033","sourceMap":"314:382:35:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122099273c4480cbfe5f59513dd10a2450c395a7219d32b09541e53b0b6a8cdba1ab64736f6c634300081b0033","sourceMap":"314:382:35:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality.\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Errors.sol":"Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"}},"version":1},"id":35} \ No newline at end of file diff --git a/evm/out/EtherfiAdapter.sol/EtherfiAdapter.json b/evm/out/EtherfiAdapter.sol/EtherfiAdapter.json deleted file mode 100644 index 58b881a..0000000 --- a/evm/out/EtherfiAdapter.sol/EtherfiAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_weEth","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60e0806040523461023e57602081612174803803809161001f8285610298565b83398101031261023e57516001600160a01b0381169081900361023e57602081600492608052604051928380926306f1b8f160e11b82525afa90811561024a575f91610255575b5060a081905260405163332d08e560e11b815290602090829060049082906001600160a01b03165afa90811561024a575f91610204575b5060c052604051611ea490816102d0823960805181818160ce015281816101ea015281816105c8015281816108d301528181610e8e01528181610f6501528181611112015281816111ee015281816112d00152818161142401528181611b230152611b7b015260a051818181609a015281816102cf015281816105250152818161056301528181610741015281816107dd0152818161081b015281816109580152818161099601528181610c8501528181610d2b01528181610dee01528181610eb401528181610fda0152818161113c015281816111b801528181611295015281816114a1015281816115c701528181611649015281816116e10152818161176c015281816117db015281816118d301528181611a550152611ad6015260c05181818161028001528181610abb01528181610cdc0152818161131d015281816113e9015281816114ed0152818161157a01528181611917015281816119980152611a990152f35b90506020813d602011610242575b8161021f60209383610298565b8101031261023e57516001600160a01b038116810361023e575f61009d565b5f80fd5b3d9150610212565b6040513d5f823e3d90fd5b90506020813d602011610290575b8161027060209383610298565b8101031261023e57516001600160a01b038116810361023e576020610066565b3d9150610263565b601f909101601f19168101906001600160401b038211908210176102bb57604052565b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca0114610a8957806348bd7dfd146109dc5780638307c6551461084d578063a9270fbe146105a3578063aad6e4881461014f5763ecbbc0330361000e573461014b57602036600319011261014b5760405161007f608082610bb7565b60038152602081019060603683375f61009782610bf1565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100cb82610c12565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ff82610c22565b52604051918291602083019060208452518091526040830191905f5b818110610129575050500390f35b82516001600160a01b031684528594506020938401939092019160010161011b565b5f80fd5b3461014b57608036600319011261014b57610168610b35565b610170610b4b565b9060643567ffffffffffffffff811161014b573660238201121561014b5780600401359061019d82610bd9565b916101ab6040519384610bb7565b8083526024602084019160051b8301019136831161014b57602401905b828210610593575050506001600160a01b038281169290841683811461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168481141580610560575b80610557575b61049f578114159081610523575b5061049f5781519361024185610bd9565b9461024f6040519687610bb7565b80865261025e601f1991610bd9565b015f5b81811061047c575050604051631be7ed6560e11b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561043d575f92610448575b50604051633a98ef3960e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610409575b505f9515955b85518110156103b8576001908715610386576103696103378685610331858c610c32565b51611821565b610341838a610c32565b519061036161035a610353868d610c32565b5188610e66565b9189610e66565b91878a611735565b610373828b610c32565b5261037e818a610c32565b505b0161030d565b61039d8584610395848b610c32565b51878a611735565b6103a7828b610c32565b526103b2818a610c32565b50610380565b876040518091602082016020835281518091526020604084019201905f5b8181106103e4575050500390f35b82518051855260209081015181860152869550604090940193909201916001016103d6565b9092506020813d602011610435575b8161042560209383610bb7565b8101031261014b57519187610307565b3d9150610418565b6040513d5f823e3d90fd5b9091506020813d602011610474575b8161046460209383610bb7565b8101031261014b575190866102b8565b3d9150610457565b60209060405161048b81610b9b565b5f81525f8382015282828a01015201610261565b60405163643c60f360e01b81528061051f6004820160a09060208152604460208201527f5468697320706f6f6c206f6e6c7920737570706f727473204554482d3e65455460408201527f482c2077654554483c2d3e6545544820616e64204554482d3e776545544820736060820152637761707360e01b60808201520190565b0390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610230565b50841515610222565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685141561021c565b81358152602091820191016101c8565b3461014b576105b136610b61565b6001600160a01b0390811692501680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681811491821590819081610819575b8161080f575b5061049f5781841493841590816107db575b5061049f576040519361062b606086610bb7565b6002855260208501936040368637916107d3575b501561072b576020600491604051928380926318160ddd60e01b82525afa90811561043d575f916106f9575b50605a810290808204605a14901517156106e5576064900461068c83610bf1565b52905b61069881610bf1565b516106a282610c12565b52604051918291602083019060208452518091526040830191905f5b8181106106cc575050500390f35b82518452859450602093840193909201916001016106be565b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610723575b8161071460209383610bb7565b8101031261014b57518361066b565b3d9150610707565b506040516318160ddd60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f916107a1575b50605a810290808204605a14901517156106e5576064900461079a83610bf1565b529061068f565b90506020813d6020116107cb575b816107bc60209383610bb7565b8101031261014b575183610779565b3d91506107af565b90508461063f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610617565b9050151585610605565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681141591506105ff565b3461014b5760a036600319011261014b57610866610b35565b61086e610b4b565b90606435600281101561014b57604051906060820182811067ffffffffffffffff8211176109c8576040525f82525f60208301526040516108ae81610b9b565b5f808252602082015260408301526001600160a01b0384811690841680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690808214159081610994575b8161098a575b5061049f578114159081610956575b5061049f576080936109319360843593610c53565b6020604080519280518452828101518385015201518051604084015201516060820152f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590508561091c565b905015158761090d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168114159150610907565b634e487b7160e01b5f52604160045260245ffd5b3461014b576109ea36610b61565b5050506040516109fb608082610bb7565b600381526020810160603682376001610a1383610bf1565b526002610a1f83610c12565b526003610a2b83610c22565b52604051906020820192602083525180935260408201905f935b808510610a525783830384f35b9091825190600a821015610a755760208160019382935201930194019390610a45565b634e487b7160e01b5f52602160045260245ffd5b3461014b57604036600319011261014b576040805190610aa98183610bb7565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff1916610af584610bf1565b52815192839260208401916020855251809252830191905f5b818110610b1c575050500390f35b8251845285945060209384019390920191600101610b0e565b602435906001600160a01b038216820361014b57565b604435906001600160a01b038216820361014b57565b606090600319011261014b57600435906024356001600160a01b038116810361014b57906044356001600160a01b038116810361014b5790565b6040810190811067ffffffffffffffff8211176109c857604052565b90601f8019910116810190811067ffffffffffffffff8211176109c857604052565b67ffffffffffffffff81116109c85760051b60200190565b805115610bfe5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610bfe5760400190565b805160021015610bfe5760600190565b8051821015610bfe5760209160051b010190565b919082039182116106e557565b949392909192858115610e2d575090610cbf915a916001600160a01b03851680610dec57506001600160a01b038681167f000000000000000000000000000000000000000000000000000000000000000090911603610ddc57610cb59161148e565b86525b5a90610c46565b602085810191909152604051631be7ed6560e11b815290816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91610daa575b50604051633a98ef3960e01b8152926020846004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610d74575b610d6d9450611617565b6040830152565b92506020843d602011610da2575b81610d8f60209383610bb7565b8101031261014b57610d6d935192610d63565b3d9150610d82565b90506020813d602011610dd4575b81610dc560209383610bb7565b8101031261014b57515f610d14565b3d9150610db8565b610de591611292565b8652610cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e2457610de5916110f7565b610de591610e73565b955050505050565b818102929181159184041417156106e557565b8115610e52570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106e557565b906002811015610a7557600103610f5e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116915f917f00000000000000000000000000000000000000000000000000000000000000001690602090610ee3908386611a39565b93610ef08530338461183f565b602460405180958193636f074d1f60e11b83528860048401525af190811561043d575f91610f28575b610f259250339061188a565b90565b90506020823d602011610f56575b81610f4360209383610bb7565b8101031261014b57610f25915190610f19565b3d9150610f36565b5f906020907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602490610f9d8130338661183f565b6040519485938492636f074d1f60e11b845260048401525af190811561043d575f916110c5575b506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575b5060249261102b602092338361188a565b6040516370a0823160e01b815233600482015293849182905afa801561043d575f9061105c575b610f259250610c46565b506020823d602011611088575b8161107660209383610bb7565b8101031261014b57610f259151611052565b3d9150611069565b9091506020813d6020116110bd575b816110ac60209383610bb7565b8101031261014b575190602461101a565b3d915061109f565b90506020813d6020116110ef575b816110e060209383610bb7565b8101031261014b57515f610fc4565b3d91506110d3565b906002811015610a75576001036111b6576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691829161117e917f00000000000000000000000000000000000000000000000000000000000000009091169061116a908483611a39565b9384916111798330338461183f565b611bb6565b604051630ea598cb60e41b815260048101839052906020826024815f855af190811561043d575f91610f2857610f259250339061188a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ec8230338461183f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af191821561043d575f9261125c575b5081610f2591339061188a565b9091506020813d60201161128a575b8161127860209383610bb7565b8101031261014b575190610f2561124f565b3d915061126b565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906002811015610a75576001036113cf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169161130390836118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561043d575f93611397575b50828261136192611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af190811561043d575f91610f2857610f259250339061188a565b909192506020813d6020116113c7575b816113b460209383610bb7565b8101031261014b57519190611361611355565b3d91506113a7565b604051630d0e30db60e41b815291602090839060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561043d575f9261145a575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b9091506020813d602011611486575b8161147660209383610bb7565b8101031261014b5751905f611421565b3d9150611469565b906002811015610a7557600103611560577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114d382826118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561043d5761152d57610f259250339061188a565b6020833d602011611558575b8161154660209383610bb7565b8101031261014b57610f259250610f19565b3d9150611539565b604051630d0e30db60e41b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561043d575f916110c557506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575060249261102b602092338361188a565b60405161162381610b9b565b5f8082526020909101526001600160a01b0316806116dc57506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036116a3579061168391670de0b6b3a7640000611821565b6040519061169082610b9b565b8152670de0b6b3a7640000602082015290565b6116b68282670de0b6b3a7640000611821565b90670de0b6b3a764000081018091116106e5576116d68261168394610e66565b91611d3b565b9192917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590506117235761168391670de0b6b3a7640000611d3b565b61168391670de0b6b3a7640000611d1e565b908294929160405161174681610b9b565b5f8082526020909101526001600160a01b0316806117d957506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036117b5579161179d92611821565b90604051916117ab83610b9b565b8252602082015290565b906116d6836117d36117cb8461179d9787611821565b948592610e66565b92610e66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415915061181790505761179d9183611d3b565b61179d9183611d1e565b91811561183a5761183590610f2593610e35565b610e48565b505090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261188891611883608483610bb7565b611d66565b565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261188891611883606483610bb7565b6001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b90506020813d602011611979575b8161196d60209383610bb7565b8101031261014b575190565b3d9150611960565b604051630ac37bbf60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa801561043d575f90611a06575b60209150602460405180948193630ac37bbf60e31b835260048301525afa90811561043d575f91611952575090565b506020813d602011611a31575b81611a2060209383610bb7565b8101031261014b57602090516119d7565b3d9150611a13565b6001600160a01b031680611ad457506001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050611b5e57604051632518981160e21b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b60405163d044fe9b60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa90811561043d575f91611cea575b50611c3f94611c4d611c0b5f948594610e66565b60405163095ea7b360e01b602082019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610bb7565b85519082855af190611c5d611dd1565b82611cb8575b5081611cad575b5015611c7557505050565b611883611888936040519063095ea7b360e01b602083015260248201525f604482015260448152611ca7606482610bb7565b82611d66565b90503b15155f611c6a565b80519192508115918215611cd0575b5050905f611c63565b611ce39250602080918301019101611d4e565b5f80611cc7565b90506020813d602011611d16575b81611d0560209383610bb7565b8101031261014b5751611c3f611bf7565b3d9150611cf8565b9190918115611d3457610f259261183591610e35565b5050505f90565b8115611d3457610f259261183591610e35565b9081602091031261014b5751801515810361014b5790565b5f80611d8e9260018060a01b03169360208151910182865af1611d87611dd1565b9083611e10565b8051908115159182611db6575b5050611da45750565b635274afe760e01b5f5260045260245ffd5b611dc99250602080918301019101611d4e565b155f80611d9b565b3d15611e0b573d9067ffffffffffffffff82116109c85760405191611e00601f8201601f191660200184610bb7565b82523d5f602084013e565b606090565b90611e345750805115611e2557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611e65575b611e45575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e3d56fea264697066735822122031cbba3d0f67fa9960c80e8dde35d7d3550b9bced9b39c9333a70f3eae803fd664736f6c634300081b0033","sourceMap":"465:13920:51:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;;;;728:22;767:12;728:22;;;465:13920;;;;;;;;;767:12;;;;;;;;;-1:-1:-1;767:12:51;;;-1:-1:-1;;760:19:51;;;;465:13920;;-1:-1:-1;;;805:20:51;;465:13920;;;;;767:12;;465:13920;;-1:-1:-1;;;;;465:13920:51;805:20;;;;;;;-1:-1:-1;805:20:51;;;-1:-1:-1;789:36:51;;;465:13920;;;;;;;;728:22;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:19;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;789:36;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:20;;;465:13920;805:20;;465:13920;805:20;;;;;;465:13920;805:20;;;:::i;:::-;;;465:13920;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;805:20;;;465:13920;-1:-1:-1;465:13920:51;;805:20;;;-1:-1:-1;805:20:51;;;465:13920;;;-1:-1:-1;465:13920:51;;;;;767:12;;;465:13920;767:12;;465:13920;767:12;;;;;;465:13920;767:12;;;:::i;:::-;;;465:13920;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;;767:12;;;;;-1:-1:-1;767:12:51;;465:13920;;;;;-1:-1:-1;;465:13920:51;;;;-1:-1:-1;;;;;465:13920:51;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;465:13920:51;;;;;-1:-1:-1;465:13920:51","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca0114610a8957806348bd7dfd146109dc5780638307c6551461084d578063a9270fbe146105a3578063aad6e4881461014f5763ecbbc0330361000e573461014b57602036600319011261014b5760405161007f608082610bb7565b60038152602081019060603683375f61009782610bf1565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100cb82610c12565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ff82610c22565b52604051918291602083019060208452518091526040830191905f5b818110610129575050500390f35b82516001600160a01b031684528594506020938401939092019160010161011b565b5f80fd5b3461014b57608036600319011261014b57610168610b35565b610170610b4b565b9060643567ffffffffffffffff811161014b573660238201121561014b5780600401359061019d82610bd9565b916101ab6040519384610bb7565b8083526024602084019160051b8301019136831161014b57602401905b828210610593575050506001600160a01b038281169290841683811461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168481141580610560575b80610557575b61049f578114159081610523575b5061049f5781519361024185610bd9565b9461024f6040519687610bb7565b80865261025e601f1991610bd9565b015f5b81811061047c575050604051631be7ed6560e11b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561043d575f92610448575b50604051633a98ef3960e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610409575b505f9515955b85518110156103b8576001908715610386576103696103378685610331858c610c32565b51611821565b610341838a610c32565b519061036161035a610353868d610c32565b5188610e66565b9189610e66565b91878a611735565b610373828b610c32565b5261037e818a610c32565b505b0161030d565b61039d8584610395848b610c32565b51878a611735565b6103a7828b610c32565b526103b2818a610c32565b50610380565b876040518091602082016020835281518091526020604084019201905f5b8181106103e4575050500390f35b82518051855260209081015181860152869550604090940193909201916001016103d6565b9092506020813d602011610435575b8161042560209383610bb7565b8101031261014b57519187610307565b3d9150610418565b6040513d5f823e3d90fd5b9091506020813d602011610474575b8161046460209383610bb7565b8101031261014b575190866102b8565b3d9150610457565b60209060405161048b81610b9b565b5f81525f8382015282828a01015201610261565b60405163643c60f360e01b81528061051f6004820160a09060208152604460208201527f5468697320706f6f6c206f6e6c7920737570706f727473204554482d3e65455460408201527f482c2077654554483c2d3e6545544820616e64204554482d3e776545544820736060820152637761707360e01b60808201520190565b0390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610230565b50841515610222565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685141561021c565b81358152602091820191016101c8565b3461014b576105b136610b61565b6001600160a01b0390811692501680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681811491821590819081610819575b8161080f575b5061049f5781841493841590816107db575b5061049f576040519361062b606086610bb7565b6002855260208501936040368637916107d3575b501561072b576020600491604051928380926318160ddd60e01b82525afa90811561043d575f916106f9575b50605a810290808204605a14901517156106e5576064900461068c83610bf1565b52905b61069881610bf1565b516106a282610c12565b52604051918291602083019060208452518091526040830191905f5b8181106106cc575050500390f35b82518452859450602093840193909201916001016106be565b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610723575b8161071460209383610bb7565b8101031261014b57518361066b565b3d9150610707565b506040516318160ddd60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f916107a1575b50605a810290808204605a14901517156106e5576064900461079a83610bf1565b529061068f565b90506020813d6020116107cb575b816107bc60209383610bb7565b8101031261014b575183610779565b3d91506107af565b90508461063f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610617565b9050151585610605565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681141591506105ff565b3461014b5760a036600319011261014b57610866610b35565b61086e610b4b565b90606435600281101561014b57604051906060820182811067ffffffffffffffff8211176109c8576040525f82525f60208301526040516108ae81610b9b565b5f808252602082015260408301526001600160a01b0384811690841680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690808214159081610994575b8161098a575b5061049f578114159081610956575b5061049f576080936109319360843593610c53565b6020604080519280518452828101518385015201518051604084015201516060820152f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590508561091c565b905015158761090d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168114159150610907565b634e487b7160e01b5f52604160045260245ffd5b3461014b576109ea36610b61565b5050506040516109fb608082610bb7565b600381526020810160603682376001610a1383610bf1565b526002610a1f83610c12565b526003610a2b83610c22565b52604051906020820192602083525180935260408201905f935b808510610a525783830384f35b9091825190600a821015610a755760208160019382935201930194019390610a45565b634e487b7160e01b5f52602160045260245ffd5b3461014b57604036600319011261014b576040805190610aa98183610bb7565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff1916610af584610bf1565b52815192839260208401916020855251809252830191905f5b818110610b1c575050500390f35b8251845285945060209384019390920191600101610b0e565b602435906001600160a01b038216820361014b57565b604435906001600160a01b038216820361014b57565b606090600319011261014b57600435906024356001600160a01b038116810361014b57906044356001600160a01b038116810361014b5790565b6040810190811067ffffffffffffffff8211176109c857604052565b90601f8019910116810190811067ffffffffffffffff8211176109c857604052565b67ffffffffffffffff81116109c85760051b60200190565b805115610bfe5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610bfe5760400190565b805160021015610bfe5760600190565b8051821015610bfe5760209160051b010190565b919082039182116106e557565b949392909192858115610e2d575090610cbf915a916001600160a01b03851680610dec57506001600160a01b038681167f000000000000000000000000000000000000000000000000000000000000000090911603610ddc57610cb59161148e565b86525b5a90610c46565b602085810191909152604051631be7ed6560e11b815290816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91610daa575b50604051633a98ef3960e01b8152926020846004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610d74575b610d6d9450611617565b6040830152565b92506020843d602011610da2575b81610d8f60209383610bb7565b8101031261014b57610d6d935192610d63565b3d9150610d82565b90506020813d602011610dd4575b81610dc560209383610bb7565b8101031261014b57515f610d14565b3d9150610db8565b610de591611292565b8652610cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e2457610de5916110f7565b610de591610e73565b955050505050565b818102929181159184041417156106e557565b8115610e52570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106e557565b906002811015610a7557600103610f5e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116915f917f00000000000000000000000000000000000000000000000000000000000000001690602090610ee3908386611a39565b93610ef08530338461183f565b602460405180958193636f074d1f60e11b83528860048401525af190811561043d575f91610f28575b610f259250339061188a565b90565b90506020823d602011610f56575b81610f4360209383610bb7565b8101031261014b57610f25915190610f19565b3d9150610f36565b5f906020907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602490610f9d8130338661183f565b6040519485938492636f074d1f60e11b845260048401525af190811561043d575f916110c5575b506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575b5060249261102b602092338361188a565b6040516370a0823160e01b815233600482015293849182905afa801561043d575f9061105c575b610f259250610c46565b506020823d602011611088575b8161107660209383610bb7565b8101031261014b57610f259151611052565b3d9150611069565b9091506020813d6020116110bd575b816110ac60209383610bb7565b8101031261014b575190602461101a565b3d915061109f565b90506020813d6020116110ef575b816110e060209383610bb7565b8101031261014b57515f610fc4565b3d91506110d3565b906002811015610a75576001036111b6576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691829161117e917f00000000000000000000000000000000000000000000000000000000000000009091169061116a908483611a39565b9384916111798330338461183f565b611bb6565b604051630ea598cb60e41b815260048101839052906020826024815f855af190811561043d575f91610f2857610f259250339061188a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ec8230338461183f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af191821561043d575f9261125c575b5081610f2591339061188a565b9091506020813d60201161128a575b8161127860209383610bb7565b8101031261014b575190610f2561124f565b3d915061126b565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906002811015610a75576001036113cf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169161130390836118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561043d575f93611397575b50828261136192611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af190811561043d575f91610f2857610f259250339061188a565b909192506020813d6020116113c7575b816113b460209383610bb7565b8101031261014b57519190611361611355565b3d91506113a7565b604051630d0e30db60e41b815291602090839060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561043d575f9261145a575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b9091506020813d602011611486575b8161147660209383610bb7565b8101031261014b5751905f611421565b3d9150611469565b906002811015610a7557600103611560577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114d382826118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561043d5761152d57610f259250339061188a565b6020833d602011611558575b8161154660209383610bb7565b8101031261014b57610f259250610f19565b3d9150611539565b604051630d0e30db60e41b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561043d575f916110c557506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575060249261102b602092338361188a565b60405161162381610b9b565b5f8082526020909101526001600160a01b0316806116dc57506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036116a3579061168391670de0b6b3a7640000611821565b6040519061169082610b9b565b8152670de0b6b3a7640000602082015290565b6116b68282670de0b6b3a7640000611821565b90670de0b6b3a764000081018091116106e5576116d68261168394610e66565b91611d3b565b9192917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590506117235761168391670de0b6b3a7640000611d3b565b61168391670de0b6b3a7640000611d1e565b908294929160405161174681610b9b565b5f8082526020909101526001600160a01b0316806117d957506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036117b5579161179d92611821565b90604051916117ab83610b9b565b8252602082015290565b906116d6836117d36117cb8461179d9787611821565b948592610e66565b92610e66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415915061181790505761179d9183611d3b565b61179d9183611d1e565b91811561183a5761183590610f2593610e35565b610e48565b505090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261188891611883608483610bb7565b611d66565b565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261188891611883606483610bb7565b6001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b90506020813d602011611979575b8161196d60209383610bb7565b8101031261014b575190565b3d9150611960565b604051630ac37bbf60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa801561043d575f90611a06575b60209150602460405180948193630ac37bbf60e31b835260048301525afa90811561043d575f91611952575090565b506020813d602011611a31575b81611a2060209383610bb7565b8101031261014b57602090516119d7565b3d9150611a13565b6001600160a01b031680611ad457506001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050611b5e57604051632518981160e21b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b60405163d044fe9b60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa90811561043d575f91611cea575b50611c3f94611c4d611c0b5f948594610e66565b60405163095ea7b360e01b602082019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610bb7565b85519082855af190611c5d611dd1565b82611cb8575b5081611cad575b5015611c7557505050565b611883611888936040519063095ea7b360e01b602083015260248201525f604482015260448152611ca7606482610bb7565b82611d66565b90503b15155f611c6a565b80519192508115918215611cd0575b5050905f611c63565b611ce39250602080918301019101611d4e565b5f80611cc7565b90506020813d602011611d16575b81611d0560209383610bb7565b8101031261014b5751611c3f611bf7565b3d9150611cf8565b9190918115611d3457610f259261183591610e35565b5050505f90565b8115611d3457610f259261183591610e35565b9081602091031261014b5751801515810361014b5790565b5f80611d8e9260018060a01b03169360208151910182865af1611d87611dd1565b9083611e10565b8051908115159182611db6575b5050611da45750565b635274afe760e01b5f5260045260245ffd5b611dc99250602080918301019101611d4e565b155f80611d9b565b3d15611e0b573d9067ffffffffffffffff82116109c85760405191611e00601f8201601f191660200184610bb7565b82523d5f602084013e565b606090565b90611e345750805115611e2557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611e65575b611e45575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e3d56fea264697066735822122031cbba3d0f67fa9960c80e8dde35d7d3550b9bced9b39c9333a70f3eae803fd664736f6c634300081b0033","sourceMap":"465:13920:51:-:0;;;;;;;;;-1:-1:-1;465:13920:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;465:13920:51;;;;;;;;;;:::i;:::-;5907:1;465:13920;;;;;;;;;;;5919:22;;;:::i;:::-;465:13920;5971:4;-1:-1:-1;;;;;465:13920:51;5951:25;;;:::i;:::-;465:13920;6006:5;-1:-1:-1;;;;;465:13920:51;5986:26;;;:::i;:::-;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;-1:-1:-1;465:13920:51;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;465:13920:51;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;465:13920:51;;;;;;;1020:21;;;1016:172;;1235:5;-1:-1:-1;;;;;465:13920:51;1214:27;;;;;:57;;465:13920;1214:100;;;465:13920;1197:273;;1483:26;;;:55;;;;465:13920;1479:206;;;465:13920;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;465:13920:51;;-1:-1:-1;;;2203:35:51;;465:13920;;;;;2203:13;-1:-1:-1;;;;;465:13920:51;2203:35;;;;;;;465:13920;2203:35;;;465:13920;-1:-1:-1;465:13920:51;;-1:-1:-1;;;2274:18:51;;465:13920;;;;;2274:4;-1:-1:-1;;;;;465:13920:51;2274:18;;;;;;;465:13920;2274:18;;;465:13920;2308:13;465:13920;2375:23;;2303:828;2352:3;465:13920;;2323:27;;;;;465:13920;;2375:23;;;;2598:252;2451:117;2496:19;;;;;;:::i;:::-;465:13920;2451:117;:::i;:::-;2691:19;;;;:::i;:::-;465:13920;2751:19;2792:40;2732:38;2751:19;;;;:::i;:::-;465:13920;2732:38;;:::i;:::-;2792:40;;;:::i;:::-;2598:252;;;;:::i;:::-;2586:264;;;;:::i;:::-;;;;;;:::i;:::-;;2371:750;465:13920;2308:13;;2371:750;2901:205;2994:19;;;;;;:::i;:::-;465:13920;2901:205;;;:::i;:::-;2889:217;;;;:::i;:::-;;;;;;:::i;:::-;;2371:750;;2323:27;;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;465:13920:51;;;;;;;;;;;;;2274:18;;;;465:13920;2274:18;;465:13920;2274:18;;;;;;576:8;2274:18;;;:::i;:::-;;;576:8;;;;;2274:18;;;;;;;-1:-1:-1;2274:18:51;;;465:13920;;576:8;465:13920;576:8;;;;;2203:35;;;;465:13920;2203:35;;465:13920;2203:35;;;;;;576:8;2203:35;;;:::i;:::-;;;576:8;;;;;2203:35;;;;;;;-1:-1:-1;2203:35:51;;465:13920;;;;;;;;:::i;:::-;-1:-1:-1;465:13920:51;;-1:-1:-1;465:13920:51;;;;;;;;;;;;;1479:206;465:13920;;-1:-1:-1;;;1561:113:51;;465:13920;1561:113;465:13920;1561:113;;465:13920;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;465:13920:51;;;;;;;1561:113;;;;1483:55;1533:4;-1:-1:-1;;;;;465:13920:51;1513:25;;;-1:-1:-1;1483:55:51;;;1214:100;1291:23;;;;1214:100;;:57;-1:-1:-1;1266:4:51;-1:-1:-1;;;;;465:13920:51;1245:26;;;1214:57;;465:13920;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;465:13920:51;;;;-1:-1:-1;465:13920:51;1020:21;;;1016:172;;1235:5;-1:-1:-1;;;;;465:13920:51;1214:27;;;;;;;;;;:57;;465:13920;1214:100;;;465:13920;1197:273;;;1483:26;;;;;;:55;;;;465:13920;1479:206;;;465:13920;;;;;;;:::i;:::-;4897:1;465:13920;;;;;;;;;;5054:57;;;465:13920;-1:-1:-1;5050:236:51;;;465:13920;;;;;576:8;;;;;;;5139:36;;;;;;;;;465:13920;5139:36;;;5050:236;465:13920;5178:2;465:13920;;;;;;5178:2;465:13920;;;;;;;5183:3;465:13920;;5127:59;;;:::i;:::-;465:13920;5050:236;;5307:9;;;:::i;:::-;465:13920;5295:21;;;:::i;:::-;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;465:13920:51;;;;;;;;;5302:1;465:13920;;;;;;;;;;;;;;;5139:36;;;465:13920;5139:36;;465:13920;5139:36;;;;;;576:8;5139:36;;;:::i;:::-;;;576:8;;;;;5139:36;;;;;;-1:-1:-1;5139:36:51;;5050:236;-1:-1:-1;465:13920:51;;-1:-1:-1;;;5229:35:51;;465:13920;;;;5244:4;-1:-1:-1;;;;;465:13920:51;5229:35;;;;;;;465:13920;5229:35;;;5050:236;465:13920;5267:2;465:13920;;;;;;5267:2;465:13920;;;;;;;5272:3;465:13920;;5217:58;;;:::i;:::-;465:13920;5050:236;;;5229:35;;;465:13920;5229:35;;465:13920;5229:35;;;;;;576:8;5229:35;;;:::i;:::-;;;576:8;;;;;5229:35;;;;;;-1:-1:-1;5229:35:51;;5054:57;;;;;;1483:55;1533:4;-1:-1:-1;;;;;465:13920:51;1513:25;;;-1:-1:-1;1483:55:51;;;1214:100;1291:23;;;;1214:100;;;:57;1266:4;-1:-1:-1;;;;;465:13920:51;1245:26;;;;-1:-1:-1;1214:57:51;;465:13920;;;;;;-1:-1:-1;;465:13920:51;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;465:13920:51;;;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;1020:21;;;1016:172;;1235:5;-1:-1:-1;;;;;465:13920:51;;1214:27;;;;;;:57;;465:13920;1214:100;;;465:13920;1197:273;;;1483:26;;;:55;;;;465:13920;1479:206;;;465:13920;;3176:1445;465:13920;;;3176:1445;;:::i;:::-;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1483:55;1533:4;-1:-1:-1;;;;;465:13920:51;1513:25;;;-1:-1:-1;1483:55:51;;;1214:100;1291:23;;;;1214:100;;;:57;1266:4;-1:-1:-1;;;;;465:13920:51;1245:26;;;;-1:-1:-1;1214:57:51;;465:13920;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5558:1;465:13920;;;;;;;;;5588:20;5570:38;;;:::i;:::-;465:13920;5636:19;5618:37;;;:::i;:::-;465:13920;5558:1;5665:42;;;:::i;:::-;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:20;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;465:13920:51;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;465:13920:51;;;;;6253:13;465:13920;;-1:-1:-1;;465:13920:51;6228:40;;;:::i;:::-;465:13920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;465:13920:51;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;465:13920:51;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;;;;-1:-1:-1;;;;;465:13920:51;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5588:20;465:13920;;;;;;;:::o;:::-;;;5636:19;465:13920;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3176:1445::-;;;;;;;;3458:20;;3454:63;;3546:9;;4133:21;3546:9;;465:13920;-1:-1:-1;;;;;465:13920:51;;3569:23;;;-1:-1:-1;;;;;;465:13920:51;;;3632:4;465:13920;;;3612:25;465:13920;;3682:37;;;:::i;:::-;465:13920;;3608:228;4145:9;4133:21;;:::i;:::-;4117:13;;;;465:13920;;;;;;-1:-1:-1;;;4537:35:51;;465:13920;;4537:35;465:13920;4537:13;-1:-1:-1;;;;;465:13920:51;4537:35;;;;;;;3477:1;4537:35;;;3565:543;-1:-1:-1;465:13920:51;;-1:-1:-1;;;4586:18:51;;465:13920;4117:13;465:13920;4537:35;465:13920;4586:4;-1:-1:-1;;;;;465:13920:51;4586:18;;;;;;;3477:1;4586:18;;;3565:543;4442:172;;;;:::i;:::-;465:13920;4428:11;;:186;3176:1445::o;4586:18::-;;;4117:13;4586:18;;4117:13;4586:18;;;;;;576:8;4586:18;;;:::i;:::-;;;576:8;;;;4442:172;576:8;;4586:18;;;;;;-1:-1:-1;4586:18:51;;4537:35;;;4117:13;4537:35;;4117:13;4537:35;;;;;;576:8;4537:35;;;:::i;:::-;;;576:8;;;;;4537:35;;;;;;-1:-1:-1;4537:35:51;;3608:228;3783:38;;;:::i;:::-;465:13920;;3608:228;;3565:543;3891:4;-1:-1:-1;;;;;465:13920:51;3870:26;465:13920;;3941:39;;;:::i;3866:232::-;4044:39;;;:::i;3454:63::-;3494:12;-1:-1:-1;;;;;3494:12:51:o;465:13920::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;9660:1064::-;;465:13920;;;;;;9787:13;9779:21;9787:13;;-1:-1:-1;;;;;9871:5:51;465:13920;;;;;9887:4;465:13920;;;;9851:50;;465:13920;;9851:50;:::i;:::-;9992:4;9999:8;9992:4;;9972:10;9999:8;;:::i;:::-;10060:22;465:13920;;576:8;;;;;;;10060:22;;;;;;465:13920;10060:22;;;;;;;465:13920;10060:22;;;9775:943;10169:14;9972:10;;;10169:14;;:::i;:::-;10211:15;:::o;10060:22::-;;;465:13920;10060:22;;465:13920;10060:22;;;;;;576:8;10060:22;;;:::i;:::-;;;576:8;;;;10169:14;576:8;;10060:22;;;;;;-1:-1:-1;10060:22:51;;9775:943;465:13920;;;;10272:5;-1:-1:-1;;;;;465:13920:51;;10400:20;;10341:6;465:13920;10334:4;10314:10;465:13920;10341:6;:::i;:::-;465:13920;;576:8;;;;;;;;10400:20;;;;;465:13920;10400:20;;;;;;;465:13920;10400:20;;;9775:943;-1:-1:-1;465:13920:51;;-1:-1:-1;;;10474:52:51;;10314:10;10400:20;10474:52;;465:13920;10489:4;-1:-1:-1;;;;;465:13920:51;;;;10400:20;465:13920;;10474:52;;;;;;;465:13920;10474:52;;;9775:943;10314:10;10400:20;10314:10;10587:14;465:13920;10314:10;;10587:14;;:::i;:::-;465:13920;;-1:-1:-1;;;10623:52:51;;10314:10;10400:20;10623:52;;465:13920;;;;;;10623:52;;;;;;465:13920;10623:52;;;9775:943;10623:84;;;;:::i;:52::-;;465:13920;10623:52;;465:13920;10623:52;;;;;;576:8;10623:52;;;:::i;:::-;;;576:8;;;;10623:84;576:8;;10623:52;;;;;-1:-1:-1;10623:52:51;;10474;;;;465:13920;10474:52;;465:13920;10474:52;;;;;;576:8;10474:52;;;:::i;:::-;;;576:8;;;;;;10400:20;10474:52;;;;;-1:-1:-1;10474:52:51;;10400:20;;;465:13920;10400:20;;465:13920;10400:20;;;;;;576:8;10400:20;;;:::i;:::-;;;576:8;;;;;10400:20;;;;;;-1:-1:-1;10400:20:51;;8435:1121;;465:13920;;;;;;8562:13;8554:21;8562:13;;-1:-1:-1;;;;;8661:5:51;465:13920;;;;;8886:8;;8646:4;465:13920;;;;8626:50;;465:13920;;8626:50;:::i;:::-;8766:4;;;8773:8;8766:4;;8746:10;8773:8;;:::i;:::-;8886;:::i;:::-;465:13920;;-1:-1:-1;;;8948:20:51;;;;;465:13920;;;;;;8948:20;465:13920;-1:-1:-1;576:8:51;8948:20;;;;;;;465:13920;8948:20;;;9057:14;8746:10;;;9057:14;;:::i;8550:1000::-;9161:4;-1:-1:-1;;;;;465:13920:51;9229:6;9222:4;;9202:10;465:13920;9229:6;:::i;:::-;9315:5;-1:-1:-1;;;;;465:13920:51;;9323:6;;465:13920;;;;9323:6;:::i;:::-;465:13920;;576:8;;;;9369:18;;;;;465:13920;;9369:18;;;465:13920;9369:18;;;;;;;;465:13920;9369:18;;;8550:1000;9202:10;;9476:14;9202:10;;9476:14;;:::i;9369:18::-;;;;465:13920;9369:18;;465:13920;9369:18;;;;;;576:8;9369:18;;;:::i;:::-;;;576:8;;;;;;9476:14;9369:18;;;;;-1:-1:-1;9369:18:51;;7257:1074;;7401:4;-1:-1:-1;;;;;465:13920:51;;;;;;;;7429:13;7421:21;7429:13;;7509:5;-1:-1:-1;;;;;465:13920:51;;7477:47;;465:13920;7477:47;:::i;:::-;465:13920;;-1:-1:-1;;;7584:40:51;;465:13920;;;;7584:40;465:13920;7584:40;465:13920;;7584:13;-1:-1:-1;;;;;465:13920:51;7584:40;;;;;;;465:13920;7584:40;;;7417:908;7682:18;;;;;;:::i;:::-;465:13920;;576:8;;;;7740:30;;7584:40;7740:30;;465:13920;7584:40;7740:30;;;465:13920;7740:30;;;;;;;;465:13920;7740:30;;;7859:14;7846:10;;;7859:14;;:::i;7584:40::-;;;;;;;;;;;;;;;576:8;7584:40;;;:::i;:::-;;;576:8;;;;;;;7682:18;7584:40;;;;;-1:-1:-1;7584:40:51;;7417:908;465:13920;;-1:-1:-1;;;7977:38:51;;465:13920;7977:38;;465:13920;;7977:38;;465:13920;;7977:13;-1:-1:-1;;;;;465:13920:51;7977:38;;;;;;;465:13920;7977:38;;;7417:908;-1:-1:-1;8065:5:51;-1:-1:-1;;;;;465:13920:51;;8073:18;;465:13920;;;;8073:18;:::i;7977:38::-;;;;;;;;;;;;;;576:8;7977:38;;;:::i;:::-;;;576:8;;;;;7977:38;;;;;;;-1:-1:-1;7977:38:51;;6377:777;;465:13920;;;;;;6502:13;6494:21;6502:13;;6582:4;-1:-1:-1;;;;;465:13920:51;6550:46;;465:13920;6550:46;:::i;:::-;465:13920;;-1:-1:-1;;;6610:40:51;;465:13920;;;;6610:40;465:13920;6610:40;465:13920;;6610:13;-1:-1:-1;;;;;465:13920:51;6610:40;;;;;;;;6720:6;6707:10;;;6720:6;;:::i;6610:40::-;;;;;;;;;;;576:8;6610:40;;;:::i;:::-;;;576:8;;;;6720:6;;-1:-1:-1;6610:40:51;;;;;-1:-1:-1;6610:40:51;;6490:658;465:13920;;-1:-1:-1;;;6812:38:51;;465:13920;6812:38;;465:13920;;6812:38;;465:13920;;6812:13;-1:-1:-1;;;;;465:13920:51;6812:38;;;;;;;465:13920;6812:38;;;-1:-1:-1;465:13920:51;;-1:-1:-1;;;6904:52:51;;6944:10;6812:38;6904:52;;465:13920;6919:4;-1:-1:-1;;;;;465:13920:51;;6812:38;465:13920;6904:52;465:13920;;6904:52;;;;;;;465:13920;6904:52;;;6944:10;6904:52;6944:10;7017:14;6812:38;6944:10;;7017:14;;:::i;12248:1324::-;465:13920;;;;;:::i;:::-;-1:-1:-1;465:13920:51;;;;;;;;-1:-1:-1;;;;;465:13920:51;12472:23;;;-1:-1:-1;;;;;;465:13920:51;;;12535:4;465:13920;;;12515:25;465:13920;;12597:112;;;576:8;12597:112;:::i;:::-;465:13920;;;;;;:::i;:::-;;;576:8;12567:188;;;465:13920;12560:195;:::o;12511:693::-;12812:104;;;576:8;12812:104;:::i;:::-;13045:25;576:8;465:13920;;;;;;;13096:25;;12971:172;13096:25;;:::i;:::-;12971:172;;:::i;12468:1098::-;465:13920;;;13245:4;-1:-1:-1;;;;;465:13920:51;13224:26;465:13920;;-1:-1:-1;465:13920:51;;13299:58;;576:8;13299:58;:::i;13220:346::-;13459:58;;576:8;13459:58;:::i;12248:1324::-;;;;;;465:13920;;;;;:::i;:::-;-1:-1:-1;465:13920:51;;;;;;;;-1:-1:-1;;;;;465:13920:51;12472:23;;;-1:-1:-1;;;;;;465:13920:51;;;12535:4;465:13920;;;12515:25;465:13920;;12597:112;;;;:::i;:::-;465:13920;;;;;;;:::i;:::-;;;12567:188;;;465:13920;12560:195;:::o;12511:693::-;12812:104;13096:25;12812:104;13045:25;12812:104;;12971:172;12812:104;;;:::i;:::-;13045:25;;;;:::i;:::-;13096;;:::i;12468:1098::-;13245:4;-1:-1:-1;;;;;465:13920:51;13224:26;465:13920;;-1:-1:-1;465:13920:51;;-1:-1:-1;465:13920:51;13299:58;;;;:::i;13220:346::-;13459:58;;;;:::i;10847:334::-;;11033:22;;11029:74;;11120:33;;11119:55;11120:33;;:::i;:::-;11119:55;:::i;11029:74::-;11071:21;;;:::o;1702:188:32:-;465:13920:51;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;465:13920:51;;;1829:53:32;;;465:13920:51;;;;;;;;;;;;;;;;;1829:53:32;;;;;;;465:13920:51;1829:53:32;:::i;:::-;;:::i;:::-;1702:188::o;1303:160::-;465:13920:51;;-1:-1:-1;;;1412:43:32;;;;-1:-1:-1;;;;;465:13920:51;;;;1412:43:32;;;465:13920:51;;;;;;;;;1412:43:32;;;;;;465:13920:51;;1412:43:32;:::i;13645:738:51:-;-1:-1:-1;;;;;465:13920:51;;;13859:4;465:13920;;;13839:25;465:13920;;;;-1:-1:-1;;;13891:39:51;;;;;465:13920;;;;;;13891:39;465:13920;13891:13;-1:-1:-1;;;;;465:13920:51;13891:39;;;;;;;465:13920;13891:39;;;13884:46;;:::o;13891:39::-;;;465:13920;13891:39;;465:13920;13891:39;;;;;;576:8;13891:39;;;:::i;:::-;;;576:8;;;;;13884:46;:::o;13891:39::-;;;-1:-1:-1;13891:39:51;;13835:310;465:13920;;-1:-1:-1;;;14018:39:51;;;;;465:13920;;;;14018:13;-1:-1:-1;;;;;465:13920:51;;;;14018:39;465:13920;;14018:39;;;;;;465:13920;14018:39;;;13835:310;465:13920;;;14018:39;465:13920;;576:8;;;;;;;14082:48;;14018:39;14082:48;;465:13920;14082:48;;;;;;;465:13920;14082:48;;;14075:55;;:::o;14018:39::-;;465:13920;14018:39;;465:13920;14018:39;;;;;;576:8;14018:39;;;:::i;:::-;;;576:8;;;;465:13920;576:8;;14018:39;;;;;-1:-1:-1;14018:39:51;;13645:738;-1:-1:-1;;;;;465:13920:51;13796:23;;;-1:-1:-1;;;;;;465:13920:51;;;13859:4;465:13920;;;13839:25;465:13920;;;;-1:-1:-1;;;13891:39:51;;;;;465:13920;;;;;;13891:39;465:13920;13891:13;-1:-1:-1;;;;;465:13920:51;13891:39;;;;;;;465:13920;13891:39;;;13884:46;;:::o;13792:585::-;14186:4;-1:-1:-1;;;;;465:13920:51;14165:26;465:13920;;-1:-1:-1;465:13920:51;;;;-1:-1:-1;;;14240:31:51;;;;;465:13920;;;;;;14240:31;465:13920;14240:5;-1:-1:-1;;;;;465:13920:51;14240:31;;;;;;;465:13920;14240:31;;;14233:38;;:::o;14161:216::-;465:13920;;-1:-1:-1;;;14335:31:51;;;;;465:13920;;;;;;14335:31;465:13920;14335:5;-1:-1:-1;;;;;465:13920:51;14335:31;;;;;;;465:13920;14335:31;;;14328:38;;:::o;2081:225:32:-;465:13920:51;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;465:13920:51;-1:-1:-1;;;;;465:13920:51;;;;;;;;;;;;;;;;2200:39:32;465:13920:51;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;;2081:225;2278:20;3411:47;2278:20;3411:47;2278:20;-1:-1:-1;2278:20:32;;;;:::i;:::-;465:13920:51;;-1:-1:-1;;;465:13920:51;3411:47:32;;;;;-1:-1:-1;;;;;465:13920:51;;;;3411:47:32;;465:13920:51;;;;;;;;;;;;;;;;3411:47:32;;465:13920:51;;3411:47:32;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;465:13920:51;;;576:8;;;;465:13920;3561:43:32;;;465:13920:51;3561:43:32;;465:13920:51;-1:-1:-1;2200:39:32;465:13920:51;;;2200:39:32;3561:43;;;;;;:::i;:::-;;;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;465:13920:51;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;465:13920:51;8104:30:32;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;465:13920:51;2200:39:32;;465:13920:51;2200:39:32;;;;;;576:8:51;2200:39:32;;;:::i;:::-;;;576:8:51;;;;;3411:47:32;2200:39;;;;;-1:-1:-1;2200:39:32;;11636:312:51;;;;11814:21;;11810:60;;11886:55;11887:34;;;;:::i;11810:60::-;11851:8;;;465:13920;11851:8;:::o;11252:313::-;11430:22;;11426:61;;11503:55;11504:33;;;;:::i;465:13920::-;;;;;;;;;;;;;;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;465:13920:51;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;465:13920:51;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;465:13920:51;;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;465:13920:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;465:13920:51;;;;;:::i;:::-;;;;-1:-1:-1;465:13920:51;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;465:13920:51;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;465:13920:51;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;465:13920:51;;;;4917:24:33;465:13920:51;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"62281":[{"start":206,"length":32},{"start":490,"length":32},{"start":1480,"length":32},{"start":2259,"length":32},{"start":3726,"length":32},{"start":3941,"length":32},{"start":4370,"length":32},{"start":4590,"length":32},{"start":4816,"length":32},{"start":5156,"length":32},{"start":6947,"length":32},{"start":7035,"length":32}],"62284":[{"start":154,"length":32},{"start":719,"length":32},{"start":1317,"length":32},{"start":1379,"length":32},{"start":1857,"length":32},{"start":2013,"length":32},{"start":2075,"length":32},{"start":2392,"length":32},{"start":2454,"length":32},{"start":3205,"length":32},{"start":3371,"length":32},{"start":3566,"length":32},{"start":3764,"length":32},{"start":4058,"length":32},{"start":4412,"length":32},{"start":4536,"length":32},{"start":4757,"length":32},{"start":5281,"length":32},{"start":5575,"length":32},{"start":5705,"length":32},{"start":5857,"length":32},{"start":5996,"length":32},{"start":6107,"length":32},{"start":6355,"length":32},{"start":6741,"length":32},{"start":6870,"length":32}],"62287":[{"start":640,"length":32},{"start":2747,"length":32},{"start":3292,"length":32},{"start":4893,"length":32},{"start":5097,"length":32},{"start":5357,"length":32},{"start":5498,"length":32},{"start":6423,"length":32},{"start":6552,"length":32},{"start":6809,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_weEth\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract supports the following swaps: ETH->eETH, weETH<->eETH, ETH->weETH\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"Etherfi Adapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/etherfi/EtherfiAdapter.sol\":\"EtherfiAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/etherfi/EtherfiAdapter.sol\":{\"keccak256\":\"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0\",\"dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_weEth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/etherfi/EtherfiAdapter.sol":"EtherfiAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/etherfi/EtherfiAdapter.sol":{"keccak256":"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b","urls":["bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0","dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":51} \ No newline at end of file diff --git a/evm/out/EtherfiAdapter.sol/ILiquidityPool.json b/evm/out/EtherfiAdapter.sol/ILiquidityPool.json deleted file mode 100644 index 9607220..0000000 --- a/evm/out/EtherfiAdapter.sol/ILiquidityPool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"amountForShare","inputs":[{"name":"_share","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"_referral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_referral","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getTotalEtherClaimOf","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalPooledEther","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"numPendingDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"requestWithdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"sharesForAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sharesForWithdrawalAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalValueInLp","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"totalValueOutOfLp","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"amountForShare(uint256)":"561bddf8","deposit()":"d0e30db0","deposit(address)":"f340fa01","deposit(address,address)":"f9609f08","getTotalEtherClaimOf(address)":"51199700","getTotalPooledEther()":"37cfdaca","numPendingDeposits()":"e4537934","requestWithdraw(address,uint256)":"397a1b28","sharesForAmount(uint256)":"3a53acb0","sharesForWithdrawalAmount(uint256)":"917266fa","totalValueInLp()":"7c90fbf0","totalValueOutOfLp()":"456a23a6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_share\",\"type\":\"uint256\"}],\"name\":\"amountForShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_referral\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_referral\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getTotalEtherClaimOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalPooledEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numPendingDeposits\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"requestWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sharesForAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sharesForWithdrawalAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalValueInLp\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalValueOutOfLp\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/etherfi/EtherfiAdapter.sol\":\"ILiquidityPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/etherfi/EtherfiAdapter.sol\":{\"keccak256\":\"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0\",\"dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_share","type":"uint256"}],"stateMutability":"view","type":"function","name":"amountForShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_referral","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_referral","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalEtherClaimOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalPooledEther","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numPendingDeposits","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"requestWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"sharesForAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"sharesForWithdrawalAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalValueInLp","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalValueOutOfLp","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/etherfi/EtherfiAdapter.sol":"ILiquidityPool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/etherfi/EtherfiAdapter.sol":{"keccak256":"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b","urls":["bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0","dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":51} \ No newline at end of file diff --git a/evm/out/EtherfiAdapter.sol/IWeEth.json b/evm/out/EtherfiAdapter.sol/IWeEth.json deleted file mode 100644 index 019dc8a..0000000 --- a/evm/out/EtherfiAdapter.sol/IWeEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"eETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IeEth"}],"stateMutability":"view"},{"type":"function","name":"getEETHByWeETH","inputs":[{"name":"_weETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getWeETHByeETH","inputs":[{"name":"_eETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"_weETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"wrap","inputs":[{"name":"_eETHAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"eETH()":"0de371e2","getEETHByWeETH(uint256)":"94626044","getWeETHByeETH(uint256)":"d044fe9b","unwrap(uint256)":"de0e9a3e","wrap(uint256)":"ea598cb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"eETH\",\"outputs\":[{\"internalType\":\"contract IeEth\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weETHAmount\",\"type\":\"uint256\"}],\"name\":\"getEETHByWeETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eETHAmount\",\"type\":\"uint256\"}],\"name\":\"getWeETHByeETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weETHAmount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eETHAmount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/etherfi/EtherfiAdapter.sol\":\"IWeEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/etherfi/EtherfiAdapter.sol\":{\"keccak256\":\"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0\",\"dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"eETH","outputs":[{"internalType":"contract IeEth","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_weETHAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEETHByWeETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_eETHAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getWeETHByeETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_weETHAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_eETHAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/etherfi/EtherfiAdapter.sol":"IWeEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/etherfi/EtherfiAdapter.sol":{"keccak256":"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b","urls":["bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0","dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":51} \ No newline at end of file diff --git a/evm/out/EtherfiAdapter.sol/IeEth.json b/evm/out/EtherfiAdapter.sol/IeEth.json deleted file mode 100644 index b99778b..0000000 --- a/evm/out/EtherfiAdapter.sol/IeEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"liquidityPool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILiquidityPool"}],"stateMutability":"view"},{"type":"function","name":"shares","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"liquidityPool()":"665a11ca","shares(address)":"ce7c2ac2","totalShares()":"3a98ef39"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"liquidityPool\",\"outputs\":[{\"internalType\":\"contract ILiquidityPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/etherfi/EtherfiAdapter.sol\":\"IeEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/etherfi/EtherfiAdapter.sol\":{\"keccak256\":\"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0\",\"dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"liquidityPool","outputs":[{"internalType":"contract ILiquidityPool","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/etherfi/EtherfiAdapter.sol":"IeEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/etherfi/EtherfiAdapter.sol":{"keccak256":"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b","urls":["bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0","dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":51} \ No newline at end of file diff --git a/evm/out/EtherfiAdapter.t.sol/EtherfiAdapterTest.json b/evm/out/EtherfiAdapter.t.sol/EtherfiAdapterTest.json deleted file mode 100644 index 22c1f16..0000000 --- a/evm/out/EtherfiAdapter.t.sol/EtherfiAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesEtherfi","inputs":[{"name":"pair","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetLimitsEtherfi","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetTokensEtherfi","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testPriceFuzzEtherfi","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testSwapBuyIncreasingEtherfi","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzEtherfiEethWeEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzEtherfiEthEeth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzEtherfiEthWeEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzEtherfiWeEthEeth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasingEtherfi","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234605457600160ff19600c541617600c55600160ff19601e541617601e5573cd5fe23c85820f7b72d0926fc9b05b43e359b7ee60018060a01b0319601f541617601f556176d090816100598239f35b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c9081630a9254e4146139b4575080631d279786146135eb5780631ed7831c1461356d57806323faaaa914612d675780632ade388014612ba85780633e5e3c2314612b2a5780633f7286f414612aac57806348b4e4181461225357806366d9a9a0146120a5578063796f2c7514611d8e5780637f6f69f414611c67578063821a7e72146115e557806385226c8114611553578063916a17c6146112c7578063a9f992f014610dce578063b5508aa914610d35578063ba414fa614610d10578063c307553a14610c0a578063c6549c14146102c6578063d25f701e146101c9578063e20c9f711461013b5763fa7626d40361000f5734610138578060031936011261013857602060ff601e54166040519015158152f35b80fd5b503461013857806003193601126101385760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101aa576101a68561019a81870382613e76565b60405191829182613ccc565b0390f35b82546001600160a01b0316845260209093019260019283019201610183565b5034610138578060031936011261013857601e54602054601f5460405163549387df60e11b8152600481018590526001600160a01b03928316602482015290821660448201528392909183918391606491839160089190911c165afa9081156102965782916102a4575b50515f51602061767b5f395f51905f523b156102a1576040519063260a5b1560e21b825260048201526002602482015281816044815f51602061767b5f395f51905f525afa8015610296576102855750f35b8161028f91613e76565b6101385780f35b6040513d84823e3d90fd5b50fd5b6102c091503d8084833e6102b88183613e76565b810190613f3a565b5f610233565b5034610138578060031936011261013857610ca06040516102e78282613e76565b60648152601f19820180366020840137670de0b6b3a764000061030983613fb3565b5260015b60648110610bc557506103236040519384613e76565b60648352835b818110610b8957505060015b606481106103c057505060015b6063811061034e578280f35b6103588183613fe4565b515160018201908183116103ac57816103836103a69261037b6001969588613fe4565b5151906144be565b602061039d816103938689613fe4565b5101519287613fe4565b510151906144be565b01610342565b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f51602061767b5f395f51905f525af1918215610801578592610b56575b50601f546001600160a01b031661047661040d8386613fe4565b5191878060405160208101906370a0823160e01b825230602482015260248152610438604482613e76565b5190845afa5061045861044961455c565b60208082518301019101613f14565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610b42576001810180600e55811015610b2e57600e8752307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105488926001600160a01b03169160e01b6104f26145a2565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906105448161053688888661458b565b03601f198101835282613e76565b519020865260205260ff60036040872001541615610b20575b6001600160a01b0384165f908152600d60205260409020908552602052610536610596604086209360405192839160208301958661458b565b51902083526020526040822060018101549360028201546105b78187614141565b6109b1575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061767b5f395f51905f525afa9788156109a657879861096a575b506001908201610100031b5f1901811b198716915f51602061767b5f395f51905f523b15610966576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061767b5f395f51905f525af190811561080157859161094d575b505061069061475e565b919015918215610942575b505061086157505050506106ad615256565b601f54601e546107099160209160081c6001600160a01b0390811691166106d48588613fe4565b5160405163095ea7b360e01b81526001600160a01b0390931660048401526024830152909283919082908a9082906044820190565b03925af1801561083a57610845575b50601e54601f546020546001600160a01b0391821692608092899260089290921c8116911682610748878a613fe4565b519561076a60405197889687958694638307c65560e01b8652600486016140d1565b03925af190811561083a57869161080c575b506107878286613fe4565b526107928185613fe4565b5060405191631135fc2960e21b83526004830152602082602481885f51602061767b5f395f51905f525af1918215610801576001926107d3575b5001610335565b6107f39060203d81116107fa575b6107eb8183613e76565b810190614129565b505f6107cc565b503d6107e1565b6040513d87823e3d90fd5b61082d915060803d8111610833575b6108258183613e76565b810190614020565b5f61077c565b503d61081b565b6040513d88823e3d90fd5b61085c9060203d81116107fa576107eb8183613e76565b610718565b82945054905f51602061767b5f395f51905f523b1561093e576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061767b5f395f51905f525af1801561029657610929575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610934828092613e76565b61013857806108c8565b8280fd5b141590505f8061069b565b8161095791613e76565b61096257835f610686565b8380fd5b8680fd5b965096506020863d821161099e575b8161098660209383613e76565b8101031261099a579451958b959081610609565b5f80fd5b3d9150610979565b6040513d89823e3d90fd5b90919293506109c08186614141565b610100036101008111610b0c5760ff8111610b0c5760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061767b5f395f51905f525afa928315610aff5760209382606a92610aa19492610adb575b506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613e76565b831015610ab3575090899392916105bc565b60405162461bcd60e51b815260206004820152908190610ad7906024830190613d0e565b0390fd5b610af89192503d8084833e610af08183613e76565b810190613eb2565b905f610a1c565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610b2861497a565b5061055d565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b9091506020813d8211610b81575b81610b7160209383613e76565b8101031261099a5751905f6103f3565b3d9150610b64565b602090604051610b9881613e5b565b8681528683820152604051610bac81613e40565b8781528784820152604082015282828701015201610329565b80670de0b6b3a764000002670de0b6b3a764000081048203610bf65790600191610bef8286613fe4565b520161030d565b634e487b7160e01b86526011600452602486fd5b5034610138578060031936011261013857601e5460405163ecbbc03360e01b8152600481018390529082908290602490829060081c6001600160a01b03165afa8015610296578290610c65575b610c629150516143d0565b80f35b503d8083833e610c758183613e76565b81019060208183031261093e578051906001600160401b03821161096257019080601f8301121561093e57815190610cac82613f23565b92610cba6040519485613e76565b82845260208085019360051b820101918211610d0c57602001915b818310610ce857505050610c6290610c57565b82516001600160a01b0381168103610d0857815260209283019201610cd5565b8580fd5b8480fd5b50346101385780600319360112610138576020610d2b614207565b6040519015158152f35b5034610138578060031936011261013857601954610d5281613f23565b91610d606040519384613e76565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610da257604051806101a68782613de1565b600160208192604051610dc081610db98189614186565b0382613e76565b815201920192019190610d8d565b503461013857610ddd36613cad565b156112c15760015b60018060a01b036020541660018060a01b03601e5460081c169160405163549387df60e11b81528560048201528560248201528260448201528581606481875afa90811561083a5786916112a7575b5060028210156112935785906001831494855f146111ff5750610e5690613fd4565b518510806111f5575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa8015610296576111dc575b5050601e546040516318160ddd60e01b81529060081c6001600160a01b0316602082600481875afa9081156109a65787916111a6575b610ee89250614373565b601e546040516370a0823160e01b815230600482015260089190911c6001600160a01b031680319491939190602085602481865afa93841561119b5787958995611161575b5094608091610f54968a604051809981958294638307c65560e01b84528a60048501614059565b03925af19384156109a6578794611140575b508351610f71578680f35b156110a1576040516370a0823160e01b8152306004820152602081602481855afa80156109a6578391889161106a575b50610fb591610faf91614108565b8661446f565b6001198501948511610bf6576020602491604051928380926370a0823160e01b82523060048301525afa90811561083a578691611030575b5061102694611003611020949361100993614108565b906144be565b519160018060a01b03601e5460081c163190614108565b90614420565b5f80808080808680f35b929190506020833d602011611062575b8161104d60209383613e76565b8101031261099a579151909190611026610fed565b3d9150611040565b9150506020813d602011611099575b8161108660209383613e76565b8101031261099a57518290610fb5610fa1565b3d9150611079565b92916110c56020929561102060249560018060a01b03601e5460081c163190614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491611101575b506110fc9261102091614108565b611026565b90506020813d60201161112d575b8161111c60209383613e76565b8101031261099a57516110fc6110ee565b3d915061110f565b6040513d86823e3d90fd5b61115a91945060803d608011610833576108258183613e76565b925f610f66565b955093506020853d602011611193575b8161117e60209383613e76565b8101031261099a579351869490936080610f2d565b3d9150611171565b6040513d8a823e3d90fd5b90506020823d6020116111d4575b816111c160209383613e76565b8101031261099a57610ee8915190610ede565b3d91506111b4565b816111e691613e76565b610d0c57845f610ea8565b5080fd5b50600a8511610e5f565b915061120a90613fb3565b51851080611289575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b815290151560048201528680826024815f51602061767b5f395f51905f525afa918215610aff578792611270575b505061126b91614373565b610ee8565b8192509061127d91613e76565b610d085784865f611260565b50600a8511611213565b634e487b7160e01b86526021600452602486fd5b6112bb91503d8088833e6102b88183613e76565b5f610e34565b81610de5565b5034610138578060031936011261013857601c546112e481613f23565b906112f26040519283613e76565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061133557604051806101a68782613d32565b60405161134181613e40565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106114b457846001979460029794602097946113cc945491818110611498575b81811061147c575b818110611460575b818110611444575b818110611428575b81811061140c575b8181106113f2575b106113de575b500382613e76565b83820152815201920192019190611320565b6001600160e01b031916815286015f6113c4565b828a1b6001600160e01b0319168452928901928b016113be565b604083901b6001600160e01b0319168452928901928b016113b6565b606083901b6001600160e01b0319168452928901928b016113ae565b608083901b6001600160e01b0319168452928901928b016113a6565b60a083901b6001600160e01b0319168452928901928b0161139e565b60c083901b6001600160e01b0319168452928901928b01611396565b60e083901b6001600160e01b0319168452928901928b0161138e565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611369565b5034610138578060031936011261013857601a5461157081613f23565b9161157e6040519384613e76565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106115c057604051806101a68782613de1565b6001602081926040516115d781610db98189614186565b8152019201920191906115ab565b5034610138578060031936011261013857610ca06040516116068282613e76565b60648152601f19820180366020840137670de0b6b3a764000061162883613fb3565b5260015b60648110611c3657506116426040519384613e76565b60648352835b818110611bfa57505060015b606481106116a057505060015b6063811061166d578280f35b6116778183613fe4565b515160018201908183116103ac578161038361169a9261037b6001969588613fe4565b01611661565b604051634b88b8ad60e11b815290602082600481885f51602061767b5f395f51905f525af1918215610801578592611bc7575b50601f546001600160a01b03166116ed61040d8386613fe4565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610b42576001810180600e55811015610b2e57600e8752307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105488926001600160a01b03169160e01b6117696145a2565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906117ad8161053688888661458b565b519020865260205260ff60036040872001541615611bb9575b6001600160a01b0384165f908152600d602052604090209085526020526105366117ff604086209360405192839160208301958661458b565b51902083526020526040822060018101549360028201546118208187614141565b611ab8575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061767b5f395f51905f525afa9788156109a6578798611a80575b506001908201610100031b5f1901811b198716915f51602061767b5f395f51905f523b15610966576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061767b5f395f51905f525af1908115610801578591611a6b575b50506118f961475e565b919015918215611a60575b50506108615750505050611916615256565b601f54601e5461193d9160209160081c6001600160a01b0390811691166106d48588613fe4565b03925af1801561083a57611a44575b50601e54601f546020546001600160a01b039182169260809260019260089290921c811691168961197d878a613fe4565b519561199f60405197889687958694638307c65560e01b8652600486016140d1565b03925af190811561083a578691611a26575b506119bc8286613fe4565b526119c78185613fe4565b5060405191631135fc2960e21b83526004830152602082602481885f51602061767b5f395f51905f525af191821561080157600192611a08575b5001611654565b611a1f9060203d81116107fa576107eb8183613e76565b505f611a01565b611a3e915060803d8111610833576108258183613e76565b5f6119b1565b611a5b9060203d81116107fa576107eb8183613e76565b61194c565b141590505f80611904565b81611a7591613e76565b61096257835f6118ef565b965096506020863d8211611ab0575b81611a9c60209383613e76565b8101031261099a579451958b959081611872565b3d9150611a8f565b9091929350611ac78186614141565b610100036101008111610b0c5760ff8111610b0c5760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061767b5f395f51905f525afa928315610aff5760209382606a92611ba79492610adb57506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613e76565b831015610ab357509089939291611825565b611bc161497a565b506117c6565b9091506020813d8211611bf2575b81611be260209383613e76565b8101031261099a5751905f6116d3565b3d9150611bd5565b602090604051611c0981613e5b565b8681528683820152604051611c1d81613e40565b8781528784820152604082015282828701015201611648565b80670de0b6b3a764000002670de0b6b3a764000081048203610bf65790600191611c608286613fe4565b520161162c565b5034610138576060366003190112610138576024356001600160a01b038116908190036111f157816044356001600160a01b038116908190036111f157606460018060a01b03601e5460081c169360405194859384926348bd7dfd60e01b84526004356004850152602484015260448301525afa8015610296578290611cf257610c629150516143d0565b503d8083833e611d028183613e76565b81019060208183031261093e578051906001600160401b03821161096257019080601f8301121561093e57815190611d3982613f23565b92611d476040519485613e76565b82845260208085019360051b820101918211610d0c57602001915b818310611d7557505050610c6290610c57565b8251600a811015610d0857815260209283019201611d62565b503461013857604036600319011261013857601e54601f5460205460405163549387df60e11b815260048181018690526001600160a01b03938416602483810182905293851660448401819052969560081c9094169390359290919035908581606481885afa90811561083a57869161208b575b50611e0c81613fb3565b51841080612082575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b8152901515600482015286816024815f51602061767b5f395f51905f525afa80156109a65790879161206d575b5050611e6c90613fd4565b51811080612064575b5f51602061767b5f395f51905f523b15610d0857604051632631f2b160e11b8152901515600482015285816024815f51602061767b5f395f51905f525afa801561083a5790869161204f575b5093915f969391965060405196611ed9606089613e76565b6002885260208801926040368537611ef089613fb3565b52611efa88613fd4565b5260405196879463155adc9160e31b8652608486019287600488015260248701526044860152608060648601525180915260a484019190855b8181106120335750505082809103915afa918215610aff578192611f96575b50805b8251811015611f925780611f75611f6e60019386613fe4565b515161450d565b611f8c6020611f848387613fe4565b51015161450d565b01611f55565b5080f35b9091503d8083833e611fa88183613e76565b81019060208183031261093e578051906001600160401b038211610962570181601f8201121561093e578051611fdd81613f23565b92611feb6040519485613e76565b81845260208085019260061b84010192818411610d0857602001915b8383106120195750505050905f611f52565b60206040916120288486613ff8565b815201920191612007565b8251845287965088955060209384019390920191600101611f33565b8161205991613e76565b610d0c57845f611ec1565b50801515611e75565b8161207791613e76565b610d0857855f611e61565b50831515611e15565b61209f91503d8088833e6102b88183613e76565b5f611e02565b5034610138578060031936011261013857601b546120c281613f23565b906120d06040519283613e76565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b83831061211357604051806101a68782613d32565b60405161211f81613e40565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106121b457846001979460029794602097946121a29454918181106114985781811061147c5781811061146057818110611444578181106114285781811061140c578181106113f257106113de57500382613e76565b838201528152019201920191906120fe565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612147565b50346101385761226236613cad565b15612aa5576001905b60208054601f546040516370a0823160e01b8152306004820152946001600160a01b0391821693929091169185602481865afa94851561083a578695612a71575b50601e5460405163549387df60e11b815260048101889052602481018590526044810184905260089190911c6001600160a01b0316948782606481895afa91821561119b578892612a55575b506002831015612a41579087916001841496875f146128dd575061231b82613fd4565b51811090816128d2575b505f51602061767b5f395f51905f523b1561093e57604051632631f2b160e11b8152901515600482015282816024815f51602061767b5f395f51905f525afa9081156128c75783916128b2575b5050601e546080916123ca916123939060081c6001600160a01b0316614318565b601e5460081c6001600160a01b0316906123ac90613fb3565b51604051948580948193638307c65560e01b83528b600484016140a3565b03925af180156109a657612895575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f1960248201526020816044818a885af180156109a657612876575b505b6040516370a0823160e01b815230600482015291602083602481845afa9283156109a6578793612842575b506040516370a0823160e01b815230600482015294602086602481885afa95861561119b57889661280a575b50612482869760809697614108565b601e54604051638307c65560e01b8152969194879160081c6001600160a01b03169082908c9082906124bb908a908a8f600486016140d1565b03925af194851561119b5788956127e9575b5084516124d8578780f35b1561267c576040516370a0823160e01b8152306004820152602081602481855afa801561119b5784918991612645575b5061251c9161251691614108565b8361446f565b6001198201918211612631576020602491604051928380926370a0823160e01b82523060048301525afa9081156109a65787916125fd575b506125629261100391614108565b516001198101919082116125e9576020602491604051928380926370a0823160e01b82523060048301525afa9081156111355784916125b5575b50611003906125aa93614108565b5f8080808080808780f35b90506020813d6020116125e1575b816125d060209383613e76565b8101031261099a57516125aa61259c565b3d91506125c3565b634e487b7160e01b84526011600452602484fd5b90506020813d602011612629575b8161261860209383613e76565b8101031261099a5751612562612554565b3d915061260b565b634e487b7160e01b87526011600452602487fd5b9150506020813d602011612674575b8161266160209383613e76565b8101031261099a5751839061251c612508565b3d9150612654565b936020602491604097949751928380926370a0823160e01b82523060048301525afa9081156109a65787916127b5575b50611020906126ba93614108565b805160011981019081116103ac576040516370a0823160e01b8152306004820152602081602481875afa801561083a578591879161277d575b506020926110036024959361270793614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491612749575b506127449261273e91614108565b9061446f565b6125aa565b90506020813d602011612775575b8161276460209383613e76565b8101031261099a5751612744612730565b3d9150612757565b939150506020833d6020116127ad575b8161279a60209383613e76565b8101031261099a579151849060206126f3565b3d915061278d565b90506020813d6020116127e1575b816127d060209383613e76565b8101031261099a57516126ba6126ac565b3d91506127c3565b61280391955060803d608011610833576108258183613e76565b935f6124cd565b9495506020853d60201161283a575b8161282660209383613e76565b8101031261099a5793519493612482612473565b3d9150612819565b9092506020813d60201161286e575b8161285e60209383613e76565b8101031261099a5751915f612447565b3d9150612851565b61288e9060203d6020116107fa576107eb8183613e76565b505f61241a565b6128ad9060803d608011610833576108258183613e76565b6123d9565b816128bc91613e76565b6111f157815f612372565b6040513d85823e3d90fd5b60649150115f612325565b916128ea90939193613fb3565b51831080612a37575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa801561029657612a1e575b5050612947906142a2565b601e54604051638307c65560e01b81529190608090839060081c6001600160a01b0316818b8161297b878c600484016140a3565b03925af190811561119b576129cb92602092612a01575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b03166004820152602481019190915291829081906044820190565b03818a885af180156109a6576129e2575b5061241c565b6129fa9060203d6020116107fa576107eb8183613e76565b505f6129dc565b612a199060803d608011610833576108258183613e76565b612992565b81612a2891613e76565b612a3357875f61293c565b8780fd5b50606483116128f3565b634e487b7160e01b88526021600452602488fd5b612a6a9192503d808a833e6102b88183613e76565b905f6122f8565b9094506020813d602011612a9d575b81612a8d60209383613e76565b8101031261099a5751935f6122ac565b3d9150612a80565b819061226b565b503461013857806003193601126101385760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612b0b576101a68561019a81870382613e76565b82546001600160a01b0316845260209093019260019283019201612af4565b503461013857806003193601126101385760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612b89576101a68561019a81870382613e76565b82546001600160a01b0316845260209093019260019283019201612b72565b5034610138578060031936011261013857601d54612bc581613f23565b612bd26040519182613e76565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612cd65786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612c3e5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612cab57505050505060208060019297019301930190928695949293612c31565b9091929394602080612cc9600193605f198782030189528951613d0e565b9701950193929101612c87565b604051612ce281613e40565b82546001600160a01b03168152600183018054612cfe81613f23565b91612d0c6040519384613e76565b8183528a526020808b20908b9084015b838210612d42575050505060019282602092836002950152815201920192019190612c02565b600160208192604051612d5981610db9818a614186565b815201930191019091612d1c565b503461013857612d7636613cad565b156135675760015b602054601f54601e5460405163549387df60e11b8152600481018790526001600160a01b03938416602482018190529284166044820181905294929360089290921c909116908681606481855afa9081156109a657879161354d575b5060028310156135395786906001841492835f146133ed5750612dfc81613fd4565b518710806133e3575b5f51602061767b5f395f51905f523b1561093e57604051632631f2b160e11b8152901515600482015282816024815f51602061767b5f395f51905f525afa9081156128c75783916133ce575b5050601e54608091612e72916123939060081c6001600160a01b0316614318565b03925af180156109a6576133b1575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f1960248201526020816044818a885af180156109a657613392575b505b6040516370a0823160e01b815230600482015293602085602481875afa9485156109a657879561335e575b506040516370a0823160e01b815230600482015291602083602481855afa93841561119b5787938995613325575b50601e54604051638307c65560e01b8152986080928a9260081c6001600160a01b03169183918d918391612f5791908a8e600486016140d1565b03925af196871561119b578897613304575b508651612f74578780f35b1561319d576040516370a0823160e01b8152306004820152602081602481855afa801561119b5784908990613167575b612fae9250614108565b6001198301908382116131535791612fca60209260249461446f565b6040516370a0823160e01b815230600482015292839182905afa9081156109a657879161311f575b506130059261300091614108565b6144be565b6040516370a0823160e01b8152306004820152602081602481855afa80156108015785906130eb575b613039915083614108565b83519060028201809211610bf65791613057602092602495946144be565b6040516370a0823160e01b815230600482015293849182905afa9081156111355784916130b5575b6130899250614108565b90515f198101919082116130a157906125aa9161446f565b634e487b7160e01b83526011600452602483fd5b90506020823d6020116130e3575b816130d060209383613e76565b8101031261099a5761308991519061307f565b3d91506130c3565b506020813d602011613117575b8161310560209383613e76565b8101031261099a57613039905161302e565b3d91506130f8565b90506020813d60201161314b575b8161313a60209383613e76565b8101031261099a5751613005612ff2565b3d915061312d565b634e487b7160e01b89526011600452602489fd5b50506020813d602011613195575b8161318260209383613e76565b8101031261099a5783612fae9151612fa4565b3d9150613175565b9390926040959295516370a0823160e01b8152306004820152602081602481855afa90811561119b5788916132d0575b506131db6131e19184614108565b8561446f565b600119840193841161263157906020602492604051938480926370a0823160e01b82523060048301525afa9182156109a6578792613299575b506024936110036020949361322e93614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491613265575b506127449261102091614108565b90506020813d602011613291575b8161328060209383613e76565b8101031261099a5751612744613257565b3d9150613273565b9291506020833d6020116132c8575b816132b560209383613e76565b8101031261099a5791519091602461321a565b3d91506132a8565b90506020813d6020116132fc575b816132eb60209383613e76565b8101031261099a57516131db6131cd565b3d91506132de565b61331e91975060803d608011610833576108258183613e76565b955f612f69565b935093506020833d602011613356575b8161334260209383613e76565b8101031261099a5760808793519490612f1d565b3d9150613335565b9094506020813d60201161338a575b8161337a60209383613e76565b8101031261099a5751935f612eef565b3d915061336d565b6133aa9060203d6020116107fa576107eb8183613e76565b505f612ec2565b6133c99060803d608011610833576108258183613e76565b612e81565b816133d891613e76565b6111f157815f612e51565b5060648711612e05565b91906133f890613fb3565b5187108061352f575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa80156102965761351a575b5050613455906142a2565b601e54604051638307c65560e01b815290608090829060081c6001600160a01b0316818a816134888c8b600484016140a3565b03925af180156109a6576134fd575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b03166004820152602481018690526020816044818a885af180156109a6576134de575b50612ec4565b6134f69060203d6020116107fa576107eb8183613e76565b505f6134d8565b6135159060803d608011610833576108258183613e76565b613497565b8161352491613e76565b61096657865f61344a565b5060648711613401565b634e487b7160e01b87526021600452602487fd5b61356191503d8089833e6102b88183613e76565b5f612dda565b81612d7e565b503461013857806003193601126101385760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106135cc576101a68561019a81870382613e76565b82546001600160a01b03168452602090930192600192830192016135b5565b5034610138576135fa36613cad565b156139ae5760015b60018060a01b03601f541660018060a01b03601e5460081c169160405163549387df60e11b81528560048201528560248201528260448201528581606481875afa90811561083a578691613994575b5060028210156112935785906001831494855f14613900575061367390613fd4565b518510806138f6575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa8015610296576138e1575b5050601e546040516318160ddd60e01b81529060081c6001600160a01b0316602082600481875afa9081156109a65787916138ab575b6137059250614373565b601e546040516370a0823160e01b815230600482015260089190911c6001600160a01b031680319491939190602085602481865afa93841561119b5787958995613871575b5094608091613771968a604051809981958294638307c65560e01b84528a60048501614059565b03925af19384156109a6578794613850575b50835161378e578680f35b156110a1576040516370a0823160e01b8152306004820152602081602481855afa80156109a65783918891613819575b506137cc91610faf91614108565b6003198501948511610bf6576020602491604051928380926370a0823160e01b82523060048301525afa90811561083a578691611030575061102694611003611020949361100993614108565b9150506020813d602011613848575b8161383560209383613e76565b8101031261099a575182906137cc6137be565b3d9150613828565b61386a91945060803d608011610833576108258183613e76565b925f613783565b955093506020853d6020116138a3575b8161388e60209383613e76565b8101031261099a57935186949093608061374a565b3d9150613881565b90506020823d6020116138d9575b816138c660209383613e76565b8101031261099a576137059151906136fb565b3d91506138b9565b816138eb91613e76565b610d0c57845f6136c5565b50600a851161367c565b915061390b90613fb3565b5185108061398a575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b815290151560048201528680826024815f51602061767b5f395f51905f525afa918215610aff578792613971575b505061396c91614373565b613705565b8192509061397e91613e76565b610d085784865f613961565b50600a8511613914565b6139a891503d8088833e6102b88183613e76565b5f613651565b81613602565b90503461099a575f36600319011261099a5763975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061767b5f395f51905f525afa908115613c0357613a3b916020915f91613c93575b50604051809381926371ee464d60e01b8352604060048401526044830190613d0e565b630125403f602483015203815f5f51602061767b5f395f51905f525af18015613c0357613c64575b50601f54604051906001600160a01b03166121748083016001600160401b03811184821017613c50576020928492615507843981520301905ff08015613c0357601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179055601f546040516306f1b8f160e11b81526001600160a01b039190911690602081600481855afa908115613c03575f91613c0e575b5060018060a01b03166001600160601b0360a01b60205416176020555f51602061767b5f395f51905f523b1561099a57604051906318caf8e360e31b825260048201526040602482015260056044820152640aeca8aa8960db1b60648201525f81608481835f51602061767b5f395f51905f525af18015613c0357613bf0575b5060205481906001600160a01b03165f51602061767b5f395f51905f523b156102a157604051906318caf8e360e31b825260048201526040602482015260046044820152630ca8aa8960e31b60648201528181608481835f51602061767b5f395f51905f525af18015610296576102855750f35b613bfc91505f90613e76565b5f5f613b7c565b6040513d5f823e3d90fd5b90506020813d602011613c48575b81613c2960209383613e76565b8101031261099a57516001600160a01b038116810361099a575f613afc565b3d9150613c1c565b634e487b7160e01b5f52604160045260245ffd5b6020813d602011613c8b575b81613c7d60209383613e76565b8101031261099a5751613a63565b3d9150613c70565b613ca791503d805f833e610af08183613e76565b5f613a18565b604090600319011261099a5760043590602435801515810361099a5790565b60206040818301928281528451809452019201905f5b818110613cef5750505090565b82516001600160a01b0316845260209384019390920191600101613ce2565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613d6457505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210613dbe5750505060208060019297019301930191939290613d55565b82516001600160e01b031916845260209384019390920191600190910190613d9f565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613e1357505050505090565b9091929394602080613e31600193603f198682030187528951613d0e565b97019301930191939290613e04565b604081019081106001600160401b03821117613c5057604052565b606081019081106001600160401b03821117613c5057604052565b90601f801991011681019081106001600160401b03821117613c5057604052565b6001600160401b038111613c5057601f01601f191660200190565b60208183031261099a578051906001600160401b03821161099a570181601f8201121561099a57805190613ee582613e97565b92613ef36040519485613e76565b8284526020838301011161099a57815f9260208093018386015e8301015290565b9081602091031261099a575190565b6001600160401b038111613c505760051b60200190565b60208183031261099a578051906001600160401b03821161099a57019080601f8301121561099a578151613f6d81613f23565b92613f7b6040519485613e76565b81845260208085019260051b82010192831161099a57602001905b828210613fa35750505090565b8151815260209182019101613f96565b805115613fc05760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015613fc05760400190565b8051821015613fc05760209160051b010190565b919082604091031261099a5760405161401081613e40565b6020808294805184520151910152565b9060808282031261099a5761405190604080519361403d85613e5b565b805185526020810151602086015201613ff8565b604082015290565b5f80825260208201526001600160a01b03909116604082015260a0810193929190600282101561408f5760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b5f80825260208201526001600160a01b03909116604082015260016060820152608081019190915260a00190565b5f81526001600160a01b0391821660208201529116604082015260a0810193929190600282101561408f5760809160608201520152565b9190820391821161411557565b634e487b7160e01b5f52601160045260245ffd5b9081602091031261099a5751801515810361099a5790565b9190820180921161411557565b90600182811c9216801561417c575b602083101461416857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161415d565b5f92918154916141958361414e565b80835292600181169081156141ea57506001146141b157505050565b5f9081526020812093945091925b8383106141d0575060209250010190565b6001816020929493945483858701015201910191906141bf565b915050602093945060ff929192191683830152151560051b010190565b60085460ff1680156142165790565b50604051630667f9d760e41b81525f51602061767b5f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061767b5f395f51905f525afa908115613c03575f91614270575b50151590565b90506020813d60201161429a575b8161428b60209383613e76565b8101031261099a57515f61426a565b3d915061427e565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0390911660048201526fffffffffffffffffffffffffffffffff60248201525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f61431691613e76565b565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0390911660048201525f1960248201525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0391909116600482015260248101919091525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a576040519063260a5b1560e21b82526004820152600360248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a576040519163a8d4d1d960e01b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a5760405191638466f41560e01b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a5760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b3d15614586573d9061456d82613e97565b9161457b6040519384613e76565b82523d5f602084013e565b606090565b60209291908391805192839101825e019081520190565b6145ad60145461414e565b61466a576040519081826020600e549283815201600e5f5260205f20925f5b8181106146515750506145e192500383613e76565b81518060051b9080820460201490151715614115576145ff81613e97565b9061460d6040519283613e76565b80825261461c601f1991613e97565b013660208301375f5b835181101561464c578061463b60019286613fe4565b5160208260051b8501015201614625565b509150565b84548352600194850194879450602090930192016145cc565b60405161467c81610db9816014614186565b90565b600781019061468e825461414e565b61474a57600191500190604051808360208295549384815201905f5260205f20925f5b8181106147315750506146c692500383613e76565b81518060051b9080820460201490151715614115576146e481613e97565b906146f26040519283613e76565b808252614701601f1991613e97565b013660208301375f5b835181101561464c578061472060019286613fe4565b5160208260051b850101520161470a565b84548352600194850194879450602090930192016146b1565b5061467c610db99160405192838092614186565b5f806020600f5460e01b6147ac6024614777600d61467f565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613e76565b6011549151916001600160a01b03165afa906147c661455c565b601054909290600581901b906001600160fb1b03811603614115575f938051602081115f1461485157506020905b5f925b82841061480657505050509190565b909192956148148783614141565b8351811015613fc057830160200151600388901b91906001600160f81b031916881560088a8504141715614115576001921c1796019291906147f7565b906147f4565b905f806020600285015460e01b61487260246147778861467f565b60048601549151916001600160a01b03165afa600361488f61455c565b930154600581901b906001600160fb1b03811603614115575f938051602081115f1461491757506020905b5f925b8284106148cc57505050509190565b909192956148da8783614141565b8351811015613fc057830160200151600388901b91906001600160f81b031916881560088a8504141715614115576001921c1796019291906148bd565b906148ba565b9080601f8301121561099a57815161493481613f23565b926149426040519485613e76565b81845260208085019260051b82010192831161099a57602001905b82821061496a5750505090565b815181526020918201910161495d565b601154600f546010546001600160a01b03909216915f9160e01b61499e600d61467f565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906149d78161053688888661458b565b5190205f5260205260ff600360405f20015416615215575f51602061767b5f395f51905f523b1561099a5760405163266cf10960e01b81525f81600481835f51602061767b5f395f51905f525af18015613c0357615200575b50614a3b600d614857565b90506040516365bc948160e01b81528660048201528581602481835f51602061767b5f395f51905f525af190811561083a57869161519c575b508051614ae557608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b815181101561519457816020614b0083614b3195613fe4565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061767b5f395f51905f525afa92831561119b578893615161575b508215615109575b614b638282613fe4565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061767b5f395f51905f525afa9081156150fe578b916150cd575b50614bbe600d614857565b91909382155f146150c6575f19905b5f51602061767b5f395f51905f523b156150ad576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061767b5f395f51905f525af1801561502757908d916150b1575b5050614c3e600d614857565b601154909491506001600160a01b03165f51602061767b5f395f51905f523b156150ad576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061767b5f395f51905f525af180156150a257908c91615089575b50508261507e575b505015615074578793889360ff60135416614eee575b6001868601610100031b5f1901851b16841c8103614ee0575090614d58917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89610536614d2d8d60405192839160208301958661458b565b519020614d3a8686613fe4565b51906040519283528a602084015260408301526060820152a1613fe4565b519060405191608083018381106001600160401b03821117614ecc5790600393929160405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190614dc3816105368d8d8661458b565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614e1e8161053688888661458b565b519020855260205260ff60036040862001541615614e6f576040948452600d602052848420908452602052610536614e6385852093865192839160208301958661458b565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b634e487b7160e01b89526041600452602489fd5b935091506001905b01614ae7565b9450614f399350614eff8383613fe4565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061767b5f395f51905f525afa948515615069578a95615036575b50614f6586600d61536a565b959096614f7381600d615443565b60115490939192906001600160a01b03165f51602061767b5f395f51905f523b15615032576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061767b5f395f51905f525af1801561502757908d9161500e575b505087615006575b509495614cd2575093509150600190614ee8565b96505f614ff2565b8161501891613e76565b615023578b5f614fea565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211615061575b8161505160209383613e76565b8101031261099a5751935f614f59565b3d9150615044565b6040513d8c823e3d90fd5b9150600190614ee8565b141590505f80614cbc565b8161509391613e76565b61509e578a5f614cb4565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816150bb91613e76565b615023578b5f614c32565b8c90614bcd565b90506020813d82116150f6575b816150e760209383613e76565b8101031261099a57515f614bb3565b3d91506150da565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56151596151378484613fe4565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614b59565b9092506020813d821161518c575b8161517c60209383613e76565b8101031261099a5751915f614b51565b3d915061516f565b505050614df1565b90503d8087833e6151ad8183613e76565b81016040828203126109665781516001600160401b038111612a3357816151d591840161491d565b916020810151906001600160401b0382116151fc576151f592910161491d565b505f614a74565b8880fd5b61520d9194505f90613e76565b5f925f614a30565b91939092505f52600d60205260405f20905f5260205261053661524760405f209360405192839160208301958661458b565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580615328575b505f60105560ff196013541660135561529c60145461414e565b806152a45750565b601f81116001146152b657505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061531d57505060145f525f602081208160145555565b5f8155600101615304565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061535f5750615282565b5f8155600101615352565b91905f5b610100811061538157505090505f905f90565b8060ff0360ff8111614115576004850154600190911b906001600160a01b03165f51602061767b5f395f51905f523b1561099a576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061767b5f395f51905f525af18015613c0357615433575b5061540d84614857565b81615429575b506154205760010161536e565b92505060019190565b905015155f615413565b5f61543d91613e76565b5f615403565b91905f5b610100811061545a57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061767b5f395f51905f523b1561099a576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061767b5f395f51905f525af18015613c03576154f6575b506154d984614857565b816154ec575b5061542057600101615447565b905015155f6154df565b5f61550091613e76565b5f6154cf56fe60e0806040523461023e57602081612174803803809161001f8285610298565b83398101031261023e57516001600160a01b0381169081900361023e57602081600492608052604051928380926306f1b8f160e11b82525afa90811561024a575f91610255575b5060a081905260405163332d08e560e11b815290602090829060049082906001600160a01b03165afa90811561024a575f91610204575b5060c052604051611ea490816102d0823960805181818160ce015281816101ea015281816105c8015281816108d301528181610e8e01528181610f6501528181611112015281816111ee015281816112d00152818161142401528181611b230152611b7b015260a051818181609a015281816102cf015281816105250152818161056301528181610741015281816107dd0152818161081b015281816109580152818161099601528181610c8501528181610d2b01528181610dee01528181610eb401528181610fda0152818161113c015281816111b801528181611295015281816114a1015281816115c701528181611649015281816116e10152818161176c015281816117db015281816118d301528181611a550152611ad6015260c05181818161028001528181610abb01528181610cdc0152818161131d015281816113e9015281816114ed0152818161157a01528181611917015281816119980152611a990152f35b90506020813d602011610242575b8161021f60209383610298565b8101031261023e57516001600160a01b038116810361023e575f61009d565b5f80fd5b3d9150610212565b6040513d5f823e3d90fd5b90506020813d602011610290575b8161027060209383610298565b8101031261023e57516001600160a01b038116810361023e576020610066565b3d9150610263565b601f909101601f19168101906001600160401b038211908210176102bb57604052565b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca0114610a8957806348bd7dfd146109dc5780638307c6551461084d578063a9270fbe146105a3578063aad6e4881461014f5763ecbbc0330361000e573461014b57602036600319011261014b5760405161007f608082610bb7565b60038152602081019060603683375f61009782610bf1565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100cb82610c12565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ff82610c22565b52604051918291602083019060208452518091526040830191905f5b818110610129575050500390f35b82516001600160a01b031684528594506020938401939092019160010161011b565b5f80fd5b3461014b57608036600319011261014b57610168610b35565b610170610b4b565b9060643567ffffffffffffffff811161014b573660238201121561014b5780600401359061019d82610bd9565b916101ab6040519384610bb7565b8083526024602084019160051b8301019136831161014b57602401905b828210610593575050506001600160a01b038281169290841683811461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168481141580610560575b80610557575b61049f578114159081610523575b5061049f5781519361024185610bd9565b9461024f6040519687610bb7565b80865261025e601f1991610bd9565b015f5b81811061047c575050604051631be7ed6560e11b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561043d575f92610448575b50604051633a98ef3960e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610409575b505f9515955b85518110156103b8576001908715610386576103696103378685610331858c610c32565b51611821565b610341838a610c32565b519061036161035a610353868d610c32565b5188610e66565b9189610e66565b91878a611735565b610373828b610c32565b5261037e818a610c32565b505b0161030d565b61039d8584610395848b610c32565b51878a611735565b6103a7828b610c32565b526103b2818a610c32565b50610380565b876040518091602082016020835281518091526020604084019201905f5b8181106103e4575050500390f35b82518051855260209081015181860152869550604090940193909201916001016103d6565b9092506020813d602011610435575b8161042560209383610bb7565b8101031261014b57519187610307565b3d9150610418565b6040513d5f823e3d90fd5b9091506020813d602011610474575b8161046460209383610bb7565b8101031261014b575190866102b8565b3d9150610457565b60209060405161048b81610b9b565b5f81525f8382015282828a01015201610261565b60405163643c60f360e01b81528061051f6004820160a09060208152604460208201527f5468697320706f6f6c206f6e6c7920737570706f727473204554482d3e65455460408201527f482c2077654554483c2d3e6545544820616e64204554482d3e776545544820736060820152637761707360e01b60808201520190565b0390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610230565b50841515610222565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685141561021c565b81358152602091820191016101c8565b3461014b576105b136610b61565b6001600160a01b0390811692501680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681811491821590819081610819575b8161080f575b5061049f5781841493841590816107db575b5061049f576040519361062b606086610bb7565b6002855260208501936040368637916107d3575b501561072b576020600491604051928380926318160ddd60e01b82525afa90811561043d575f916106f9575b50605a810290808204605a14901517156106e5576064900461068c83610bf1565b52905b61069881610bf1565b516106a282610c12565b52604051918291602083019060208452518091526040830191905f5b8181106106cc575050500390f35b82518452859450602093840193909201916001016106be565b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610723575b8161071460209383610bb7565b8101031261014b57518361066b565b3d9150610707565b506040516318160ddd60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f916107a1575b50605a810290808204605a14901517156106e5576064900461079a83610bf1565b529061068f565b90506020813d6020116107cb575b816107bc60209383610bb7565b8101031261014b575183610779565b3d91506107af565b90508461063f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610617565b9050151585610605565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681141591506105ff565b3461014b5760a036600319011261014b57610866610b35565b61086e610b4b565b90606435600281101561014b57604051906060820182811067ffffffffffffffff8211176109c8576040525f82525f60208301526040516108ae81610b9b565b5f808252602082015260408301526001600160a01b0384811690841680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690808214159081610994575b8161098a575b5061049f578114159081610956575b5061049f576080936109319360843593610c53565b6020604080519280518452828101518385015201518051604084015201516060820152f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590508561091c565b905015158761090d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168114159150610907565b634e487b7160e01b5f52604160045260245ffd5b3461014b576109ea36610b61565b5050506040516109fb608082610bb7565b600381526020810160603682376001610a1383610bf1565b526002610a1f83610c12565b526003610a2b83610c22565b52604051906020820192602083525180935260408201905f935b808510610a525783830384f35b9091825190600a821015610a755760208160019382935201930194019390610a45565b634e487b7160e01b5f52602160045260245ffd5b3461014b57604036600319011261014b576040805190610aa98183610bb7565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff1916610af584610bf1565b52815192839260208401916020855251809252830191905f5b818110610b1c575050500390f35b8251845285945060209384019390920191600101610b0e565b602435906001600160a01b038216820361014b57565b604435906001600160a01b038216820361014b57565b606090600319011261014b57600435906024356001600160a01b038116810361014b57906044356001600160a01b038116810361014b5790565b6040810190811067ffffffffffffffff8211176109c857604052565b90601f8019910116810190811067ffffffffffffffff8211176109c857604052565b67ffffffffffffffff81116109c85760051b60200190565b805115610bfe5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610bfe5760400190565b805160021015610bfe5760600190565b8051821015610bfe5760209160051b010190565b919082039182116106e557565b949392909192858115610e2d575090610cbf915a916001600160a01b03851680610dec57506001600160a01b038681167f000000000000000000000000000000000000000000000000000000000000000090911603610ddc57610cb59161148e565b86525b5a90610c46565b602085810191909152604051631be7ed6560e11b815290816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91610daa575b50604051633a98ef3960e01b8152926020846004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610d74575b610d6d9450611617565b6040830152565b92506020843d602011610da2575b81610d8f60209383610bb7565b8101031261014b57610d6d935192610d63565b3d9150610d82565b90506020813d602011610dd4575b81610dc560209383610bb7565b8101031261014b57515f610d14565b3d9150610db8565b610de591611292565b8652610cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e2457610de5916110f7565b610de591610e73565b955050505050565b818102929181159184041417156106e557565b8115610e52570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106e557565b906002811015610a7557600103610f5e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116915f917f00000000000000000000000000000000000000000000000000000000000000001690602090610ee3908386611a39565b93610ef08530338461183f565b602460405180958193636f074d1f60e11b83528860048401525af190811561043d575f91610f28575b610f259250339061188a565b90565b90506020823d602011610f56575b81610f4360209383610bb7565b8101031261014b57610f25915190610f19565b3d9150610f36565b5f906020907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602490610f9d8130338661183f565b6040519485938492636f074d1f60e11b845260048401525af190811561043d575f916110c5575b506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575b5060249261102b602092338361188a565b6040516370a0823160e01b815233600482015293849182905afa801561043d575f9061105c575b610f259250610c46565b506020823d602011611088575b8161107660209383610bb7565b8101031261014b57610f259151611052565b3d9150611069565b9091506020813d6020116110bd575b816110ac60209383610bb7565b8101031261014b575190602461101a565b3d915061109f565b90506020813d6020116110ef575b816110e060209383610bb7565b8101031261014b57515f610fc4565b3d91506110d3565b906002811015610a75576001036111b6576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691829161117e917f00000000000000000000000000000000000000000000000000000000000000009091169061116a908483611a39565b9384916111798330338461183f565b611bb6565b604051630ea598cb60e41b815260048101839052906020826024815f855af190811561043d575f91610f2857610f259250339061188a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ec8230338461183f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af191821561043d575f9261125c575b5081610f2591339061188a565b9091506020813d60201161128a575b8161127860209383610bb7565b8101031261014b575190610f2561124f565b3d915061126b565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906002811015610a75576001036113cf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169161130390836118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561043d575f93611397575b50828261136192611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af190811561043d575f91610f2857610f259250339061188a565b909192506020813d6020116113c7575b816113b460209383610bb7565b8101031261014b57519190611361611355565b3d91506113a7565b604051630d0e30db60e41b815291602090839060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561043d575f9261145a575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b9091506020813d602011611486575b8161147660209383610bb7565b8101031261014b5751905f611421565b3d9150611469565b906002811015610a7557600103611560577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114d382826118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561043d5761152d57610f259250339061188a565b6020833d602011611558575b8161154660209383610bb7565b8101031261014b57610f259250610f19565b3d9150611539565b604051630d0e30db60e41b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561043d575f916110c557506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575060249261102b602092338361188a565b60405161162381610b9b565b5f8082526020909101526001600160a01b0316806116dc57506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036116a3579061168391670de0b6b3a7640000611821565b6040519061169082610b9b565b8152670de0b6b3a7640000602082015290565b6116b68282670de0b6b3a7640000611821565b90670de0b6b3a764000081018091116106e5576116d68261168394610e66565b91611d3b565b9192917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590506117235761168391670de0b6b3a7640000611d3b565b61168391670de0b6b3a7640000611d1e565b908294929160405161174681610b9b565b5f8082526020909101526001600160a01b0316806117d957506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036117b5579161179d92611821565b90604051916117ab83610b9b565b8252602082015290565b906116d6836117d36117cb8461179d9787611821565b948592610e66565b92610e66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415915061181790505761179d9183611d3b565b61179d9183611d1e565b91811561183a5761183590610f2593610e35565b610e48565b505090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261188891611883608483610bb7565b611d66565b565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261188891611883606483610bb7565b6001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b90506020813d602011611979575b8161196d60209383610bb7565b8101031261014b575190565b3d9150611960565b604051630ac37bbf60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa801561043d575f90611a06575b60209150602460405180948193630ac37bbf60e31b835260048301525afa90811561043d575f91611952575090565b506020813d602011611a31575b81611a2060209383610bb7565b8101031261014b57602090516119d7565b3d9150611a13565b6001600160a01b031680611ad457506001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050611b5e57604051632518981160e21b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b60405163d044fe9b60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa90811561043d575f91611cea575b50611c3f94611c4d611c0b5f948594610e66565b60405163095ea7b360e01b602082019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610bb7565b85519082855af190611c5d611dd1565b82611cb8575b5081611cad575b5015611c7557505050565b611883611888936040519063095ea7b360e01b602083015260248201525f604482015260448152611ca7606482610bb7565b82611d66565b90503b15155f611c6a565b80519192508115918215611cd0575b5050905f611c63565b611ce39250602080918301019101611d4e565b5f80611cc7565b90506020813d602011611d16575b81611d0560209383610bb7565b8101031261014b5751611c3f611bf7565b3d9150611cf8565b9190918115611d3457610f259261183591610e35565b5050505f90565b8115611d3457610f259261183591610e35565b9081602091031261014b5751801515810361014b5790565b5f80611d8e9260018060a01b03169360208151910182865af1611d87611dd1565b9083611e10565b8051908115159182611db6575b5050611da45750565b635274afe760e01b5f5260045260245ffd5b611dc99250602080918301019101611d4e565b155f80611d9b565b3d15611e0b573d9067ffffffffffffffff82116109c85760405191611e00601f8201601f191660200184610bb7565b82523d5f602084013e565b606090565b90611e345750805115611e2557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611e65575b611e45575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e3d56fea264697066735822122031cbba3d0f67fa9960c80e8dde35d7d3550b9bced9b39c9333a70f3eae803fd664736f6c634300081b00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220d0565e0860cfcefc11a5df6fb41600543fe57059ead5fc200b2103205dd2724164736f6c634300081b0033","sourceMap":"296:14029:71:-:0;;;;;;;3166:4:2;296:14029:71;;3166:4:2;296:14029:71;;;3166:4:2;296:14029:71;3166:4:2;296:14029:71;;1038:4:12;296:14029:71;;;1038:4:12;296:14029:71;445:42;296:14029;;;;;;438:50;296:14029;;;438:50;296:14029;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c9081630a9254e4146139b4575080631d279786146135eb5780631ed7831c1461356d57806323faaaa914612d675780632ade388014612ba85780633e5e3c2314612b2a5780633f7286f414612aac57806348b4e4181461225357806366d9a9a0146120a5578063796f2c7514611d8e5780637f6f69f414611c67578063821a7e72146115e557806385226c8114611553578063916a17c6146112c7578063a9f992f014610dce578063b5508aa914610d35578063ba414fa614610d10578063c307553a14610c0a578063c6549c14146102c6578063d25f701e146101c9578063e20c9f711461013b5763fa7626d40361000f5734610138578060031936011261013857602060ff601e54166040519015158152f35b80fd5b503461013857806003193601126101385760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101aa576101a68561019a81870382613e76565b60405191829182613ccc565b0390f35b82546001600160a01b0316845260209093019260019283019201610183565b5034610138578060031936011261013857601e54602054601f5460405163549387df60e11b8152600481018590526001600160a01b03928316602482015290821660448201528392909183918391606491839160089190911c165afa9081156102965782916102a4575b50515f51602061767b5f395f51905f523b156102a1576040519063260a5b1560e21b825260048201526002602482015281816044815f51602061767b5f395f51905f525afa8015610296576102855750f35b8161028f91613e76565b6101385780f35b6040513d84823e3d90fd5b50fd5b6102c091503d8084833e6102b88183613e76565b810190613f3a565b5f610233565b5034610138578060031936011261013857610ca06040516102e78282613e76565b60648152601f19820180366020840137670de0b6b3a764000061030983613fb3565b5260015b60648110610bc557506103236040519384613e76565b60648352835b818110610b8957505060015b606481106103c057505060015b6063811061034e578280f35b6103588183613fe4565b515160018201908183116103ac57816103836103a69261037b6001969588613fe4565b5151906144be565b602061039d816103938689613fe4565b5101519287613fe4565b510151906144be565b01610342565b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f51602061767b5f395f51905f525af1918215610801578592610b56575b50601f546001600160a01b031661047661040d8386613fe4565b5191878060405160208101906370a0823160e01b825230602482015260248152610438604482613e76565b5190845afa5061045861044961455c565b60208082518301019101613f14565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610b42576001810180600e55811015610b2e57600e8752307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105488926001600160a01b03169160e01b6104f26145a2565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906105448161053688888661458b565b03601f198101835282613e76565b519020865260205260ff60036040872001541615610b20575b6001600160a01b0384165f908152600d60205260409020908552602052610536610596604086209360405192839160208301958661458b565b51902083526020526040822060018101549360028201546105b78187614141565b6109b1575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061767b5f395f51905f525afa9788156109a657879861096a575b506001908201610100031b5f1901811b198716915f51602061767b5f395f51905f523b15610966576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061767b5f395f51905f525af190811561080157859161094d575b505061069061475e565b919015918215610942575b505061086157505050506106ad615256565b601f54601e546107099160209160081c6001600160a01b0390811691166106d48588613fe4565b5160405163095ea7b360e01b81526001600160a01b0390931660048401526024830152909283919082908a9082906044820190565b03925af1801561083a57610845575b50601e54601f546020546001600160a01b0391821692608092899260089290921c8116911682610748878a613fe4565b519561076a60405197889687958694638307c65560e01b8652600486016140d1565b03925af190811561083a57869161080c575b506107878286613fe4565b526107928185613fe4565b5060405191631135fc2960e21b83526004830152602082602481885f51602061767b5f395f51905f525af1918215610801576001926107d3575b5001610335565b6107f39060203d81116107fa575b6107eb8183613e76565b810190614129565b505f6107cc565b503d6107e1565b6040513d87823e3d90fd5b61082d915060803d8111610833575b6108258183613e76565b810190614020565b5f61077c565b503d61081b565b6040513d88823e3d90fd5b61085c9060203d81116107fa576107eb8183613e76565b610718565b82945054905f51602061767b5f395f51905f523b1561093e576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061767b5f395f51905f525af1801561029657610929575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610934828092613e76565b61013857806108c8565b8280fd5b141590505f8061069b565b8161095791613e76565b61096257835f610686565b8380fd5b8680fd5b965096506020863d821161099e575b8161098660209383613e76565b8101031261099a579451958b959081610609565b5f80fd5b3d9150610979565b6040513d89823e3d90fd5b90919293506109c08186614141565b610100036101008111610b0c5760ff8111610b0c5760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061767b5f395f51905f525afa928315610aff5760209382606a92610aa19492610adb575b506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613e76565b831015610ab3575090899392916105bc565b60405162461bcd60e51b815260206004820152908190610ad7906024830190613d0e565b0390fd5b610af89192503d8084833e610af08183613e76565b810190613eb2565b905f610a1c565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610b2861497a565b5061055d565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b9091506020813d8211610b81575b81610b7160209383613e76565b8101031261099a5751905f6103f3565b3d9150610b64565b602090604051610b9881613e5b565b8681528683820152604051610bac81613e40565b8781528784820152604082015282828701015201610329565b80670de0b6b3a764000002670de0b6b3a764000081048203610bf65790600191610bef8286613fe4565b520161030d565b634e487b7160e01b86526011600452602486fd5b5034610138578060031936011261013857601e5460405163ecbbc03360e01b8152600481018390529082908290602490829060081c6001600160a01b03165afa8015610296578290610c65575b610c629150516143d0565b80f35b503d8083833e610c758183613e76565b81019060208183031261093e578051906001600160401b03821161096257019080601f8301121561093e57815190610cac82613f23565b92610cba6040519485613e76565b82845260208085019360051b820101918211610d0c57602001915b818310610ce857505050610c6290610c57565b82516001600160a01b0381168103610d0857815260209283019201610cd5565b8580fd5b8480fd5b50346101385780600319360112610138576020610d2b614207565b6040519015158152f35b5034610138578060031936011261013857601954610d5281613f23565b91610d606040519384613e76565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610da257604051806101a68782613de1565b600160208192604051610dc081610db98189614186565b0382613e76565b815201920192019190610d8d565b503461013857610ddd36613cad565b156112c15760015b60018060a01b036020541660018060a01b03601e5460081c169160405163549387df60e11b81528560048201528560248201528260448201528581606481875afa90811561083a5786916112a7575b5060028210156112935785906001831494855f146111ff5750610e5690613fd4565b518510806111f5575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa8015610296576111dc575b5050601e546040516318160ddd60e01b81529060081c6001600160a01b0316602082600481875afa9081156109a65787916111a6575b610ee89250614373565b601e546040516370a0823160e01b815230600482015260089190911c6001600160a01b031680319491939190602085602481865afa93841561119b5787958995611161575b5094608091610f54968a604051809981958294638307c65560e01b84528a60048501614059565b03925af19384156109a6578794611140575b508351610f71578680f35b156110a1576040516370a0823160e01b8152306004820152602081602481855afa80156109a6578391889161106a575b50610fb591610faf91614108565b8661446f565b6001198501948511610bf6576020602491604051928380926370a0823160e01b82523060048301525afa90811561083a578691611030575b5061102694611003611020949361100993614108565b906144be565b519160018060a01b03601e5460081c163190614108565b90614420565b5f80808080808680f35b929190506020833d602011611062575b8161104d60209383613e76565b8101031261099a579151909190611026610fed565b3d9150611040565b9150506020813d602011611099575b8161108660209383613e76565b8101031261099a57518290610fb5610fa1565b3d9150611079565b92916110c56020929561102060249560018060a01b03601e5460081c163190614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491611101575b506110fc9261102091614108565b611026565b90506020813d60201161112d575b8161111c60209383613e76565b8101031261099a57516110fc6110ee565b3d915061110f565b6040513d86823e3d90fd5b61115a91945060803d608011610833576108258183613e76565b925f610f66565b955093506020853d602011611193575b8161117e60209383613e76565b8101031261099a579351869490936080610f2d565b3d9150611171565b6040513d8a823e3d90fd5b90506020823d6020116111d4575b816111c160209383613e76565b8101031261099a57610ee8915190610ede565b3d91506111b4565b816111e691613e76565b610d0c57845f610ea8565b5080fd5b50600a8511610e5f565b915061120a90613fb3565b51851080611289575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b815290151560048201528680826024815f51602061767b5f395f51905f525afa918215610aff578792611270575b505061126b91614373565b610ee8565b8192509061127d91613e76565b610d085784865f611260565b50600a8511611213565b634e487b7160e01b86526021600452602486fd5b6112bb91503d8088833e6102b88183613e76565b5f610e34565b81610de5565b5034610138578060031936011261013857601c546112e481613f23565b906112f26040519283613e76565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061133557604051806101a68782613d32565b60405161134181613e40565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106114b457846001979460029794602097946113cc945491818110611498575b81811061147c575b818110611460575b818110611444575b818110611428575b81811061140c575b8181106113f2575b106113de575b500382613e76565b83820152815201920192019190611320565b6001600160e01b031916815286015f6113c4565b828a1b6001600160e01b0319168452928901928b016113be565b604083901b6001600160e01b0319168452928901928b016113b6565b606083901b6001600160e01b0319168452928901928b016113ae565b608083901b6001600160e01b0319168452928901928b016113a6565b60a083901b6001600160e01b0319168452928901928b0161139e565b60c083901b6001600160e01b0319168452928901928b01611396565b60e083901b6001600160e01b0319168452928901928b0161138e565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611369565b5034610138578060031936011261013857601a5461157081613f23565b9161157e6040519384613e76565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106115c057604051806101a68782613de1565b6001602081926040516115d781610db98189614186565b8152019201920191906115ab565b5034610138578060031936011261013857610ca06040516116068282613e76565b60648152601f19820180366020840137670de0b6b3a764000061162883613fb3565b5260015b60648110611c3657506116426040519384613e76565b60648352835b818110611bfa57505060015b606481106116a057505060015b6063811061166d578280f35b6116778183613fe4565b515160018201908183116103ac578161038361169a9261037b6001969588613fe4565b01611661565b604051634b88b8ad60e11b815290602082600481885f51602061767b5f395f51905f525af1918215610801578592611bc7575b50601f546001600160a01b03166116ed61040d8386613fe4565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610b42576001810180600e55811015610b2e57600e8752307fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9190910155601154600f5460105488926001600160a01b03169160e01b6117696145a2565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906117ad8161053688888661458b565b519020865260205260ff60036040872001541615611bb9575b6001600160a01b0384165f908152600d602052604090209085526020526105366117ff604086209360405192839160208301958661458b565b51902083526020526040822060018101549360028201546118208187614141565b611ab8575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061767b5f395f51905f525afa9788156109a6578798611a80575b506001908201610100031b5f1901811b198716915f51602061767b5f395f51905f523b15610966576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061767b5f395f51905f525af1908115610801578591611a6b575b50506118f961475e565b919015918215611a60575b50506108615750505050611916615256565b601f54601e5461193d9160209160081c6001600160a01b0390811691166106d48588613fe4565b03925af1801561083a57611a44575b50601e54601f546020546001600160a01b039182169260809260019260089290921c811691168961197d878a613fe4565b519561199f60405197889687958694638307c65560e01b8652600486016140d1565b03925af190811561083a578691611a26575b506119bc8286613fe4565b526119c78185613fe4565b5060405191631135fc2960e21b83526004830152602082602481885f51602061767b5f395f51905f525af191821561080157600192611a08575b5001611654565b611a1f9060203d81116107fa576107eb8183613e76565b505f611a01565b611a3e915060803d8111610833576108258183613e76565b5f6119b1565b611a5b9060203d81116107fa576107eb8183613e76565b61194c565b141590505f80611904565b81611a7591613e76565b61096257835f6118ef565b965096506020863d8211611ab0575b81611a9c60209383613e76565b8101031261099a579451958b959081611872565b3d9150611a8f565b9091929350611ac78186614141565b610100036101008111610b0c5760ff8111610b0c5760405163348051d760e11b8152600190911b600482018190528b80836024815f51602061767b5f395f51905f525afa928315610aff5760209382606a92611ba79492610adb57506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613e76565b831015610ab357509089939291611825565b611bc161497a565b506117c6565b9091506020813d8211611bf2575b81611be260209383613e76565b8101031261099a5751905f6116d3565b3d9150611bd5565b602090604051611c0981613e5b565b8681528683820152604051611c1d81613e40565b8781528784820152604082015282828701015201611648565b80670de0b6b3a764000002670de0b6b3a764000081048203610bf65790600191611c608286613fe4565b520161162c565b5034610138576060366003190112610138576024356001600160a01b038116908190036111f157816044356001600160a01b038116908190036111f157606460018060a01b03601e5460081c169360405194859384926348bd7dfd60e01b84526004356004850152602484015260448301525afa8015610296578290611cf257610c629150516143d0565b503d8083833e611d028183613e76565b81019060208183031261093e578051906001600160401b03821161096257019080601f8301121561093e57815190611d3982613f23565b92611d476040519485613e76565b82845260208085019360051b820101918211610d0c57602001915b818310611d7557505050610c6290610c57565b8251600a811015610d0857815260209283019201611d62565b503461013857604036600319011261013857601e54601f5460205460405163549387df60e11b815260048181018690526001600160a01b03938416602483810182905293851660448401819052969560081c9094169390359290919035908581606481885afa90811561083a57869161208b575b50611e0c81613fb3565b51841080612082575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b8152901515600482015286816024815f51602061767b5f395f51905f525afa80156109a65790879161206d575b5050611e6c90613fd4565b51811080612064575b5f51602061767b5f395f51905f523b15610d0857604051632631f2b160e11b8152901515600482015285816024815f51602061767b5f395f51905f525afa801561083a5790869161204f575b5093915f969391965060405196611ed9606089613e76565b6002885260208801926040368537611ef089613fb3565b52611efa88613fd4565b5260405196879463155adc9160e31b8652608486019287600488015260248701526044860152608060648601525180915260a484019190855b8181106120335750505082809103915afa918215610aff578192611f96575b50805b8251811015611f925780611f75611f6e60019386613fe4565b515161450d565b611f8c6020611f848387613fe4565b51015161450d565b01611f55565b5080f35b9091503d8083833e611fa88183613e76565b81019060208183031261093e578051906001600160401b038211610962570181601f8201121561093e578051611fdd81613f23565b92611feb6040519485613e76565b81845260208085019260061b84010192818411610d0857602001915b8383106120195750505050905f611f52565b60206040916120288486613ff8565b815201920191612007565b8251845287965088955060209384019390920191600101611f33565b8161205991613e76565b610d0c57845f611ec1565b50801515611e75565b8161207791613e76565b610d0857855f611e61565b50831515611e15565b61209f91503d8088833e6102b88183613e76565b5f611e02565b5034610138578060031936011261013857601b546120c281613f23565b906120d06040519283613e76565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b83831061211357604051806101a68782613d32565b60405161211f81613e40565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106121b457846001979460029794602097946121a29454918181106114985781811061147c5781811061146057818110611444578181106114285781811061140c578181106113f257106113de57500382613e76565b838201528152019201920191906120fe565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612147565b50346101385761226236613cad565b15612aa5576001905b60208054601f546040516370a0823160e01b8152306004820152946001600160a01b0391821693929091169185602481865afa94851561083a578695612a71575b50601e5460405163549387df60e11b815260048101889052602481018590526044810184905260089190911c6001600160a01b0316948782606481895afa91821561119b578892612a55575b506002831015612a41579087916001841496875f146128dd575061231b82613fd4565b51811090816128d2575b505f51602061767b5f395f51905f523b1561093e57604051632631f2b160e11b8152901515600482015282816024815f51602061767b5f395f51905f525afa9081156128c75783916128b2575b5050601e546080916123ca916123939060081c6001600160a01b0316614318565b601e5460081c6001600160a01b0316906123ac90613fb3565b51604051948580948193638307c65560e01b83528b600484016140a3565b03925af180156109a657612895575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f1960248201526020816044818a885af180156109a657612876575b505b6040516370a0823160e01b815230600482015291602083602481845afa9283156109a6578793612842575b506040516370a0823160e01b815230600482015294602086602481885afa95861561119b57889661280a575b50612482869760809697614108565b601e54604051638307c65560e01b8152969194879160081c6001600160a01b03169082908c9082906124bb908a908a8f600486016140d1565b03925af194851561119b5788956127e9575b5084516124d8578780f35b1561267c576040516370a0823160e01b8152306004820152602081602481855afa801561119b5784918991612645575b5061251c9161251691614108565b8361446f565b6001198201918211612631576020602491604051928380926370a0823160e01b82523060048301525afa9081156109a65787916125fd575b506125629261100391614108565b516001198101919082116125e9576020602491604051928380926370a0823160e01b82523060048301525afa9081156111355784916125b5575b50611003906125aa93614108565b5f8080808080808780f35b90506020813d6020116125e1575b816125d060209383613e76565b8101031261099a57516125aa61259c565b3d91506125c3565b634e487b7160e01b84526011600452602484fd5b90506020813d602011612629575b8161261860209383613e76565b8101031261099a5751612562612554565b3d915061260b565b634e487b7160e01b87526011600452602487fd5b9150506020813d602011612674575b8161266160209383613e76565b8101031261099a5751839061251c612508565b3d9150612654565b936020602491604097949751928380926370a0823160e01b82523060048301525afa9081156109a65787916127b5575b50611020906126ba93614108565b805160011981019081116103ac576040516370a0823160e01b8152306004820152602081602481875afa801561083a578591879161277d575b506020926110036024959361270793614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491612749575b506127449261273e91614108565b9061446f565b6125aa565b90506020813d602011612775575b8161276460209383613e76565b8101031261099a5751612744612730565b3d9150612757565b939150506020833d6020116127ad575b8161279a60209383613e76565b8101031261099a579151849060206126f3565b3d915061278d565b90506020813d6020116127e1575b816127d060209383613e76565b8101031261099a57516126ba6126ac565b3d91506127c3565b61280391955060803d608011610833576108258183613e76565b935f6124cd565b9495506020853d60201161283a575b8161282660209383613e76565b8101031261099a5793519493612482612473565b3d9150612819565b9092506020813d60201161286e575b8161285e60209383613e76565b8101031261099a5751915f612447565b3d9150612851565b61288e9060203d6020116107fa576107eb8183613e76565b505f61241a565b6128ad9060803d608011610833576108258183613e76565b6123d9565b816128bc91613e76565b6111f157815f612372565b6040513d85823e3d90fd5b60649150115f612325565b916128ea90939193613fb3565b51831080612a37575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa801561029657612a1e575b5050612947906142a2565b601e54604051638307c65560e01b81529190608090839060081c6001600160a01b0316818b8161297b878c600484016140a3565b03925af190811561119b576129cb92602092612a01575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b03166004820152602481019190915291829081906044820190565b03818a885af180156109a6576129e2575b5061241c565b6129fa9060203d6020116107fa576107eb8183613e76565b505f6129dc565b612a199060803d608011610833576108258183613e76565b612992565b81612a2891613e76565b612a3357875f61293c565b8780fd5b50606483116128f3565b634e487b7160e01b88526021600452602488fd5b612a6a9192503d808a833e6102b88183613e76565b905f6122f8565b9094506020813d602011612a9d575b81612a8d60209383613e76565b8101031261099a5751935f6122ac565b3d9150612a80565b819061226b565b503461013857806003193601126101385760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612b0b576101a68561019a81870382613e76565b82546001600160a01b0316845260209093019260019283019201612af4565b503461013857806003193601126101385760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612b89576101a68561019a81870382613e76565b82546001600160a01b0316845260209093019260019283019201612b72565b5034610138578060031936011261013857601d54612bc581613f23565b612bd26040519182613e76565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612cd65786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612c3e5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612cab57505050505060208060019297019301930190928695949293612c31565b9091929394602080612cc9600193605f198782030189528951613d0e565b9701950193929101612c87565b604051612ce281613e40565b82546001600160a01b03168152600183018054612cfe81613f23565b91612d0c6040519384613e76565b8183528a526020808b20908b9084015b838210612d42575050505060019282602092836002950152815201920192019190612c02565b600160208192604051612d5981610db9818a614186565b815201930191019091612d1c565b503461013857612d7636613cad565b156135675760015b602054601f54601e5460405163549387df60e11b8152600481018790526001600160a01b03938416602482018190529284166044820181905294929360089290921c909116908681606481855afa9081156109a657879161354d575b5060028310156135395786906001841492835f146133ed5750612dfc81613fd4565b518710806133e3575b5f51602061767b5f395f51905f523b1561093e57604051632631f2b160e11b8152901515600482015282816024815f51602061767b5f395f51905f525afa9081156128c75783916133ce575b5050601e54608091612e72916123939060081c6001600160a01b0316614318565b03925af180156109a6576133b1575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f1960248201526020816044818a885af180156109a657613392575b505b6040516370a0823160e01b815230600482015293602085602481875afa9485156109a657879561335e575b506040516370a0823160e01b815230600482015291602083602481855afa93841561119b5787938995613325575b50601e54604051638307c65560e01b8152986080928a9260081c6001600160a01b03169183918d918391612f5791908a8e600486016140d1565b03925af196871561119b578897613304575b508651612f74578780f35b1561319d576040516370a0823160e01b8152306004820152602081602481855afa801561119b5784908990613167575b612fae9250614108565b6001198301908382116131535791612fca60209260249461446f565b6040516370a0823160e01b815230600482015292839182905afa9081156109a657879161311f575b506130059261300091614108565b6144be565b6040516370a0823160e01b8152306004820152602081602481855afa80156108015785906130eb575b613039915083614108565b83519060028201809211610bf65791613057602092602495946144be565b6040516370a0823160e01b815230600482015293849182905afa9081156111355784916130b5575b6130899250614108565b90515f198101919082116130a157906125aa9161446f565b634e487b7160e01b83526011600452602483fd5b90506020823d6020116130e3575b816130d060209383613e76565b8101031261099a5761308991519061307f565b3d91506130c3565b506020813d602011613117575b8161310560209383613e76565b8101031261099a57613039905161302e565b3d91506130f8565b90506020813d60201161314b575b8161313a60209383613e76565b8101031261099a5751613005612ff2565b3d915061312d565b634e487b7160e01b89526011600452602489fd5b50506020813d602011613195575b8161318260209383613e76565b8101031261099a5783612fae9151612fa4565b3d9150613175565b9390926040959295516370a0823160e01b8152306004820152602081602481855afa90811561119b5788916132d0575b506131db6131e19184614108565b8561446f565b600119840193841161263157906020602492604051938480926370a0823160e01b82523060048301525afa9182156109a6578792613299575b506024936110036020949361322e93614108565b5192604051928380926370a0823160e01b82523060048301525afa908115611135578491613265575b506127449261102091614108565b90506020813d602011613291575b8161328060209383613e76565b8101031261099a5751612744613257565b3d9150613273565b9291506020833d6020116132c8575b816132b560209383613e76565b8101031261099a5791519091602461321a565b3d91506132a8565b90506020813d6020116132fc575b816132eb60209383613e76565b8101031261099a57516131db6131cd565b3d91506132de565b61331e91975060803d608011610833576108258183613e76565b955f612f69565b935093506020833d602011613356575b8161334260209383613e76565b8101031261099a5760808793519490612f1d565b3d9150613335565b9094506020813d60201161338a575b8161337a60209383613e76565b8101031261099a5751935f612eef565b3d915061336d565b6133aa9060203d6020116107fa576107eb8183613e76565b505f612ec2565b6133c99060803d608011610833576108258183613e76565b612e81565b816133d891613e76565b6111f157815f612e51565b5060648711612e05565b91906133f890613fb3565b5187108061352f575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa80156102965761351a575b5050613455906142a2565b601e54604051638307c65560e01b815290608090829060081c6001600160a01b0316818a816134888c8b600484016140a3565b03925af180156109a6576134fd575b50601e5460405163095ea7b360e01b815260089190911c6001600160a01b03166004820152602481018690526020816044818a885af180156109a6576134de575b50612ec4565b6134f69060203d6020116107fa576107eb8183613e76565b505f6134d8565b6135159060803d608011610833576108258183613e76565b613497565b8161352491613e76565b61096657865f61344a565b5060648711613401565b634e487b7160e01b87526021600452602487fd5b61356191503d8089833e6102b88183613e76565b5f612dda565b81612d7e565b503461013857806003193601126101385760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106135cc576101a68561019a81870382613e76565b82546001600160a01b03168452602090930192600192830192016135b5565b5034610138576135fa36613cad565b156139ae5760015b60018060a01b03601f541660018060a01b03601e5460081c169160405163549387df60e11b81528560048201528560248201528260448201528581606481875afa90811561083a578691613994575b5060028210156112935785906001831494855f14613900575061367390613fd4565b518510806138f6575b5f51602061767b5f395f51905f523b156111f157604051632631f2b160e11b8152901515600482015281816024815f51602061767b5f395f51905f525afa8015610296576138e1575b5050601e546040516318160ddd60e01b81529060081c6001600160a01b0316602082600481875afa9081156109a65787916138ab575b6137059250614373565b601e546040516370a0823160e01b815230600482015260089190911c6001600160a01b031680319491939190602085602481865afa93841561119b5787958995613871575b5094608091613771968a604051809981958294638307c65560e01b84528a60048501614059565b03925af19384156109a6578794613850575b50835161378e578680f35b156110a1576040516370a0823160e01b8152306004820152602081602481855afa80156109a65783918891613819575b506137cc91610faf91614108565b6003198501948511610bf6576020602491604051928380926370a0823160e01b82523060048301525afa90811561083a578691611030575061102694611003611020949361100993614108565b9150506020813d602011613848575b8161383560209383613e76565b8101031261099a575182906137cc6137be565b3d9150613828565b61386a91945060803d608011610833576108258183613e76565b925f613783565b955093506020853d6020116138a3575b8161388e60209383613e76565b8101031261099a57935186949093608061374a565b3d9150613881565b90506020823d6020116138d9575b816138c660209383613e76565b8101031261099a576137059151906136fb565b3d91506138b9565b816138eb91613e76565b610d0c57845f6136c5565b50600a851161367c565b915061390b90613fb3565b5185108061398a575b5f51602061767b5f395f51905f523b1561096657604051632631f2b160e11b815290151560048201528680826024815f51602061767b5f395f51905f525afa918215610aff578792613971575b505061396c91614373565b613705565b8192509061397e91613e76565b610d085784865f613961565b50600a8511613914565b6139a891503d8088833e6102b88183613e76565b5f613651565b81613602565b90503461099a575f36600319011261099a5763975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061767b5f395f51905f525afa908115613c0357613a3b916020915f91613c93575b50604051809381926371ee464d60e01b8352604060048401526044830190613d0e565b630125403f602483015203815f5f51602061767b5f395f51905f525af18015613c0357613c64575b50601f54604051906001600160a01b03166121748083016001600160401b03811184821017613c50576020928492615507843981520301905ff08015613c0357601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179055601f546040516306f1b8f160e11b81526001600160a01b039190911690602081600481855afa908115613c03575f91613c0e575b5060018060a01b03166001600160601b0360a01b60205416176020555f51602061767b5f395f51905f523b1561099a57604051906318caf8e360e31b825260048201526040602482015260056044820152640aeca8aa8960db1b60648201525f81608481835f51602061767b5f395f51905f525af18015613c0357613bf0575b5060205481906001600160a01b03165f51602061767b5f395f51905f523b156102a157604051906318caf8e360e31b825260048201526040602482015260046044820152630ca8aa8960e31b60648201528181608481835f51602061767b5f395f51905f525af18015610296576102855750f35b613bfc91505f90613e76565b5f5f613b7c565b6040513d5f823e3d90fd5b90506020813d602011613c48575b81613c2960209383613e76565b8101031261099a57516001600160a01b038116810361099a575f613afc565b3d9150613c1c565b634e487b7160e01b5f52604160045260245ffd5b6020813d602011613c8b575b81613c7d60209383613e76565b8101031261099a5751613a63565b3d9150613c70565b613ca791503d805f833e610af08183613e76565b5f613a18565b604090600319011261099a5760043590602435801515810361099a5790565b60206040818301928281528451809452019201905f5b818110613cef5750505090565b82516001600160a01b0316845260209384019390920191600101613ce2565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613d6457505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210613dbe5750505060208060019297019301930191939290613d55565b82516001600160e01b031916845260209384019390920191600190910190613d9f565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613e1357505050505090565b9091929394602080613e31600193603f198682030187528951613d0e565b97019301930191939290613e04565b604081019081106001600160401b03821117613c5057604052565b606081019081106001600160401b03821117613c5057604052565b90601f801991011681019081106001600160401b03821117613c5057604052565b6001600160401b038111613c5057601f01601f191660200190565b60208183031261099a578051906001600160401b03821161099a570181601f8201121561099a57805190613ee582613e97565b92613ef36040519485613e76565b8284526020838301011161099a57815f9260208093018386015e8301015290565b9081602091031261099a575190565b6001600160401b038111613c505760051b60200190565b60208183031261099a578051906001600160401b03821161099a57019080601f8301121561099a578151613f6d81613f23565b92613f7b6040519485613e76565b81845260208085019260051b82010192831161099a57602001905b828210613fa35750505090565b8151815260209182019101613f96565b805115613fc05760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015613fc05760400190565b8051821015613fc05760209160051b010190565b919082604091031261099a5760405161401081613e40565b6020808294805184520151910152565b9060808282031261099a5761405190604080519361403d85613e5b565b805185526020810151602086015201613ff8565b604082015290565b5f80825260208201526001600160a01b03909116604082015260a0810193929190600282101561408f5760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b5f80825260208201526001600160a01b03909116604082015260016060820152608081019190915260a00190565b5f81526001600160a01b0391821660208201529116604082015260a0810193929190600282101561408f5760809160608201520152565b9190820391821161411557565b634e487b7160e01b5f52601160045260245ffd5b9081602091031261099a5751801515810361099a5790565b9190820180921161411557565b90600182811c9216801561417c575b602083101461416857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161415d565b5f92918154916141958361414e565b80835292600181169081156141ea57506001146141b157505050565b5f9081526020812093945091925b8383106141d0575060209250010190565b6001816020929493945483858701015201910191906141bf565b915050602093945060ff929192191683830152151560051b010190565b60085460ff1680156142165790565b50604051630667f9d760e41b81525f51602061767b5f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061767b5f395f51905f525afa908115613c03575f91614270575b50151590565b90506020813d60201161429a575b8161428b60209383613e76565b8101031261099a57515f61426a565b3d915061427e565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0390911660048201526fffffffffffffffffffffffffffffffff60248201525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f61431691613e76565b565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0390911660048201525f1960248201525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a5760405163c88a5e6d60e01b81526001600160a01b0391909116600482015260248101919091525f81604481835f51602061767b5f395f51905f525af18015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a576040519063260a5b1560e21b82526004820152600360248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a576040519163a8d4d1d960e01b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b905f51602061767b5f395f51905f523b1561099a5760405191638466f41560e01b8352600483015260248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b5f51602061767b5f395f51905f523b1561099a5760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061767b5f395f51905f525afa8015613c035761430c5750565b3d15614586573d9061456d82613e97565b9161457b6040519384613e76565b82523d5f602084013e565b606090565b60209291908391805192839101825e019081520190565b6145ad60145461414e565b61466a576040519081826020600e549283815201600e5f5260205f20925f5b8181106146515750506145e192500383613e76565b81518060051b9080820460201490151715614115576145ff81613e97565b9061460d6040519283613e76565b80825261461c601f1991613e97565b013660208301375f5b835181101561464c578061463b60019286613fe4565b5160208260051b8501015201614625565b509150565b84548352600194850194879450602090930192016145cc565b60405161467c81610db9816014614186565b90565b600781019061468e825461414e565b61474a57600191500190604051808360208295549384815201905f5260205f20925f5b8181106147315750506146c692500383613e76565b81518060051b9080820460201490151715614115576146e481613e97565b906146f26040519283613e76565b808252614701601f1991613e97565b013660208301375f5b835181101561464c578061472060019286613fe4565b5160208260051b850101520161470a565b84548352600194850194879450602090930192016146b1565b5061467c610db99160405192838092614186565b5f806020600f5460e01b6147ac6024614777600d61467f565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613e76565b6011549151916001600160a01b03165afa906147c661455c565b601054909290600581901b906001600160fb1b03811603614115575f938051602081115f1461485157506020905b5f925b82841061480657505050509190565b909192956148148783614141565b8351811015613fc057830160200151600388901b91906001600160f81b031916881560088a8504141715614115576001921c1796019291906147f7565b906147f4565b905f806020600285015460e01b61487260246147778861467f565b60048601549151916001600160a01b03165afa600361488f61455c565b930154600581901b906001600160fb1b03811603614115575f938051602081115f1461491757506020905b5f925b8284106148cc57505050509190565b909192956148da8783614141565b8351811015613fc057830160200151600388901b91906001600160f81b031916881560088a8504141715614115576001921c1796019291906148bd565b906148ba565b9080601f8301121561099a57815161493481613f23565b926149426040519485613e76565b81845260208085019260051b82010192831161099a57602001905b82821061496a5750505090565b815181526020918201910161495d565b601154600f546010546001600160a01b03909216915f9160e01b61499e600d61467f565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906149d78161053688888661458b565b5190205f5260205260ff600360405f20015416615215575f51602061767b5f395f51905f523b1561099a5760405163266cf10960e01b81525f81600481835f51602061767b5f395f51905f525af18015613c0357615200575b50614a3b600d614857565b90506040516365bc948160e01b81528660048201528581602481835f51602061767b5f395f51905f525af190811561083a57869161519c575b508051614ae557608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b815181101561519457816020614b0083614b3195613fe4565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061767b5f395f51905f525afa92831561119b578893615161575b508215615109575b614b638282613fe4565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061767b5f395f51905f525afa9081156150fe578b916150cd575b50614bbe600d614857565b91909382155f146150c6575f19905b5f51602061767b5f395f51905f523b156150ad576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061767b5f395f51905f525af1801561502757908d916150b1575b5050614c3e600d614857565b601154909491506001600160a01b03165f51602061767b5f395f51905f523b156150ad576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061767b5f395f51905f525af180156150a257908c91615089575b50508261507e575b505015615074578793889360ff60135416614eee575b6001868601610100031b5f1901851b16841c8103614ee0575090614d58917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b89610536614d2d8d60405192839160208301958661458b565b519020614d3a8686613fe4565b51906040519283528a602084015260408301526060820152a1613fe4565b519060405191608083018381106001600160401b03821117614ecc5790600393929160405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190614dc3816105368d8d8661458b565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614e1e8161053688888661458b565b519020855260205260ff60036040862001541615614e6f576040948452600d602052848420908452602052610536614e6385852093865192839160208301958661458b565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b634e487b7160e01b89526041600452602489fd5b935091506001905b01614ae7565b9450614f399350614eff8383613fe4565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061767b5f395f51905f525afa948515615069578a95615036575b50614f6586600d61536a565b959096614f7381600d615443565b60115490939192906001600160a01b03165f51602061767b5f395f51905f523b15615032576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061767b5f395f51905f525af1801561502757908d9161500e575b505087615006575b509495614cd2575093509150600190614ee8565b96505f614ff2565b8161501891613e76565b615023578b5f614fea565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211615061575b8161505160209383613e76565b8101031261099a5751935f614f59565b3d9150615044565b6040513d8c823e3d90fd5b9150600190614ee8565b141590505f80614cbc565b8161509391613e76565b61509e578a5f614cb4565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816150bb91613e76565b615023578b5f614c32565b8c90614bcd565b90506020813d82116150f6575b816150e760209383613e76565b8101031261099a57515f614bb3565b3d91506150da565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56151596151378484613fe4565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614b59565b9092506020813d821161518c575b8161517c60209383613e76565b8101031261099a5751915f614b51565b3d915061516f565b505050614df1565b90503d8087833e6151ad8183613e76565b81016040828203126109665781516001600160401b038111612a3357816151d591840161491d565b916020810151906001600160401b0382116151fc576151f592910161491d565b505f614a74565b8880fd5b61520d9194505f90613e76565b5f925f614a30565b91939092505f52600d60205260405f20905f5260205261053661524760405f209360405192839160208301958661458b565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580615328575b505f60105560ff196013541660135561529c60145461414e565b806152a45750565b601f81116001146152b657505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061531d57505060145f525f602081208160145555565b5f8155600101615304565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061535f5750615282565b5f8155600101615352565b91905f5b610100811061538157505090505f905f90565b8060ff0360ff8111614115576004850154600190911b906001600160a01b03165f51602061767b5f395f51905f523b1561099a576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061767b5f395f51905f525af18015613c0357615433575b5061540d84614857565b81615429575b506154205760010161536e565b92505060019190565b905015155f615413565b5f61543d91613e76565b5f615403565b91905f5b610100811061545a57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061767b5f395f51905f523b1561099a576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061767b5f395f51905f525af18015613c03576154f6575b506154d984614857565b816154ec575b5061542057600101615447565b905015155f6154df565b5f61550091613e76565b5f6154cf56fe60e0806040523461023e57602081612174803803809161001f8285610298565b83398101031261023e57516001600160a01b0381169081900361023e57602081600492608052604051928380926306f1b8f160e11b82525afa90811561024a575f91610255575b5060a081905260405163332d08e560e11b815290602090829060049082906001600160a01b03165afa90811561024a575f91610204575b5060c052604051611ea490816102d0823960805181818160ce015281816101ea015281816105c8015281816108d301528181610e8e01528181610f6501528181611112015281816111ee015281816112d00152818161142401528181611b230152611b7b015260a051818181609a015281816102cf015281816105250152818161056301528181610741015281816107dd0152818161081b015281816109580152818161099601528181610c8501528181610d2b01528181610dee01528181610eb401528181610fda0152818161113c015281816111b801528181611295015281816114a1015281816115c701528181611649015281816116e10152818161176c015281816117db015281816118d301528181611a550152611ad6015260c05181818161028001528181610abb01528181610cdc0152818161131d015281816113e9015281816114ed0152818161157a01528181611917015281816119980152611a990152f35b90506020813d602011610242575b8161021f60209383610298565b8101031261023e57516001600160a01b038116810361023e575f61009d565b5f80fd5b3d9150610212565b6040513d5f823e3d90fd5b90506020813d602011610290575b8161027060209383610298565b8101031261023e57516001600160a01b038116810361023e576020610066565b3d9150610263565b601f909101601f19168101906001600160401b038211908210176102bb57604052565b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca0114610a8957806348bd7dfd146109dc5780638307c6551461084d578063a9270fbe146105a3578063aad6e4881461014f5763ecbbc0330361000e573461014b57602036600319011261014b5760405161007f608082610bb7565b60038152602081019060603683375f61009782610bf1565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100cb82610c12565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ff82610c22565b52604051918291602083019060208452518091526040830191905f5b818110610129575050500390f35b82516001600160a01b031684528594506020938401939092019160010161011b565b5f80fd5b3461014b57608036600319011261014b57610168610b35565b610170610b4b565b9060643567ffffffffffffffff811161014b573660238201121561014b5780600401359061019d82610bd9565b916101ab6040519384610bb7565b8083526024602084019160051b8301019136831161014b57602401905b828210610593575050506001600160a01b038281169290841683811461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168481141580610560575b80610557575b61049f578114159081610523575b5061049f5781519361024185610bd9565b9461024f6040519687610bb7565b80865261025e601f1991610bd9565b015f5b81811061047c575050604051631be7ed6560e11b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561043d575f92610448575b50604051633a98ef3960e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610409575b505f9515955b85518110156103b8576001908715610386576103696103378685610331858c610c32565b51611821565b610341838a610c32565b519061036161035a610353868d610c32565b5188610e66565b9189610e66565b91878a611735565b610373828b610c32565b5261037e818a610c32565b505b0161030d565b61039d8584610395848b610c32565b51878a611735565b6103a7828b610c32565b526103b2818a610c32565b50610380565b876040518091602082016020835281518091526020604084019201905f5b8181106103e4575050500390f35b82518051855260209081015181860152869550604090940193909201916001016103d6565b9092506020813d602011610435575b8161042560209383610bb7565b8101031261014b57519187610307565b3d9150610418565b6040513d5f823e3d90fd5b9091506020813d602011610474575b8161046460209383610bb7565b8101031261014b575190866102b8565b3d9150610457565b60209060405161048b81610b9b565b5f81525f8382015282828a01015201610261565b60405163643c60f360e01b81528061051f6004820160a09060208152604460208201527f5468697320706f6f6c206f6e6c7920737570706f727473204554482d3e65455460408201527f482c2077654554483c2d3e6545544820616e64204554482d3e776545544820736060820152637761707360e01b60808201520190565b0390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610230565b50841515610222565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685141561021c565b81358152602091820191016101c8565b3461014b576105b136610b61565b6001600160a01b0390811692501680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681811491821590819081610819575b8161080f575b5061049f5781841493841590816107db575b5061049f576040519361062b606086610bb7565b6002855260208501936040368637916107d3575b501561072b576020600491604051928380926318160ddd60e01b82525afa90811561043d575f916106f9575b50605a810290808204605a14901517156106e5576064900461068c83610bf1565b52905b61069881610bf1565b516106a282610c12565b52604051918291602083019060208452518091526040830191905f5b8181106106cc575050500390f35b82518452859450602093840193909201916001016106be565b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610723575b8161071460209383610bb7565b8101031261014b57518361066b565b3d9150610707565b506040516318160ddd60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f916107a1575b50605a810290808204605a14901517156106e5576064900461079a83610bf1565b529061068f565b90506020813d6020116107cb575b816107bc60209383610bb7565b8101031261014b575183610779565b3d91506107af565b90508461063f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905085610617565b9050151585610605565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681141591506105ff565b3461014b5760a036600319011261014b57610866610b35565b61086e610b4b565b90606435600281101561014b57604051906060820182811067ffffffffffffffff8211176109c8576040525f82525f60208301526040516108ae81610b9b565b5f808252602082015260408301526001600160a01b0384811690841680821461049f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690808214159081610994575b8161098a575b5061049f578114159081610956575b5061049f576080936109319360843593610c53565b6020604080519280518452828101518385015201518051604084015201516060820152f35b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590508561091c565b905015158761090d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168114159150610907565b634e487b7160e01b5f52604160045260245ffd5b3461014b576109ea36610b61565b5050506040516109fb608082610bb7565b600381526020810160603682376001610a1383610bf1565b526002610a1f83610c12565b526003610a2b83610c22565b52604051906020820192602083525180935260408201905f935b808510610a525783830384f35b9091825190600a821015610a755760208160019382935201930194019390610a45565b634e487b7160e01b5f52602160045260245ffd5b3461014b57604036600319011261014b576040805190610aa98183610bb7565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff1916610af584610bf1565b52815192839260208401916020855251809252830191905f5b818110610b1c575050500390f35b8251845285945060209384019390920191600101610b0e565b602435906001600160a01b038216820361014b57565b604435906001600160a01b038216820361014b57565b606090600319011261014b57600435906024356001600160a01b038116810361014b57906044356001600160a01b038116810361014b5790565b6040810190811067ffffffffffffffff8211176109c857604052565b90601f8019910116810190811067ffffffffffffffff8211176109c857604052565b67ffffffffffffffff81116109c85760051b60200190565b805115610bfe5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610bfe5760400190565b805160021015610bfe5760600190565b8051821015610bfe5760209160051b010190565b919082039182116106e557565b949392909192858115610e2d575090610cbf915a916001600160a01b03851680610dec57506001600160a01b038681167f000000000000000000000000000000000000000000000000000000000000000090911603610ddc57610cb59161148e565b86525b5a90610c46565b602085810191909152604051631be7ed6560e11b815290816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91610daa575b50604051633a98ef3960e01b8152926020846004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561043d575f93610d74575b610d6d9450611617565b6040830152565b92506020843d602011610da2575b81610d8f60209383610bb7565b8101031261014b57610d6d935192610d63565b3d9150610d82565b90506020813d602011610dd4575b81610dc560209383610bb7565b8101031261014b57515f610d14565b3d9150610db8565b610de591611292565b8652610cb8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e2457610de5916110f7565b610de591610e73565b955050505050565b818102929181159184041417156106e557565b8115610e52570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106e557565b906002811015610a7557600103610f5e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116915f917f00000000000000000000000000000000000000000000000000000000000000001690602090610ee3908386611a39565b93610ef08530338461183f565b602460405180958193636f074d1f60e11b83528860048401525af190811561043d575f91610f28575b610f259250339061188a565b90565b90506020823d602011610f56575b81610f4360209383610bb7565b8101031261014b57610f25915190610f19565b3d9150610f36565b5f906020907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602490610f9d8130338661183f565b6040519485938492636f074d1f60e11b845260048401525af190811561043d575f916110c5575b506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575b5060249261102b602092338361188a565b6040516370a0823160e01b815233600482015293849182905afa801561043d575f9061105c575b610f259250610c46565b506020823d602011611088575b8161107660209383610bb7565b8101031261014b57610f259151611052565b3d9150611069565b9091506020813d6020116110bd575b816110ac60209383610bb7565b8101031261014b575190602461101a565b3d915061109f565b90506020813d6020116110ef575b816110e060209383610bb7565b8101031261014b57515f610fc4565b3d91506110d3565b906002811015610a75576001036111b6576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691829161117e917f00000000000000000000000000000000000000000000000000000000000000009091169061116a908483611a39565b9384916111798330338461183f565b611bb6565b604051630ea598cb60e41b815260048101839052906020826024815f855af190811561043d575f91610f2857610f259250339061188a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111ec8230338461183f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af191821561043d575f9261125c575b5081610f2591339061188a565b9091506020813d60201161128a575b8161127860209383610bb7565b8101031261014b575190610f2561124f565b3d915061126b565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906002811015610a75576001036113cf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169161130390836118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561043d575f93611397575b50828261136192611bb6565b60405191630ea598cb60e41b835260048301526020826024815f855af190811561043d575f91610f2857610f259250339061188a565b909192506020813d6020116113c7575b816113b460209383610bb7565b8101031261014b57519190611361611355565b3d91506113a7565b604051630d0e30db60e41b815291602090839060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af191821561043d575f9261145a575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906112249083908390611bb6565b9091506020813d602011611486575b8161147660209383610bb7565b8101031261014b5751905f611421565b3d9150611469565b906002811015610a7557600103611560577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114d382826118c6565b604051630d0e30db60e41b815290929091602083600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561043d5761152d57610f259250339061188a565b6020833d602011611558575b8161154660209383610bb7565b8101031261014b57610f259250610f19565b3d9150611539565b604051630d0e30db60e41b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561043d575f916110c557506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa91821561043d575f92611090575060249261102b602092338361188a565b60405161162381610b9b565b5f8082526020909101526001600160a01b0316806116dc57506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036116a3579061168391670de0b6b3a7640000611821565b6040519061169082610b9b565b8152670de0b6b3a7640000602082015290565b6116b68282670de0b6b3a7640000611821565b90670de0b6b3a764000081018091116106e5576116d68261168394610e66565b91611d3b565b9192917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590506117235761168391670de0b6b3a7640000611d3b565b61168391670de0b6b3a7640000611d1e565b908294929160405161174681610b9b565b5f8082526020909101526001600160a01b0316806117d957506001600160a01b039081167f0000000000000000000000000000000000000000000000000000000000000000909116036117b5579161179d92611821565b90604051916117ab83610b9b565b8252602082015290565b906116d6836117d36117cb8461179d9787611821565b948592610e66565b92610e66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415915061181790505761179d9183611d3b565b61179d9183611d1e565b91811561183a5761183590610f2593610e35565b610e48565b505090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261188891611883608483610bb7565b611d66565b565b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261188891611883606483610bb7565b6001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b90506020813d602011611979575b8161196d60209383610bb7565b8101031261014b575190565b3d9150611960565b604051630ac37bbf60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa801561043d575f90611a06575b60209150602460405180948193630ac37bbf60e31b835260048301525afa90811561043d575f91611952575090565b506020813d602011611a31575b81611a2060209383610bb7565b8101031261014b57602090516119d7565b3d9150611a13565b6001600160a01b031680611ad457506001600160a01b039081167f00000000000000000000000000000000000000000000000000000000000000009091160361198157604051630ac37bbf60e31b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050611b5e57604051632518981160e21b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b60405163d044fe9b60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561043d575f91611952575090565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa90811561043d575f91611cea575b50611c3f94611c4d611c0b5f948594610e66565b60405163095ea7b360e01b602082019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610bb7565b85519082855af190611c5d611dd1565b82611cb8575b5081611cad575b5015611c7557505050565b611883611888936040519063095ea7b360e01b602083015260248201525f604482015260448152611ca7606482610bb7565b82611d66565b90503b15155f611c6a565b80519192508115918215611cd0575b5050905f611c63565b611ce39250602080918301019101611d4e565b5f80611cc7565b90506020813d602011611d16575b81611d0560209383610bb7565b8101031261014b5751611c3f611bf7565b3d9150611cf8565b9190918115611d3457610f259261183591610e35565b5050505f90565b8115611d3457610f259261183591610e35565b9081602091031261014b5751801515810361014b5790565b5f80611d8e9260018060a01b03169360208151910182865af1611d87611dd1565b9083611e10565b8051908115159182611db6575b5050611da45750565b635274afe760e01b5f5260045260245ffd5b611dc99250602080918301019101611d4e565b155f80611d9b565b3d15611e0b573d9067ffffffffffffffff82116109c85760405191611e00601f8201601f191660200184610bb7565b82523d5f602084013e565b606090565b90611e345750805115611e2557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611e65575b611e45575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611e3d56fea264697066735822122031cbba3d0f67fa9960c80e8dde35d7d3550b9bced9b39c9333a70f3eae803fd664736f6c634300081b00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220d0565e0860cfcefc11a5df6fb41600543fe57059ead5fc200b2103205dd2724164736f6c634300081b0033","sourceMap":"296:14029:71:-:0;;;;;;;;;;-1:-1:-1;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;296:14029:71;;;;;;;2421:18:5;296:14029:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14225:7;296:14029;14257:4;1590:14:0;14272:5:71;1590:14:0;296:14029:71;;-1:-1:-1;;;14225:54:71;;296:14029;14225:54;;1590:14:0;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;14225:54;;296:14029;;;;;;;;14225:54;;;;;;;;;;;296:14029;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;296:14029:71;;1590:14:0;;;;2349:24:1;;296:14029:71;2349:24:1;;1590:14:0;14314:1:71;296:14029;;;1590:14:0;2349:24:1;;296:14029:71;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;296:14029:71;;2349:24:1;;;;;:::i;:::-;296:14029:71;;2349:24:1;296:14029:71;2349:24:1;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;2349:24:1;296:14029:71;;14225:54;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;296:14029;;;;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;546:3:71;296:14029;;-1:-1:-1;;296:14029:71;;;;;;;;12622:8;12708:28;;;:::i;:::-;296:14029;12763:1;12766:19;546:3;12766:19;;;;296:14029;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;546:3:71;296:14029;;546:3;;;;;;;12954:13;;12763:1;12969:19;546:3;12969:19;;;;13440:13;;12763:1;13455:23;296:14029;13455:23;;;;296:14029;;;13480:3;13508:9;;;;:::i;:::-;;296:14029;12763:1;296:14029;;;;;;;;13536:13;:30;13609:21;13536:13;;12763:1;13536:13;;;;:::i;:::-;;296:14029;13536:30;;:::i;:::-;296:14029;13609:13;13590:9;;;;;:::i;:::-;;:17;296:14029;;13609:13;;:::i;:::-;;:21;296:14029;13609:21;;:::i;:::-;296:14029;13440:13;;296:14029;-1:-1:-1;;;296:14029:71;;6854:12:8;296:14029:71;;27501:38:3;1590:14:0;296:14029:71;12990:3;296:14029;;-1:-1:-1;;;13022:13:71;;296:14029;;;;;13022:13;-1:-1:-1;;;;;;;;;;;13022:13:71;;;;;;;;;;;12990:3;-1:-1:-1;13063:5:71;1590:14:0;-1:-1:-1;;;;;296:14029:71;6854:22:8;13086:10:71;;;;:::i;:::-;296:14029;;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;13079:4:71;27501:38:3;;;296:14029:71;27501:38:3;;;;;;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;:::-;296:14029:71;;;;27568:30:3;;;;;;:::i;:::-;;296:14029:71;;;;;;-1:-1:-1;;;;;1590:14:0;;6854:12:8;1590:14:0;;;6854:12:8;1590:14:0;;6854:22:8;27524:10:3;296:14029:71;;7009:9:8;296:14029:71;;;7009:9:8;296:14029:71;7505:10:8;296:14029:71;-1:-1:-1;;;296:14029:71;;;;;12763:1;296:14029;;;7505:10:8;296:14029:71;;;;;;7505:10:8;296:14029:71;;13079:4;296:14029;;;;;;6854:12:8;296:14029:71;7009:9:8;296:14029:71;15610:11:8;296:14029:71;;;-1:-1:-1;;;;;296:14029:71;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;296:14029:71;;;;;;27635:8:3;296:14029:71;;;;;15703:15:8;;296:14029:71;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;296:14029:71;;15735:37:8;;;;;;:::i;:::-;296:14029:71;15725:48:8;;296:14029:71;;;;;15610:11:8;296:14029:71;;;15703:77:8;296:14029:71;;15702:78:8;15698:126;;12990:3:71;-1:-1:-1;;;;;296:14029:71;;;;;;27635:8:3;296:14029:71;;;;;;;;;;15889:37:8;;296:14029:71;;;;;;15889:37:8;;;296:14029:71;15889:37:8;;;;;:::i;:::-;296:14029:71;15879:48:8;;296:14029:71;;;;;;;12763:1;15943:15:8;;296:14029:71;15961:16:8;7009:9;15961:16;;296:14029:71;15943:34:8;;;;:::i;:::-;15938:460;;12990:3:71;296:14029;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;296:14029:71;;;16424:32:8;;296:14029:71;;;;1590:14:0;;;296:14029:71;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;12990:3:71;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;296:14029:71;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;296:14029:71;;;16587:43:8;;296:14029:71;12810:59:8;;;1590:14:0;;;;296:14029:71;;;;12656:92:8;;;;12810:59;;;1590:14:0;296:14029:71;;12810:59:8;296:14029:71;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;12990:3:71;16678:31:8;;;;:::i;:::-;16724:8;;;296:14029:71;;;16724:29:8;;12990:3:71;16720:176:8;;;;14785:4;;;;;;:::i;:::-;13063:5:71;1590:14:0;13150:7:71;296:14029;13111:60;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;;;;;13160:10;;;;:::i;:::-;296:14029;;;-1:-1:-1;;;13111:60:71;;-1:-1:-1;;;;;296:14029:71;;;;13111:60;;296:14029;;;;1590:14:0;296:14029:71;;;;-1:-1:-1;296:14029:71;;;;;;;;;;;13111:60;;;;;;;;;;;12990:3;-1:-1:-1;13150:7:71;296:14029;13063:5;1590:14:0;296:14029:71;1590:14:0;-1:-1:-1;;;;;296:14029:71;;;;13198:179;;296:14029;;;;;;;;;;;;13353:10;;;;:::i;:::-;296:14029;;13198:179;296:14029;;1590:14:0;;;;;;;;;;13198:179:71;;296:14029;13198:179;;;:::i;:::-;;;;;;;;;;;;;;12990:3;13186:191;;;;;:::i;:::-;;;;;;:::i;:::-;;296:14029;;1590:14:0;;;;13391:23:71;;296:14029;13391:23;;1590:14:0;296:14029:71;13391:23;27501:38:3;13391:23:71;;-1:-1:-1;;;;;;;;;;;13391:23:71;;;;;;;12763:1;13391:23;;;12990:3;;296:14029;12954:13;;13391:23;;;296:14029;13391:23;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;296:14029;;1590:14:0;296:14029:71;;1590:14:0;;;;13198:179:71;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;296:14029;;1590:14:0;296:14029:71;;1590:14:0;;;;13111:60:71;;;296:14029;13111:60;;;;;;;;;:::i;:::-;;;16720:176:8;296:14029:71;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;296:14029:71;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;296:14029:71;;;;;16769:41:8;;296:14029:71;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;296:14029:71;12810:59:8;296:14029:71;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;296:14029:71;;-1:-1:-1;;;16824:61:8;;296:14029:71;;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;296:14029:71;12810:59:8;27501:38:3;296:14029:71;;12810:59:8;-1:-1:-1;;;546:3:71;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;296:14029:71;;16769:41:8;;;;296:14029:71;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;296:14029:71;;16587:43:8;;;;296:14029:71;;;;16587:43:8;296:14029:71;;;16424:32:8;;;;;296:14029:71;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;1590:14:0;-1:-1:-1;296:14029:71;;16424:32:8;;;-1:-1:-1;16424:32:8;;;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;15938:460:8;16028:34;;;;;;;;;:::i;:::-;16021:3;296:14029:71;16021:3:8;296:14029:71;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;12763:1:71;296:14029;;;;16314:19:8;;1590:14:0;;;16314:19:8;;296:14029:71;27501:38:3;296:14029:71;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;296:14029:71;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;296:14029:71;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;296:14029:71;12810:59:8;;;-1:-1:-1;;;546:3:71;12810:59:8;;;296:14029:71;;;;;;12810:59:8;;;296:14029:71;;;;;;;;16170:185:8;;296:14029:71;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;12810:59;296:14029:71;;-1:-1:-1;;;12810:59:8;;296:14029:71;;12810:59:8;;;296:14029:71;;;12810:59:8;;27501:38:3;12810:59:8;;;;:::i;:::-;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;296:14029:71;;;1590:14:0;;;;;;;;296:14029:71;-1:-1:-1;;;296:14029:71;;6854:12:8;296:14029:71;;27501:38:3;1590:14:0;296:14029:71;15698:126:8;13208:33;;:::i;:::-;;15698:126;;296:14029:71;-1:-1:-1;;;296:14029:71;;;;;27501:38:3;1590:14:0;296:14029:71;;-1:-1:-1;;;1590:14:0;;;296:14029:71;1590:14:0;27501:38:3;1590:14:0;;13022:13:71;;;;296:14029;13022:13;;;;;;;;;1590:14:0;13022:13:71;;;:::i;:::-;;;1590:14:0;;;;;13022:13:71;;;;;;;-1:-1:-1;13022:13:71;;546:3;296:14029;;;;1590:14:0;;;:::i;:::-;546:3:71;;;;;;;;296:14029;;1590:14:0;;;:::i;:::-;546:3:71;;;;;;;;296:14029;546:3;;;;;;;;;;;;12787;546;12622:8;546:3;12622:8;546:3;;;;;;12806:32;12763:1;12806:32;;;;;:::i;:::-;296:14029;;12751:13;;546:3;-1:-1:-1;;;296:14029:71;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;;;14025:7;296:14029;;;-1:-1:-1;;;14025:23:71;;296:14029;14025:23;;1590:14:0;;;296:14029:71;;;;;14025:23;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;14025:23;;;;;;;;;;296:14029;14059:26;296:14029;;;14059:26;:::i;:::-;296:14029;;14025:23;;;;;;;;;;;:::i;:::-;;;296:14029;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;14025:23;;;14059:26;14025:23;;;296:14029;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;296:14029:71;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;2273:18:5;296:14029:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;8443:38;;;8451:13;8443:38;296:14029;;;;;8557:4;1590:14:0;296:14029:71;;;;;;8634:7;296:14029;;;;;;;1590:14:0;;;8634:45:71;;;296:14029;8634:45;;1590:14:0;296:14029:71;;;;;;;;;;8634:45;;;;;;;;;;;;;;;;8443:38;296:14029;;;;;;;8694:21;;8702:13;8694:21;;8690:319;;;8694:21;;;8759:9;;;;:::i;:::-;296:14029;8741:27;;:51;;;8690:319;-1:-1:-1;;;;;;;;;;;8731:62:71;;;;296:14029;;-1:-1:-1;;;8731:62:71;;296:14029;;;;8731:62;;296:14029;8731:62;296:14029;;;-1:-1:-1;;;;;;;;;;;8731:62:71;;;;;;;;8690:319;-1:-1:-1;;8634:7:71;296:14029;;;-1:-1:-1;;;8831:19:71;;296:14029;;;-1:-1:-1;;;;;296:14029:71;8557:4;296:14029;;;8831:19;;;;;;;;;;;;8690:319;8831:19;;;;:::i;:::-;8634:7;296:14029;;;-1:-1:-1;;;9098:30:71;;9122:4;296:14029;9098:30;;296:14029;;;;;;-1:-1:-1;;;;;296:14029:71;9041:24;;;296:14029;;9041:24;296:14029;8557:4;296:14029;;;9041:24;9098:30;;;;;;;;;;;;;8690:319;296:14029;;9172:63;296:14029;9172:63;296:14029;;;;1590:14:0;;;;;;;;;9172:63:71;;;296:14029;9172:63;;;:::i;:::-;;;;;;;;;;;;;;8690:319;296:14029;;;9246:1025;;296:14029;;;9246:1025;9296:21;;;296:14029;;-1:-1:-1;;;9404:30:71;;9122:4;296:14029;9404:30;;296:14029;8557:4;296:14029;;;9404:30;;;;;;;;;;;;;9292:969;9404:45;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;296:14029:71;;;;;;;8557:4;296:14029;;;;1590:14:0;;;;;;;9738:30:71;;9122:4;296:14029;9738:30;;296:14029;9738:30;;;;;;;;;;;9292:969;9738:45;9893:38;9738:45;;9893:38;9738:45;;;;;:::i;:::-;;;:::i;:::-;296:14029;;;;;;;8634:7;296:14029;;;;9907:24;9893:38;;:::i;:::-;;;:::i;:::-;9246:1025;;;;;;296:14029;;;9738:30;;;;;8557:4;9738:30;;8557:4;9738:30;;;;;;1590:14:0;9738:30:71;;;:::i;:::-;;;1590:14:0;;;;;;9738:30:71;;1590:14:0;9893:38:71;9738:30;;;;;-1:-1:-1;9738:30:71;;9404;;;;8557:4;9404:30;;8557:4;9404:30;;;;;;1590:14:0;9404:30:71;;;:::i;:::-;;;1590:14:0;;;;;;;9404:45:71;:30;;;;;-1:-1:-1;9404:30:71;;9292:969;296:14029;;10035:38;8557:4;296:14029;;10035:38;296:14029;;;;;;;8634:7;296:14029;;;;10049:24;10035:38;;:::i;:::-;296:14029;;;;1590:14:0;;;;;;;10183:30:71;;9122:4;296:14029;10183:30;;296:14029;10183:30;;;;;;;;;;;9292:969;10183:45;;;;;;:::i;:::-;9292:969;;10183:30;;;8557:4;10183:30;;8557:4;10183:30;;;;;;1590:14:0;10183:30:71;;;:::i;:::-;;;1590:14:0;;;;;10183:45:71;:30;;;;;-1:-1:-1;10183:30:71;;;296:14029;;1590:14:0;296:14029:71;;1590:14:0;;;;9172:63:71;;;;;;;;;;;;;;;:::i;:::-;;;;;9098:30;;;;;8557:4;9098:30;;8557:4;9098:30;;;;;;1590:14:0;9098:30:71;;;:::i;:::-;;;1590:14:0;;;;;;;;;;9172:63:71;9098:30;;;;;-1:-1:-1;9098:30:71;;;296:14029;;1590:14:0;296:14029:71;;1590:14:0;;;;8831:19:71;;;8557:4;8831:19;;8557:4;8831:19;;;;;;1590:14:0;8831:19:71;;;:::i;:::-;;;1590:14:0;;;;8831:19:71;1590:14:0;;8831:19:71;;;;;;-1:-1:-1;8831:19:71;;8731:62;;;;;:::i;:::-;296:14029;;8731:62;;;;;296:14029;;;8741:51;8772:20;8790:2;8772:20;;8741:51;;8690:319;8910:9;;;;;:::i;:::-;296:14029;8892:27;;:51;;;8690:319;-1:-1:-1;;;;;;;;;;;8882:62:71;;;;296:14029;;-1:-1:-1;;;8882:62:71;;296:14029;;;;8882:62;;296:14029;8882:62;;296:14029;;;-1:-1:-1;;;;;;;;;;;8882:62:71;;;;;;;;;;;8690:319;8982:15;;;;;:::i;:::-;8690:319;;8882:62;;;;;;;;:::i;:::-;296:14029;;8882:62;;;;;8892:51;8923:20;8941:2;8923:20;;8892:51;;296:14029;-1:-1:-1;;;296:14029:71;;;;;;1590:14:0;296:14029:71;8634:45;;;;;;;;;;;;;:::i;:::-;;;;8443:38;;;;296:14029;;;;;;;;;;;;;3190:18:5;296:14029:71;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;3190:18:5;296:14029:71;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1590:14:0;;;:::i;:::-;296:14029:71;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;1590:14:0;296:14029:71;1590:14:0;296:14029:71;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:5;296:14029:71;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;2707:18:5;296:14029:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;546:3:71;296:14029;;-1:-1:-1;;296:14029:71;;;;;;;;12622:8;12708:28;;;:::i;:::-;296:14029;12459:13;12766:19;546:3;12766:19;;;;296:14029;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;546:3:71;296:14029;;546:3;;;;;;;12954:13;;12459;12969:19;546:3;12969:19;;;;13440:13;;12459;13455:23;296:14029;13455:23;;;;296:14029;;;13480:3;13508:9;;;;:::i;:::-;;296:14029;12459:13;296:14029;;;;;;;;13536:13;:30;13609:21;13536:13;;12459;13536;;;;:::i;13609:21::-;296:14029;13440:13;;12990:3;296:14029;;-1:-1:-1;;;13022:13:71;;296:14029;;;;;13022:13;-1:-1:-1;;;;;;;;;;;13022:13:71;;;;;;;;;;;12990:3;-1:-1:-1;13063:5:71;1590:14:0;-1:-1:-1;;;;;296:14029:71;6854:22:8;13086:10:71;;;;:::i;6854:22:8:-;27524:10:3;296:14029:71;;7009:9:8;296:14029:71;;;7009:9:8;296:14029:71;7505:10:8;296:14029:71;-1:-1:-1;;;296:14029:71;;;;;12459:13;296:14029;;;7505:10:8;296:14029:71;;;;;;7505:10:8;296:14029:71;;13079:4;296:14029;;;;;;6854:12:8;296:14029:71;7009:9:8;296:14029:71;15610:11:8;296:14029:71;;;-1:-1:-1;;;;;296:14029:71;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;296:14029:71;;;;;;27635:8:3;296:14029:71;;;;;15703:15:8;;296:14029:71;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;296:14029:71;15725:48:8;;296:14029:71;;;;;15610:11:8;296:14029:71;;;15703:77:8;296:14029:71;;15702:78:8;15698:126;;12990:3:71;-1:-1:-1;;;;;296:14029:71;;;;;;27635:8:3;296:14029:71;;;;;;;;;;15889:37:8;;296:14029:71;;;;;;15889:37:8;;;296:14029:71;15889:37:8;;;;;:::i;:::-;296:14029:71;15879:48:8;;296:14029:71;;;;;;;12459:13;15943:15:8;;296:14029:71;15961:16:8;7009:9;15961:16;;296:14029:71;15943:34:8;;;;:::i;:::-;15938:460;;12990:3:71;296:14029;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;296:14029:71;;;16424:32:8;;296:14029:71;;;;1590:14:0;;;296:14029:71;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;12990:3:71;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;296:14029:71;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;296:14029:71;;;16587:43:8;;296:14029:71;12810:59:8;;;1590:14:0;;;;296:14029:71;;;;12656:92:8;;;;12810:59;;;1590:14:0;296:14029:71;;12810:59:8;296:14029:71;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;12990:3:71;16678:31:8;;;;:::i;:::-;16724:8;;;296:14029:71;;;16724:29:8;;12990:3:71;16720:176:8;;;;14785:4;;;;;;:::i;:::-;13063:5:71;1590:14:0;13150:7:71;296:14029;13111:60;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;;;;;13160:10;;;;:::i;13111:60::-;;;;;;;;;;;12990:3;-1:-1:-1;13150:7:71;296:14029;13063:5;1590:14:0;296:14029:71;1590:14:0;-1:-1:-1;;;;;296:14029:71;;;;13198:179;;296:14029;;;;;;;;;;;13353:10;;;;;:::i;:::-;296:14029;;13198:179;296:14029;;1590:14:0;;;;;;;;;;13198:179:71;;296:14029;13198:179;;;:::i;:::-;;;;;;;;;;;;;;12990:3;13186:191;;;;;:::i;:::-;;;;;;:::i;:::-;;296:14029;;1590:14:0;;;;13391:23:71;;296:14029;13391:23;;1590:14:0;296:14029:71;13391:23;27501:38:3;13391:23:71;;-1:-1:-1;;;;;;;;;;;13391:23:71;;;;;;;12459:13;13391:23;;;12990:3;;296:14029;12954:13;;13391:23;;;296:14029;13391:23;;;;;;;;;:::i;:::-;;;;;13198:179;;;;;;;;;;;;;;:::i;:::-;;;;13111:60;;;296:14029;13111:60;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;296:14029:71;;16587:43:8;;;;16424:32;;;;;296:14029:71;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;296:14029:71;16021:3:8;296:14029:71;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;12459:13:71;296:14029;;;;16314:19:8;;1590:14:0;;;16314:19:8;;296:14029:71;27501:38:3;296:14029:71;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;296:14029:71;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;296:14029:71;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;296:14029:71;12810:59:8;;;-1:-1:-1;;;546:3:71;12810:59:8;;;296:14029:71;;;;;;12810:59:8;;;296:14029:71;;;;;;;;16170:185:8;;296:14029:71;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;13022:13:71;;;;296:14029;13022:13;;;;;;;;;1590:14:0;13022:13:71;;;:::i;:::-;;;1590:14:0;;;;;13022:13:71;;;;;;;-1:-1:-1;13022:13:71;;546:3;296:14029;;;;1590:14:0;;;:::i;:::-;546:3:71;;;;;;;;296:14029;;1590:14:0;;;:::i;:::-;546:3:71;;;;;;;;296:14029;546:3;;;;;;;;;;;;12787;546;12622:8;546:3;12622:8;546:3;;;;;;12806:32;12459:13;12806:32;;;;;:::i;:::-;296:14029;;12751:13;;296:14029;;;;;;;-1:-1:-1;;296:14029:71;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;13808:55;296:14029;;;;;13808:7;296:14029;;;;;;;1590:14:0;;;;;;;;13808:55:71;;296:14029;;;13808:55;;1590:14:0;296:14029:71;;;;;;;;13808:55;;;;;;;;;;13874:23;296:14029;;;13874:23;:::i;13808:55::-;;;;;;;;;;;:::i;:::-;;;296:14029;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;13808:55;;;13874:23;13808:55;;;296:14029;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;296:14029:71;;;;1063:7;296:14029;1116:5;1590:14:0;296:14029:71;1590:14:0;296:14029:71;;-1:-1:-1;;;1063:94:71;;296:14029;1063:94;;;1590:14:0;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:94;296:14029;;1063:94;;;;;;;;;;;296:14029;1187:9;;;;:::i;:::-;296:14029;1177:19;;:34;;;296:14029;-1:-1:-1;;;;;;;;;;;1167:45:71;;;;296:14029;;-1:-1:-1;;;1167:45:71;;296:14029;;;;1167:45;;296:14029;1167:45;296:14029;;;-1:-1:-1;;;;;;;;;;;1167:45:71;;;;;;;;;;;296:14029;1242:9;;;;;:::i;:::-;296:14029;1232:19;;:34;;;296:14029;-1:-1:-1;;;;;;;;;;;1222:45:71;;;;296:14029;;-1:-1:-1;;;1222:45:71;;296:14029;;;;1222:45;;296:14029;1222:45;296:14029;;;-1:-1:-1;;;;;;;;;;;1222:45:71;;;;;;;;;;;296:14029;;;;-1:-1:-1;296:14029:71;;;;;;;1590:14:0;;296:14029:71;1590:14:0;;:::i;:::-;1319:1:71;296:14029;;;;;;;;;;1331:20;;;:::i;:::-;296:14029;1361:20;;;:::i;:::-;296:14029;;;1590:14:0;;;;;;1419:99:71;;296:14029;;;1419:99;;296:14029;1419:99;;1590:14:0;296:14029:71;;;;;;;;;1063:94;296:14029;;;;;;;;;;;;;;;;;;;1419:99;;;;;;;;;;;;;;;;;;;296:14029;1534:13;;1568:3;296:14029;;1549:17;;;;;1596:9;1587:32;1596:9;296:14029;1596:9;;;:::i;:::-;;296:14029;1587:32;:::i;:::-;1633:34;296:14029;1642:9;;;;:::i;:::-;;:21;296:14029;1633:34;:::i;:::-;296:14029;1534:13;;1549:17;;296:14029;;1419:99;;;;;;;;;;;;;:::i;:::-;;;296:14029;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;1116:5;296:14029;;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;1419:99;;;;;;;;296:14029;;;;;;;;:::i;:::-;;;;;;;;;;;;1590:14:0;;296:14029:71;;-1:-1:-1;296:14029:71;;-1:-1:-1;296:14029:71;;;;;;;;;;;;;1222:45;;;;;:::i;:::-;296:14029;;1222:45;;;;1232:34;1255:11;;;;1232:34;;1167:45;;;;;:::i;:::-;296:14029;;1167:45;;;;1177:34;1200:11;;;;1177:34;;1063:94;;;;;;;;;;;;;:::i;:::-;;;;296:14029;;;;;;;;;;;;;2883:26:5;296:14029:71;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;2883:26:5;296:14029:71;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1590:14:0;;;:::i;:::-;296:14029:71;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;296:14029:71;1590:14:0;296:14029:71;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;1590:14:0;;296:14029:71;;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;;;;;;;;;:::i;:::-;5122:38;;;5130:13;5122:38;;5201:4;1590:14:0;;5248:5:71;1590:14:0;296:14029:71;;-1:-1:-1;;;5292:31:71;;5317:4;296:14029;5292:31;;296:14029;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;5292:31;296:14029;;5292:31;;;;;;;;;;;5122:38;-1:-1:-1;5406:7:71;296:14029;;;-1:-1:-1;;;5406:56:71;;296:14029;5406:56;;1590:14:0;;;5292:31:71;296:14029;;;;;;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;5406:56;296:14029;5406:56;296:14029;;5406:56;;;;;;;;;;;5122:38;296:14029;;;;;;;5477:21;;;5485:13;5477:21;;5473:1069;;;5477:21;;;5542:9;;;;:::i;:::-;296:14029;5524:27;;:52;;;;5473:1069;5514:63;-1:-1:-1;;;;;;;;;;;5514:63:71;;;;296:14029;;-1:-1:-1;;;5514:63:71;;296:14029;;;;5514:63;;296:14029;5514:63;296:14029;5292:31;296:14029;-1:-1:-1;;;;;;;;;;;5514:63:71;;;;;;;;;;;5473:1069;-1:-1:-1;;5406:7:71;296:14029;5763:176;;;;5731:17;;296:14029;;-1:-1:-1;;;;;296:14029:71;5731:17;:::i;:::-;5406:7;296:14029;;;-1:-1:-1;;;;;296:14029:71;;5916:9;;;:::i;:::-;296:14029;;;1590:14:0;;;;;;;;;5763:176:71;;;296:14029;5763:176;;;:::i;:::-;;;;;;;;;;;5473:1069;-1:-1:-1;5406:7:71;296:14029;;;-1:-1:-1;;;5954:51:71;;296:14029;;;;;-1:-1:-1;;;;;296:14029:71;;5954:51;;296:14029;-1:-1:-1;;5292:31:71;296:14029;;1590:14:0;5201:4:71;296:14029;;;5954:51;;;;;;;;;;5473:1069;;;296:14029;;-1:-1:-1;;;6575:30:71;;5317:4;296:14029;6575:30;;296:14029;;5201:4;296:14029;5292:31;296:14029;1590:14:0;6575:30:71;;;;;;;;;;;5473:1069;-1:-1:-1;296:14029:71;;-1:-1:-1;;;6639:31:71;;5317:4;296:14029;6639:31;;296:14029;;5201:4;296:14029;5292:31;296:14029;6639:31;;;;;;;;;;;;5473:1069;6910:32;;;;6974:97;6910:32;;;:::i;:::-;5406:7;296:14029;;;-1:-1:-1;;;6974:97:71;;296:14029;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;6974:97;;296:14029;;;;;6974:97;;;:::i;:::-;;;;;;;;;;;;;;5473:1069;296:14029;;;7082:1230;;296:14029;;;7082:1230;7132:21;;;296:14029;;-1:-1:-1;;;7241:30:71;;5317:4;296:14029;7241:30;;296:14029;5201:4;296:14029;5292:31;296:14029;7241:30;;;;;;;;;;;;;7128:1174;7241:45;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;296:14029:71;;;;;;;5201:4;5292:31;296:14029;;;1590:14:0;;;;;;;7577:30:71;;5317:4;296:14029;7577:30;;296:14029;7577:30;;;;;;;;;;;7128:1174;7577:45;;;;;;:::i;:::-;296:14029;-1:-1:-1;;296:14029:71;;;;;;;;5201:4;5292:31;296:14029;;;1590:14:0;;;;;;;7752:31:71;;5317:4;296:14029;7752:31;;296:14029;7752:31;;;;;;;;;;;7128:1174;7736:47;;;;;;:::i;:::-;7082:1230;;;;;;;296:14029;;;7752:31;;;5201:4;7752:31;;5201:4;7752:31;;;;;;1590:14:0;7752:31:71;;;:::i;:::-;;;1590:14:0;;;;;7736:47:71;7752:31;;;;;-1:-1:-1;7752:31:71;;296:14029;-1:-1:-1;;;296:14029:71;;;;;5292:31;1590:14:0;296:14029:71;7577:30;;;5201:4;7577:30;;5201:4;7577:30;;;;;;1590:14:0;7577:30:71;;;:::i;:::-;;;1590:14:0;;;;;7577:45:71;:30;;;;;-1:-1:-1;7577:30:71;;296:14029;-1:-1:-1;;;296:14029:71;;;;;5292:31;1590:14:0;296:14029:71;7241:30;;;;5201:4;7241:30;;5201:4;7241:30;;;;;;1590:14:0;7241:30:71;;;:::i;:::-;;;1590:14:0;;;;;;;7241:45:71;:30;;;;;-1:-1:-1;7241:30:71;;7128:1174;296:14029;5201:4;5292:31;296:14029;;;;;;1590:14:0;;;;;;;7924:31:71;;5317:4;296:14029;7924:31;;296:14029;7924:31;;;;;;;;;;;7128:1174;7908:47;;;;;;:::i;:::-;296:14029;;-1:-1:-1;;296:14029:71;;;;;;;;;-1:-1:-1;;;8069:30:71;;5317:4;296:14029;8069:30;;296:14029;5201:4;296:14029;5292:31;296:14029;8069:30;;;;;;;;;;;;;7128:1174;8069:45;5201:4;8069:45;;5292:31;8069:45;;;;;:::i;:::-;296:14029;;;;1590:14:0;;;;;;;8224:30:71;;5317:4;296:14029;8224:30;;296:14029;8224:30;;;;;;;;;;;7128:1174;8224:45;;;;;;:::i;:::-;;;:::i;:::-;7128:1174;;8224:30;;;5201:4;8224:30;;5201:4;8224:30;;;;;;1590:14:0;8224:30:71;;;:::i;:::-;;;1590:14:0;;;;;8224:45:71;:30;;;;;-1:-1:-1;8224:30:71;;8069;;;;;5201:4;8069:30;;5201:4;8069:30;;;;;;1590:14:0;8069:30:71;;;:::i;:::-;;;1590:14:0;;;;;;;;5201:4:71;8069:30;;;;;-1:-1:-1;8069:30:71;;7924:31;;;5201:4;7924:31;;5201:4;7924:31;;;;;;1590:14:0;7924:31:71;;;:::i;:::-;;;1590:14:0;;;;;7908:47:71;7924:31;;;;;-1:-1:-1;7924:31:71;;6974:97;;;;;;;;;;;;;;;:::i;:::-;;;;;6639:31;;;;5201:4;6639:31;;5201:4;6639:31;;;;;;1590:14:0;6639:31:71;;;:::i;:::-;;;1590:14:0;;;;;;;6639:31:71;6910:32;6639:31;;;;;-1:-1:-1;6639:31:71;;6575:30;;;;5201:4;6575:30;;5201:4;6575:30;;;;;;1590:14:0;6575:30:71;;;:::i;:::-;;;1590:14:0;;;;;6575:30:71;;;;;;;-1:-1:-1;6575:30:71;;5954:51;;;5201:4;5954:51;5201:4;5954:51;;;;;;;:::i;:::-;;;;;5763:176;;;;;;;;;;;;;:::i;:::-;;;5514:63;;;;;:::i;:::-;296:14029;;5514:63;;;;;296:14029;;1590:14:0;296:14029:71;;1590:14:0;;;;5524:52:71;5406:56;5555:21;;;5524:52;;;5473:1069;6064:9;;;;;;;:::i;:::-;296:14029;6046:27;;:52;;;5473:1069;-1:-1:-1;;;;;;;;;;;6036:63:71;;;;296:14029;;-1:-1:-1;;;6036:63:71;;296:14029;;;;6036:63;;296:14029;6036:63;296:14029;5292:31;296:14029;-1:-1:-1;;;;;;;;;;;6036:63:71;;;;;;;;5473:1069;6230:41;;;;;:::i;:::-;5406:7;296:14029;;;-1:-1:-1;;;6285:182:71;;296:14029;;6285:182;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;;6285:182;296:14029;6285:182;296:14029;6285:182;296:14029;6285:182;;;:::i;:::-;;;;;;;;;;6482:49;6285:182;5201:4;6285:182;;;5473:1069;-1:-1:-1;5406:7:71;296:14029;;;-1:-1:-1;;;6482:49:71;;296:14029;;;;;-1:-1:-1;;;;;296:14029:71;;6482:49;;296:14029;;;;1590:14:0;;;;296:14029:71;;;;;;;;;;6482:49;;;;;;;;;;;;;5473:1069;;;;6482:49;;;5201:4;6482:49;5201:4;6482:49;;;;;;;:::i;:::-;;;;;6285:182;;;;;;;;;;;;;:::i;:::-;;;6036:63;;;;;:::i;:::-;296:14029;;6036:63;;;;296:14029;;;;6046:52;6077:21;5406:56;6077:21;;6046:52;;296:14029;-1:-1:-1;;;296:14029:71;;;;;5292:31;1590:14:0;296:14029:71;5406:56;;;;;;;;;;;;;;:::i;:::-;;;;;5292:31;;;;5201:4;5292:31;;5201:4;5292:31;;;;;;1590:14:0;5292:31:71;;;:::i;:::-;;;1590:14:0;;;;;5292:31:71;;;;;;;-1:-1:-1;5292:31:71;;5122:38;;;;;296:14029;;;;;;;;;;;;;;;;;;3038:18:5;296:14029:71;;;;;;;3038:18:5;296:14029:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;296:14029:71;;;;;;;3331:16:5;296:14029:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3485:19:5;296:14029:71;;;;:::i;:::-;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;3485:19:5;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1590:14:0;;;:::i;:::-;296:14029:71;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;1811:38;;;1819:13;1811:38;1890:4;1590:14:0;1937:5:71;1590:14:0;2027:7:71;296:14029;;;-1:-1:-1;;;2027:56:71;;296:14029;2027:56;;1590:14:0;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2027:56;296:14029;2027:56;296:14029;;2027:56;;;;;;;;;;;1811:38;296:14029;;;;;;;2098:21;;2106:13;2098:21;;2094:1065;;;2098:21;;;2163:9;;;;:::i;:::-;296:14029;2145:27;;:52;;;2094:1065;-1:-1:-1;;;;;;;;;;;2135:63:71;;;;296:14029;;-1:-1:-1;;;2135:63:71;;296:14029;;;;2135:63;;296:14029;2135:63;296:14029;;;-1:-1:-1;;;;;;;;;;;2135:63:71;;;;;;;;;;;2094:1065;-1:-1:-1;;2027:7:71;296:14029;2384:175;;;;2352:17;;296:14029;;-1:-1:-1;;;;;296:14029:71;2352:17;:::i;2384:175::-;;;;;;;;;;;2094:1065;-1:-1:-1;2027:7:71;296:14029;;;-1:-1:-1;;;2574:50:71;;296:14029;;;;;-1:-1:-1;;;;;296:14029:71;;2574:50;;296:14029;-1:-1:-1;;296:14029:71;;;1590:14:0;1890:4:71;296:14029;;;2574:50;;;;;;;;;;2094:1065;;;296:14029;;-1:-1:-1;;;3192:30:71;;3216:4;296:14029;3192:30;;296:14029;;1890:4;296:14029;;;3192:30;;;;;;;;;;;;2094:1065;-1:-1:-1;296:14029:71;;-1:-1:-1;;;3256:31:71;;3216:4;296:14029;3256:31;;296:14029;;1890:4;296:14029;;;3256:31;;;;;;;;;;;;;;2094:1065;-1:-1:-1;2027:7:71;296:14029;;;-1:-1:-1;;;3319:96:71;;296:14029;3319:96;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;3319:96;;1590:14:0;296:14029:71;;;3319:96;;;:::i;:::-;;;;;;;;;;;;;;2094:1065;296:14029;;;3426:1563;;296:14029;;;3426:1563;3476:21;;;296:14029;;-1:-1:-1;;;3547:31:71;;3216:4;296:14029;3547:31;;296:14029;1890:4;296:14029;;;3547:31;;;;;;;;;;;;;3472:1507;3547:47;;;;:::i;:::-;-1:-1:-1;;296:14029:71;;;;;;;;3616:19;;1890:4;3616:19;296:14029;3616:19;;:::i;:::-;296:14029;;-1:-1:-1;;;3884:31:71;;3216:4;296:14029;3884:31;;296:14029;;;;;;3884:31;;;;;;;;;;;3472:1507;3884:47;3953:15;3884:47;;;;:::i;:::-;3953:15;:::i;:::-;296:14029;;-1:-1:-1;;;4049:30:71;;3216:4;296:14029;4049:30;;296:14029;1890:4;296:14029;;;4049:30;;;;;;;;;;;3472:1507;4034:45;;;;;:::i;:::-;296:14029;;;;;;;;;;;4101:26;;1890:4;4101:26;296:14029;4101:26;;;:::i;:::-;296:14029;;-1:-1:-1;;;4208:30:71;;3216:4;296:14029;4208:30;;296:14029;;;;;;4208:30;;;;;;;;;;;3472:1507;4193:45;;;;:::i;:::-;296:14029;;-1:-1:-1;;296:14029:71;;;;;;;;4260:26;;;;:::i;296:14029::-;-1:-1:-1;;;296:14029:71;;;;;;1590:14:0;296:14029:71;4208:30;;;1890:4;4208:30;;1890:4;4208:30;;;;;;1590:14:0;4208:30:71;;;:::i;:::-;;;1590:14:0;;;;4193:45:71;1590:14:0;;4208:30:71;;;;;;-1:-1:-1;4208:30:71;;4049;;1890:4;4049:30;;1890:4;4049:30;;;;;;1590:14:0;4049:30:71;;;:::i;:::-;;;1590:14:0;;;;4034:45:71;1590:14:0;;4049:30:71;;;;;-1:-1:-1;4049:30:71;;3884:31;;;1890:4;3884:31;;1890:4;3884:31;;;;;;1590:14:0;3884:31:71;;;:::i;:::-;;;1590:14:0;;;;;3953:15:71;3884:31;;;;;-1:-1:-1;3884:31:71;;296:14029;-1:-1:-1;;;296:14029:71;;;;;;1590:14:0;296:14029:71;3547:31;;;1890:4;3547:31;;1890:4;3547:31;;;;;;1590:14:0;3547:31:71;;;:::i;:::-;;;1590:14:0;;;;;3547:47:71;1590:14:0;;3547:31:71;;;;;-1:-1:-1;3547:31:71;;3472:1507;296:14029;;;;;;;;1590:14:0;;;4425:30:71;;3216:4;296:14029;4425:30;;296:14029;1890:4;4425:30;296:14029;4425:30;;;;;;;;;;;;;3472:1507;4410:45;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;296:14029:71;;;;;;;;1890:4;296:14029;;;;1590:14:0;;;;;;;4759:30:71;;3216:4;296:14029;4759:30;;296:14029;4759:30;;;;;;;;;;;3472:1507;4744:45;296:14029;4744:45;;1890:4;4744:45;;;;;:::i;:::-;296:14029;;;;1590:14:0;;;;;;;4899:31:71;;3216:4;296:14029;4899:31;;296:14029;4899:31;;;;;;;;;;;3472:1507;4899:47;;;;;;:::i;:31::-;;;1890:4;4899:31;;1890:4;4899:31;;;;;;1590:14:0;4899:31:71;;;:::i;:::-;;;1590:14:0;;;;;4899:47:71;:31;;;;;-1:-1:-1;4899:31:71;;4759:30;;;;1890:4;4759:30;;1890:4;4759:30;;;;;;1590:14:0;4759:30:71;;;:::i;:::-;;;1590:14:0;;;;;;4759:30:71;;296:14029;4759:30;;;;;-1:-1:-1;4759:30:71;;4425;;;1890:4;4425:30;;1890:4;4425:30;;;;;;1590:14:0;4425:30:71;;;:::i;:::-;;;1590:14:0;;;;;4410:45:71;4425:30;;;;;-1:-1:-1;4425:30:71;;3319:96;;;;;;;;;;;;;;;:::i;:::-;;;;;3256:31;;;;;1890:4;3256:31;;1890:4;3256:31;;;;;;1590:14:0;3256:31:71;;;:::i;:::-;;;1590:14:0;;;;3319:96:71;1590:14:0;;;3256:31:71;;;;;;;-1:-1:-1;3256:31:71;;3192:30;;;;1890:4;3192:30;;1890:4;3192:30;;;;;;1590:14:0;3192:30:71;;;:::i;:::-;;;1590:14:0;;;;;3192:30:71;;;;;;;-1:-1:-1;3192:30:71;;2574:50;;;1890:4;2574:50;1890:4;2574:50;;;;;;;:::i;:::-;;;;;2384:175;;;;;;;;;;;;;:::i;:::-;;;2135:63;;;;;:::i;:::-;296:14029;;2135:63;;;;2145:52;2176:21;2027:56;2176:21;;2145:52;;2094:1065;2683:9;;;;;:::i;:::-;296:14029;2665:27;;:52;;;2094:1065;-1:-1:-1;;;;;;;;;;;2655:63:71;;;;296:14029;;-1:-1:-1;;;2655:63:71;;296:14029;;;;2655:63;;296:14029;2655:63;296:14029;;;-1:-1:-1;;;;;;;;;;;2655:63:71;;;;;;;;2094:1065;2849:41;;;;;:::i;:::-;2027:7;296:14029;;;-1:-1:-1;;;2904:181:71;;296:14029;2904:181;;296:14029;;;;-1:-1:-1;;;;;296:14029:71;;2904:181;296:14029;2904:181;;;296:14029;2904:181;;;:::i;:::-;;;;;;;;;;;2094:1065;-1:-1:-1;2027:7:71;296:14029;;;-1:-1:-1;;;3100:48:71;;296:14029;;;;;-1:-1:-1;;;;;296:14029:71;;3100:48;;296:14029;;;;1590:14:0;;;1890:4:71;296:14029;;;3100:48;;;;;;;;;;2094:1065;;;;3100:48;;;1890:4;3100:48;1890:4;3100:48;;;;;;;:::i;:::-;;;;;2904:181;;;;;;;;;;;;;:::i;:::-;;;2655:63;;;;;:::i;:::-;296:14029;;2655:63;;;;2665:52;2696:21;2027:56;2696:21;;2665:52;;296:14029;-1:-1:-1;;;296:14029:71;;;;;;1590:14:0;296:14029:71;2027:56;;;;;;;;;;;;;:::i;:::-;;;;1811:38;;;;296:14029;;;;;;;;;;;;;;;;;;2563:16:5;296:14029:71;;;;;;;2563:16:5;296:14029:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10403:38;;;10411:13;10403:38;296:14029;;;;;10518:5;1590:14:0;296:14029:71;;;;;;10596:7;296:14029;;;;;;;1590:14:0;;;10596:46:71;;;296:14029;10596:46;;1590:14:0;296:14029:71;;;;;;;;;;10596:46;;;;;;;;;;;;;;;;10403:38;296:14029;;;;;;;10657:21;;10665:13;10657:21;;10653:320;;;10657:21;;;10722:9;;;;:::i;:::-;296:14029;10704:27;;:51;;;10653:320;-1:-1:-1;;;;;;;;;;;10694:62:71;;;;296:14029;;-1:-1:-1;;;10694:62:71;;296:14029;;;;10694:62;;296:14029;10694:62;296:14029;;;-1:-1:-1;;;;;;;;;;;10694:62:71;;;;;;;;10653:320;-1:-1:-1;;10596:7:71;296:14029;;;-1:-1:-1;;;10794:20:71;;296:14029;;;-1:-1:-1;;;;;296:14029:71;;;;;10794:20;;;;;;;;;;;;10653:320;10794:20;;;;:::i;:::-;10596:7;296:14029;;;-1:-1:-1;;;11063:31:71;;11088:4;296:14029;11063:31;;296:14029;;;;;;-1:-1:-1;;;;;296:14029:71;11005:24;;;296:14029;;11005:24;296:14029;;;;;11005:24;11063:31;;;;;;;;;;;;;10653:320;296:14029;;11138:64;296:14029;11138:64;296:14029;;;;1590:14:0;;;;;;;;;11138:64:71;;;296:14029;11138:64;;;:::i;:::-;;;;;;;;;;;;;;10653:320;296:14029;;;11213:1031;;296:14029;;;11213:1031;11263:21;;;296:14029;;-1:-1:-1;;;11371:31:71;;11088:4;296:14029;11371:31;;296:14029;;;;;11371:31;;;;;;;;;;;;;11259:975;11371:47;;;;;;:::i;:::-;-1:-1:-1;;296:14029:71;;;;;;;;;;;;1590:14:0;;;;;;;11707:31:71;;11088:4;296:14029;11707:31;;296:14029;11707:31;;;;;;;;;;;:47;11864:38;11707:47;;11864:38;11707:47;;;;;:::i;11371:31::-;;;;296:14029;11371:31;;296:14029;11371:31;;;;;;1590:14:0;11371:31:71;;;:::i;:::-;;;1590:14:0;;;;;;;11371:47:71;:31;;;;;-1:-1:-1;11371:31:71;;11138:64;;;;;;;;;;;;;;;:::i;:::-;;;;;11063:31;;;;;296:14029;11063:31;;296:14029;11063:31;;;;;;1590:14:0;11063:31:71;;;:::i;:::-;;;1590:14:0;;;;;;;;;;11138:64:71;11063:31;;;;;-1:-1:-1;11063:31:71;;10794:20;;;296:14029;10794:20;;296:14029;10794:20;;;;;;1590:14:0;10794:20:71;;;:::i;:::-;;;1590:14:0;;;;10794:20:71;1590:14:0;;10794:20:71;;;;;;-1:-1:-1;10794:20:71;;10694:62;;;;;:::i;:::-;296:14029;;10694:62;;;;10704:51;10735:20;10753:2;10735:20;;10704:51;;10653:320;10874:9;;;;;:::i;:::-;296:14029;10856:27;;:51;;;10653:320;-1:-1:-1;;;;;;;;;;;10846:62:71;;;;296:14029;;-1:-1:-1;;;10846:62:71;;296:14029;;;;10846:62;;296:14029;10846:62;;296:14029;;;-1:-1:-1;;;;;;;;;;;10846:62:71;;;;;;;;;;;10653:320;10946:15;;;;;:::i;:::-;10653:320;;10846:62;;;;;;;;:::i;:::-;296:14029;;10846:62;;;;;10856:51;10887:20;10905:2;10887:20;;10856:51;;10596:46;;;;;;;;;;;;;:::i;:::-;;;;10403:38;;;;296:14029;;;;;;;;-1:-1:-1;;296:14029:71;;;;-1:-1:-1;;;648:20:71;;1590:14:0;296:14029:71;648:20;;1590:14:0;;;;;296:14029:71;-1:-1:-1;;;296:14029:71;;;1590:14:0;-1:-1:-1;648:20:71;;;-1:-1:-1;;;;;;;;;;;648:20:71;;;;;;;1590:14:0;648:20:71;1590:14:0;648:20:71;296:14029;648:20;;;296:14029;;;;1590:14:0;;;;;;;628:52:71;;296:14029;;628:52;;1590:14:0;296:14029:71;1590:14:0;;;;:::i;:::-;610:8:71;1590:14:0;;;;628:52:71;;296:14029;-1:-1:-1;;;;;;;;;;;628:52:71;;;;;;;;296:14029;-1:-1:-1;727:5:71;1590:14:0;296:14029:71;;;-1:-1:-1;;;;;296:14029:71;700:34;;;;-1:-1:-1;;;;;700:34:71;;;;;;;;1590:14:0;700:34:71;;;;;;296:14029;;700:34;;;296:14029;700:34;;;;;690:44;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;727:5:71;1590:14:0;296:14029:71;;-1:-1:-1;;;751:12:71;;-1:-1:-1;;;;;296:14029:71;;;;;1590:14:0;296:14029:71;;;;751:12;;;;;;;296:14029;751:12;;;296:14029;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;-1:-1:-1;;;;;;;;;;;774:33:71;;;;296:14029;;1590:14:0;;;;774:33:71;;296:14029;774:33;;296:14029;;1590:14:0;;;;;296:14029:71;1590:14:0;;296:14029:71;-1:-1:-1;;;648:20:71;296:14029;;1590:14:0;296:14029:71;774:33;;;;-1:-1:-1;;;;;;;;;;;774:33:71;;;;;;;;296:14029;-1:-1:-1;1590:14:0;;296:14029:71;;-1:-1:-1;;;;;296:14029:71;-1:-1:-1;;;;;;;;;;;817:31:71;;;;296:14029;;1590:14:0;;;;817:31:71;;296:14029;817:31;;296:14029;;1590:14:0;;;;296:14029:71;;1590:14:0;;296:14029:71;-1:-1:-1;;;648:20:71;296:14029;;1590:14:0;817:31:71;;774:33;817:31;;-1:-1:-1;;;;;;;;;;;817:31:71;;;;;;;;296:14029;;774:33;;;;296:14029;774:33;;:::i;:::-;296:14029;774:33;;;;296:14029;;1590:14:0;296:14029:71;1590:14:0;;;;;751:12:71;;;1590:14:0;751:12:71;;1590:14:0;751:12:71;;;;;;1590:14:0;751:12:71;;;:::i;:::-;;;1590:14:0;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;751:12;;;;;;-1:-1:-1;751:12:71;;700:34;1590:14:0;;;296:14029:71;1590:14:0;;296:14029:71;1590:14:0;;296:14029:71;1590:14:0;628:52:71;1590:14:0;628:52:71;;1590:14:0;628:52:71;;;;;;1590:14:0;628:52:71;;;:::i;:::-;;;1590:14:0;;;;;628:52:71;;;;;-1:-1:-1;628:52:71;;648:20;;;;;;296:14029;648:20;;;;;;:::i;:::-;;;;296:14029;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;296:14029:71;;;;;;;;-1:-1:-1;;296:14029:71;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1590:14:0;296:14029:71;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;296:14029:71;1590:14:0;:::o;:::-;296:14029:71;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;:::o;:::-;;296:14029:71;;;;;;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;:::o;:::-;-1:-1:-1;;;;;1590:14:0;;;;296:14029:71;;-1:-1:-1;;296:14029:71;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;296:14029:71;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;296:14029:71;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;296:14029:71:-;-1:-1:-1;;;;;296:14029:71;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;296:14029:71;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;;296:14029:71;;;;;;;;;;;10665:13;296:14029;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1590:14:0;;;:::i;:::-;296:14029:71;;;1590:14:0;;;296:14029:71;;;1590:14:0;296:14029:71;;;:::o;:::-;;;;;;;;;;;;;;1590:14:0;;;;:::i;:::-;;;296:14029:71;;;;;1590:14:0;296:14029:71;;;;;;:::i;:::-;;;;;;:::o;:::-;;1590:14:0;;;296:14029:71;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;296:14029:71:o;:::-;1590:14:0;;;296:14029:71;;;;;;;;;;1590:14:0;;;296:14029:71;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;1590:14:0;;;;296:14029:71;;;:::o;:::-;;1590:14:0;;-1:-1:-1;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;296:14029:71:o;:::-;;;;;;;;;;:::o;:::-;1590:14:0;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;296:14029:71;;;;;;;;-1:-1:-1;296:14029:71;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;296:14029:71;;;;;;;;;;;;;;;;:::o;1243:204:1:-;1302:7;296:14029:71;;;;;;;1325:14:1;:::o;1298:143::-;296:14029:71;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;296:14029:71;192:59:1;;;;;;1590:14:0;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;296:14029:71;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;26720:91:3;-1:-1:-1;;;;;;;;;;;26787:17:3;;;;296:14029:71;;-1:-1:-1;;;26787:17:3;;-1:-1:-1;;;;;296:14029:71;;;26787:17:3;;;296:14029:71;;;;;1590:14:0;-1:-1:-1;296:14029:71;26787:17:3;296:14029:71;-1:-1:-1;;;;;;;;;;;;26787:17:3;;;;;;;;26720:91;:::o;26787:17::-;;;;;:::i;:::-;26720:91::o;:::-;-1:-1:-1;;;;;;;;;;;26787:17:3;;;;296:14029:71;;-1:-1:-1;;;26787:17:3;;-1:-1:-1;;;;;296:14029:71;;;26787:17:3;;;296:14029:71;-1:-1:-1;;296:14029:71;;;1590:14:0;-1:-1:-1;296:14029:71;26787:17:3;296:14029:71;-1:-1:-1;;;;;;;;;;;;26787:17:3;;;;;;;;26720:91;:::o;:::-;-1:-1:-1;;;;;;;;;;;26787:17:3;;;;296:14029:71;;-1:-1:-1;;;26787:17:3;;-1:-1:-1;;;;;296:14029:71;;;;26787:17:3;;;296:14029:71;;;;1590:14:0;;;;-1:-1:-1;296:14029:71;;;-1:-1:-1;;;;;;;;;;;;26787:17:3;;;;;;;;26720:91;:::o;2270:110:1:-;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;296:14029:71;;1590:14:0;;;;2349:24:1;;;;;1590:14:0;13895:1:71;296:14029;;;1590:14:0;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;296:14029:71;;1590:14:0;;;;2349:24:1;;;;;1590:14:0;296:14029:71;;;1590:14:0;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;15480:::-;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;296:14029:71;;1590:14:0;;;;15559:24:1;;;;;1590:14:0;296:14029:71;;;1590:14:0;-1:-1:-1;15559:24:1;;;-1:-1:-1;;;;;;;;;;;15559:24:1;;;;;;;;15480:110;:::o;14296:::-;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;296:14029:71;;1590:14:0;;;;14375:24:1;;;;;1590:14:0;296:14029:71;;;1590:14:0;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;13112:::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;296:14029:71;;1590:14:0;;;;13191:24:1;;;;;1590:14:0;296:14029:71;;;;1590:14:0;296:14029:71;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;296:14029:71:-;;;;;;;;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;-1:-1:-1;296:14029:71;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;1590:14:0;;;296:14029:71;;:::o;953:236:8:-;296:14029:71;1052:14:8;296:14029:71;;:::i;:::-;1052:14:8;;296:14029:71;;;;;;1109:10:8;296:14029:71;;;;;;1109:10:8;1077:1;296:14029:71;;1077:1:8;296:14029:71;;1077:1:8;296:14029:71;;;;;;;;;;;;;;:::i;:::-;;;546:3;;;;;;;296:14029;546:3;;;;;;;296:14029;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;296:14029:71;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;296:14029:71;;11456:84:8;546:3:71;11456:84:8;;;;;296:14029:71;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;296:14029:71:-;;;1590:14:0;;1109:10:8;296:14029:71;;;;;;-1:-1:-1;296:14029:71;;;;;;;;1048:135:8;296:14029:71;;;;;;1052:14:8;296:14029:71;:::i;:::-;1151:21:8;:::o;953:236::-;1052:14;;;296:14029:71;;;;;:::i;:::-;1052:21:8;;1109:10;;;;296:14029:71;;;;;;;;;;;;;;;1077:1:8;296:14029:71;;1077:1:8;296:14029:71;;1077:1:8;296:14029:71;;;;;;;;;;;;;;:::i;:::-;;;546:3;;;;;;;296:14029;546:3;;;;;;;296:14029;;;:::i;:::-;;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;296:14029:71;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;296:14029:71;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;296:14029:71;;11456:84:8;546:3:71;11456:84:8;;;;;296:14029:71;11331:13:8;;296:14029:71;;;1590:14:0;;1109:10:8;296:14029:71;;;;;;-1:-1:-1;296:14029:71;;;;;;;;1048:135:8;296:14029:71;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;296:14029:71;1364:48:8;1381:9;296:14029:71;1590:14:0;;1364:48:8;296:14029:71;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;296:14029:71;;1364:48:8;;;;;;296:14029:71;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;296:14029:71;;1364:48:8;;;;;;:::i;:::-;1458:12;296:14029:71;1458:29:8;;;-1:-1:-1;;;;;296:14029:71;1458:29:8;;;;;:::i;:::-;1540:11;296:14029:71;;;;546:3;;;;;-1:-1:-1;;;;;546:3:71;;;;;-1:-1:-1;296:14029:71;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;296:14029:71;;;;;;;;;1364:48:8;296:14029:71;;1540:11:8;546:3:71;;;;;-1:-1:-1;;;;;;296:14029:71;546:3;;11142:1:8;546:3:71;;;;;;;;296:14029;;;11097:47:8;11078:3;296:14029:71;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;296:14029:71;1590:14:0;;1364:48:8;296:14029:71;1392:19:8;;;:::i;1364:48::-;296:14029:71;1458:12:8;;296:14029:71;1458:29:8;;;-1:-1:-1;;;;;296:14029:71;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;296:14029:71;546:3;;;;;-1:-1:-1;;;;;546:3:71;;;;;-1:-1:-1;296:14029:71;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;296:14029:71;;;;;;;;;1364:48:8;296:14029:71;;1540:11:8;546:3:71;;;;;-1:-1:-1;;;;;;296:14029:71;546:3;;11142:1:8;546:3:71;;;;;;;;296:14029;;;11097:47:8;11078:3;296:14029:71;11054:13:8;;;;;11010:29;;;;643:59;;;;;;;;;;;;;;;:::i;:::-;296:14029:71;1590:14:0;296:14029:71;;1590:14:0;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;296:14029:71;4397:9:8;296:14029:71;4438:11:8;296:14029:71;-1:-1:-1;;;;;296:14029:71;;;;12583:1;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;296:14029:71;12583:1;296:14029;27635:8:3;296:14029:71;;;12583:1;296:14029;;;;;;;;12583:1;296:14029;;;;12583:1;296:14029;;;;4583:37:8;;;;;;;;;;:::i;:::-;296:14029:71;4573:48:8;;12583:1:71;296:14029;;;;4438:11:8;296:14029:71;12583:1;296:14029;4551:77:8;296:14029:71;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;296:14029:71;;-1:-1:-1;;;4811:11:8;;12583:1:71;296:14029;4361:12:8;296:14029:71;12583:1;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;296:14029:71;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;296:14029:71;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;296:14029:71;;4951:12:8;;4984:74;296:14029:71;;12810:59:8;;;4984:74;;296:14029:71;4361:12:8;4984:74;;643:59;296:14029:71;4911:25:8;643:59;;296:14029:71;643:59:8;296:14029:71;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;296:14029:71;;5109:16:8;;;;;5178:8;296:14029:71;5178:8:8;;5165:22;5178:8;;:::i;:::-;296:14029:71;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;296:14029:71;;4361:12:8;5165:22;;296:14029:71;;;;1590:14:0;;;;296:14029:71;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;296:14029:71;4361:12:8;296:14029:71;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;296:14029:71;;;4361:12:8;1978:27;;296:14029:71;;;;;;1590:14:0;;;296:14029:71;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;2352:17:71;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;296:14029:71;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;296:14029:71;;;;4361:12:8;2177:37;;296:14029:71;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;296:14029:71;;12810:59:8;296:14029:71;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;296:14029:71;;;;-1:-1:-1;;;;;;296:14029:71;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;296:14029:71;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;296:14029:71;;;;4361:12:8;2281:43;;296:14029:71;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;296:14029:71;;12810:59:8;296:14029:71;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;296:14029:71;;5520:25:8;296:14029:71;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;296:14029:71;;5998:29:8;;5994:84;;296:14029:71;;6319:8:8;296:14029:71;6101:89:8;643:59;296:14029:71;;6132:37:8;;296:14029:71;;;6132:37:8;;;296:14029:71;6132:37:8;;;;;:::i;:::-;296:14029:71;6122:48:8;;6180:8;;;;:::i;:::-;296:14029:71;;;;;;;643:59:8;296:14029:71;643:59:8;;296:14029:71;;643:59:8;;1590:14:0;643:59:8;;;1590:14:0;6101:89:8;6319:8;:::i;:::-;296:14029:71;;;;1590:14:0;643:59:8;1590:14:0;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;4438:11:8;1590:14:0;;;296:14029:71;1590:14:0;296:14029:71;;;6302:58:8;;296:14029:71;;;;6302:58:8;;296:14029:71;;;643:59:8;6302:58;;643:59;296:14029:71;643:59:8;;296:14029:71;;;27635:8:3;296:14029:71;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;296:14029:71;6230:48:8;;296:14029:71;;;;;;;;;643:59:8;;296:14029:71;;643:59:8;;;296:14029:71;4397:9:8;643:59;;;;;;296:14029:71;;;;;643:59:8;;;;;;;;5089:1309;296:14029:71;;;27635:8:3;296:14029:71;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;296:14029:71;6461:48:8;;296:14029:71;;;;;4438:11:8;296:14029:71;;;6439:77:8;296:14029:71;;643:59:8;;;296:14029:71;6664:15:8;296:14029:71;;27635:8:3;296:14029:71;;;;;;;;;;6696:37:8;;296:14029:71;;;;;;6696:37:8;;;296:14029:71;6696:37:8;;;;;:::i;:::-;296:14029:71;6686:48:8;;296:14029:71;;;;;4249:2493:8;:::o;643:59::-;296:14029:71;;-1:-1:-1;;;643:59:8;;296:14029:71;4361:12:8;643:59;;;;4911:25;643:59;;296:14029:71;643:59:8;296:14029:71;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;1590:14:0;-1:-1:-1;;;1590:14:0;;;4361:12:8;1590:14:0;4911:25:8;1590:14:0;;5994:84:8;6051:8;;;;296:14029:71;6051:8:8;5094:13;296:14029:71;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;296:14029:71;4361:12:8;296:14029:71;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;296:14029:71;;;4361:12:8;3216:27;;296:14029:71;;;;1590:14:0;;;296:14029:71;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;296:14029:71;;;;;;-1:-1:-1;;;;;296:14029:71;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;296:14029:71;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;296:14029:71;;;;4361:12:8;3497:43;;296:14029:71;12810:59:8;;;1590:14:0;;;;12810:59:8;;;1590:14:0;;;;296:14029:71;;12810:59:8;296:14029:71;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;296:14029:71;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;296:14029:71;;3497:43:8;;;;296:14029:71;;;;3497:43:8;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;3497:43:8;296:14029:71;;;3216:27:8;;;;296:14029:71;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;5337:92:8;5402:8;;296:14029:71;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;296:14029:71;;2281:43:8;;;;296:14029:71;;;;2281:43:8;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;2281:43:8;296:14029:71;;;2177:37:8;;;;;:::i;:::-;296:14029:71;;2177:37:8;;;;2102:65;;;;;1978:27;;;296:14029:71;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;296:14029:71;;1590:14:0;296:14029:71;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;296:14029:71;;;;-1:-1:-1;;;;;296:14029:71;;;;;;;1590:14:0;;;;296:14029:71;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;296:14029:71;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;5109:16;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;296:14029:71;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;296:14029:71;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;296:14029:71;;;4811:11:8;;;;;12583:1:71;4811:11:8;;:::i;:::-;12583:1:71;4811:11:8;;;;4547:255;4720:15;;;;;12583:1:71;296:14029;27635:8:3;296:14029:71;;;12583:1;296:14029;;12583:1;296:14029;;;4752:37:8;;296:14029:71;12583:1;296:14029;;;;4752:37:8;;;296:14029:71;4752:37:8;;;;;:::i;:::-;296:14029:71;4742:48:8;;12583:1:71;296:14029;;;;12583:1;296:14029;4713:78:8;:::o;11586:239::-;-1:-1:-1;;;;;1590:14:0;;11652:12:8;296:14029:71;;11652:12:8;296:14029:71;;;11681:9:8;296:14029:71;;11681:9:8;296:14029:71;11707:10:8;296:14029:71;11645:19:8;11707:10;296:14029:71;;;;11586:239:8;296:14029:71;11645:19:8;11734:11;296:14029:71;1590:14:0;296:14029:71;11762:25:8;296:14029:71;;11762:25:8;296:14029:71;;11804:14:8;296:14029:71;;:::i;:::-;;;;11586:239:8;:::o;296:14029:71:-;;;;;;;;;11645:19:8;11804:14;296:14029:71;11586:239:8:o;296:14029:71:-;11804:14:8;11645:19;296:14029:71;;;;;;;;;;;;;;;;11804:14:8;11645:19;296:14029:71;11645:19:8;296:14029:71;;;;11804:14:8;296:14029:71;;26720:91:3:o;296:14029:71:-;;;;;;;;;11707:10:8;11645:19;296:14029:71;;;;;;;;;;;;;;;;11645:19:8;296:14029:71;;11707:10:8;296:14029:71;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;296:14029:71;2771:3:8;296:14029:71;2771:3:8;296:14029:71;;;;2824:12:8;;;296:14029:71;;;;;;-1:-1:-1;;;;;296:14029:71;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;296:14029:71;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;296:14029:71;;;;2824:12:8;2815:49;;296:14029:71;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;-1:-1:-1;296:14029:71;12810:59:8;296:14029:71;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;296:14029:71;;2678:18:8;;2941:90;2995:21;;;296:14029:71;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;296:14029:71;;;;;-1:-1:-1;;;;;296:14029:71;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;296:14029:71;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;296:14029:71;;;;2824:12:8;2815:49;;296:14029:71;12810:59:8;;;1590:14:0;;;12810:59:8;;;1590:14:0;;;;-1:-1:-1;296:14029:71;12810:59:8;296:14029:71;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;296:14029:71;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesEtherfi(bytes32,address,address)":"7f6f69f4","testGetLimitsEtherfi()":"d25f701e","testGetTokensEtherfi()":"c307553a","testPriceFuzzEtherfi(uint256,uint256)":"796f2c75","testSwapBuyIncreasingEtherfi()":"821a7e72","testSwapFuzzEtherfiEethWeEth(uint256,bool)":"23faaaa9","testSwapFuzzEtherfiEthEeth(uint256,bool)":"a9f992f0","testSwapFuzzEtherfiEthWeEth(uint256,bool)":"1d279786","testSwapFuzzEtherfiWeEthEeth(uint256,bool)":"48b4e418","testSwapSellIncreasingEtherfi()":"c6549c14"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pair\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilitiesEtherfi\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsEtherfi\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensEtherfi\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzEtherfi\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasingEtherfi\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzEtherfiEethWeEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzEtherfiEthEeth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzEtherfiEthWeEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzEtherfiWeEthEeth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasingEtherfi\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/EtherfiAdapter.t.sol\":\"EtherfiAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/etherfi/EtherfiAdapter.sol\":{\"keccak256\":\"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0\",\"dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/EtherfiAdapter.t.sol\":{\"keccak256\":\"0xbe1854753bd8082b938924b1c891d1de3b33d043b4383a7af1d08abc21e7ebe5\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://4c9861496c55075d2dc16738089cd9b92b4be8f05537f255b56726b2f4739d51\",\"dweb:/ipfs/QmeV2MSWEve3sCg4xSwS6Bcv2eSDuqGzcBmTVYdeN4Wx6r\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"pair","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"view","type":"function","name":"testGetCapabilitiesEtherfi"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetLimitsEtherfi"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetTokensEtherfi"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"view","type":"function","name":"testPriceFuzzEtherfi"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasingEtherfi"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzEtherfiEethWeEth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzEtherfiEthEeth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzEtherfiEthWeEth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzEtherfiWeEthEeth"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasingEtherfi"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/EtherfiAdapter.t.sol":"EtherfiAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/etherfi/EtherfiAdapter.sol":{"keccak256":"0xc4f85bd8d63c6f5f958af4312225342fff7f3088a079ea4e23f6f9574dfd0e7b","urls":["bzz-raw://f67397f3b22a736484a0c4a81d1642d5458dc34501bf1caefb9d1773bf18a1d0","dweb:/ipfs/QmR3EwEjG6XoFxm48TftNxyRmTWJwk6qT4eQ4cjeVk8RK9"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/EtherfiAdapter.t.sol":{"keccak256":"0xbe1854753bd8082b938924b1c891d1de3b33d043b4383a7af1d08abc21e7ebe5","urls":["bzz-raw://4c9861496c55075d2dc16738089cd9b92b4be8f05537f255b56726b2f4739d51","dweb:/ipfs/QmeV2MSWEve3sCg4xSwS6Bcv2eSDuqGzcBmTVYdeN4Wx6r"],"license":"AGPL-3.0-or-later"}},"version":1},"id":71} \ No newline at end of file diff --git a/evm/out/FractionMath.sol/FractionMath.json b/evm/out/FractionMath.sol/FractionMath.json deleted file mode 100644 index aac5878..0000000 --- a/evm/out/FractionMath.sol/FractionMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212201ebb7d549b5edfe85fda6fcf5397a057220f0023cb3525cf7be7e013b7ba6c0064736f6c634300081b0033","sourceMap":"120:855:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212201ebb7d549b5edfe85fda6fcf5397a057220f0023cb3525cf7be7e013b7ba6c0064736f6c634300081b0033","sourceMap":"120:855:59:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/FractionMath.sol\":\"FractionMath\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/FractionMath.sol":"FractionMath"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"}},"version":1},"id":59} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.sol/FixedPointMathLib.json b/evm/out/FraxV3FrxEthAdapter.sol/FixedPointMathLib.json deleted file mode 100644 index 57ea4e0..0000000 --- a/evm/out/FraxV3FrxEthAdapter.sol/FixedPointMathLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ed7e14a228bfb5328f2335281b86266112ae2b6b8e6eb262eaeeae3a14a3457064736f6c634300081b0033","sourceMap":"361:634:62:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220ed7e14a228bfb5328f2335281b86266112ae2b6b8e6eb262eaeeae3a14a3457064736f6c634300081b0033","sourceMap":"361:634:62:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":\"FixedPointMathLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfraxeth/FraxV3FrxEthAdapter.sol":"FixedPointMathLib"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"}},"version":1},"id":62} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.sol/FraxV3FrxEthAdapter.json b/evm/out/FraxV3FrxEthAdapter.sol/FraxV3FrxEthAdapter.json deleted file mode 100644 index 3a6bd81..0000000 --- a/evm/out/FraxV3FrxEthAdapter.sol/FraxV3FrxEthAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_frxEthMinter","type":"address","internalType":"address"},{"name":"_sfrxEth","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60e03461011657601f6117ac38819003918201601f19168301916001600160401b0383118484101761011a578084926040948552833981010312610116576100468161012e565b906001600160a01b039061005c9060200161012e565b1660c052735e8422345238f34275888049021821e8e08caa1f6080526001600160a01b031660a052604051611669908161014382396080518181816107c301528181610a1501528181610e200152610ff1015260a051818181609b015281816104c601528181610dbd0152610f91015260c0518181816104890152818161083f01528181610a9f01528181610aea01528181610b2801528181610b6f01528181610d7901528181610ec40152818161103c01526111dd0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101165756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca011461045a57806348bd7dfd146103835780638307c65514610320578063a9270fbe146102c4578063aad6e488146101d85763ecbbc0330361000e57346101d45760203660031901126101d45760405161007f6060826105d9565b6002815260208101604036823760405163ba947f2760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9182156101ac576004926020925f916101b7575b506100eb86610613565b6001600160a01b039091169052604051630e2b46db60e11b815292839182905afa9081156101ac575f9161017d575b50610126839293610620565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b81811061015b575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014d565b61019f915060203d6020116101a5575b61019781836105d9565b8101906109e9565b5f61011a565b503d61018d565b6040513d5f823e3d90fd5b6101ce9150833d85116101a55761019781836105d9565b5f6100e1565b5f80fd5b346101d45760803660031901126101d4576101f1610543565b6101f9610559565b6064359067ffffffffffffffff82116101d457366023830112156101d457816004013592610226846105fb565b9261023460405194856105d9565b8484526024602085019560051b820101903682116101d457602401945b8186106102b45750506102649350610936565b6040518091602082016020835281518091526020604084019201905f5b81811061028f575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610281565b8535815260209586019501610251565b346101d4576102dc6102d53661056f565b9150610778565b6040518091602082016020835281518091526020604084019201905f5b818110610307575050500390f35b82518452859450602093840193909201916001016102f9565b346101d45760a03660031901126101d457610339610543565b610341610559565b6064359160028310156101d45760809261035e9260843592610665565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d4576103913661056f565b5050506040516103a260a0826105d9565b6004815260208101608036823760016103ba83610613565b5260026103c683610620565b5281516002101561044657600360608301528151600310156104465760056080830152604051906020820192602083525180935260408201905f935b80851061040f5783830384f35b9091825190600a8210156104325760208160019382935201930194019390610402565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d45760403660031901126101d4576040516104796060826105d9565b60028152602081019060403683377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166104c382610613565b527f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff191661050082610620565b52604051918291602083019060208452518091526040830191905f5b81811061052a575050500390f35b825184528594506020938401939092019160010161051c565b602435906001600160a01b03821682036101d457565b604435906001600160a01b03821682036101d457565b60609060031901126101d457600435906024356001600160a01b03811681036101d457906044356001600160a01b03811681036101d45790565b6040810190811067ffffffffffffffff8211176105c557604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176105c557604052565b67ffffffffffffffff81116105c55760051b60200190565b8051156104465760200190565b8051600110156104465760400190565b80518210156104465760209160051b010190565b9190820391821161065157565b634e487b7160e01b5f52601160045260245ffd5b9093926040516060810181811067ffffffffffffffff8211176105c5576040525f81526106e360208201965f88525f60408401986040516106a5816105a9565b8281528260208201528a528499604051906106bf826105a9565b670de0b6b3a76400008252670de0b6b3a76400006020830152528185525284610a08565b61077157505a916002841015610432578161073394155f146107415761070891610ea2565b80865290811561073a576040519161071f836105a9565b8252602082015260408501525b5a90610644565b6020830152565b505061072c565b61074a91610b5a565b808652801561073a5760405191610760836105a9565b82526020820152604085015261072c565b9450505050565b604051916107876060846105d9565b600283526040366020850137825f61079e82610613565b525f6107a982610620565b526107b48284610a08565b61092f57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216808314908115610926575b50156108205750506001600160801b0361080a82610613565b526001600160801b0361081c82610620565b5290565b6001600160a01b0316146108315790565b6040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa9182156101ac575f926108f1575b50602060249160405192838092630a28a47760e01b82528660048301525afa9081156101ac575f916108bf575b506108b583610613565b5261081c82610620565b90506020813d6020116108e9575b816108da602093836105d9565b810103126101d457515f6108ab565b3d91506108cd565b9091506020813d60201161091e575b8161090d602093836105d9565b810103126101d4575190602061087e565b3d9150610900565b9050155f6107f1565b9250505090565b9092918051610944816105fb565b9061095260405192836105d9565b808252610961601f19916105fb565b015f5b8181106109c6575050610978819584610a08565b6109c057505f5b81518110156109bb578061099f61099860019385610630565b5185610fd9565b6109a98288610630565b526109b48187610630565b500161097f565b505050565b93505050565b6020906040516109d5816105a9565b5f81525f8382015282828601015201610964565b908160209103126101d457516001600160a01b03811681036101d45790565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911681811415929083610b26575b83610b1c575b8315610ac8575b508215610a81575b8215610a6e575b5050610a69575f90565b600190565b6001600160a01b03161490505f80610a5f565b9150801580610a91575b91610a58565b506001600160a01b038281167f00000000000000000000000000000000000000000000000000000000000000009091161415610a8b565b9092506001600160a01b038316908114159081610ae8575b50915f610a50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610ae0565b8215159350610a49565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610a43565b6001600160a01b031691905f908315610d5e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690848203610caa57604051630a28a47760e01b81526004810182905294602086602481865afa908115610c9f578495968592610c63575b5091610be460209492610c1494309033906114cf565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af1918215610c575791610c28575090565b90506020813d602011610c4f575b81610c43602093836105d9565b810103126101d4575190565b3d9150610c36565b604051903d90823e3d90fd5b9391509193506020833d602011610c97575b81610c82602093836105d9565b810103126101d4579151849391610be4610bce565b3d9150610c75565b6040513d86823e3d90fd5b60405163b3d7f6b960e01b81526004810182905294602086602481865afa908115610c9f578495968592610d22575b5091610cf88285610c1495610cf3602098963033846114cf565b61137d565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b9391509193506020833d602011610d56575b81610d41602093836105d9565b810103126101d4579151849391610cf8610cd9565b3d9150610d34565b60405163b3d7f6b960e01b81526004810182905292935090917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081602481865afa9081156101ac575f91610e70575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101d4575f8291600460405180948193632de597e360e11b83525af180156101ac57610e4d575b508392602092610c1492610cf890837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661137d565b610cf8945092602092610e645f610c1494966105d9565b5f955092509290610e0f565b90506020813d602011610e9a575b81610e8b602093836105d9565b810103126101d457515f610dba565b3d9150610e7e565b6001600160a01b03168015610f705760209082610ec25f943033856114cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908282148514610f3857604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481015b03925af19081156101ac575f91610c28575090565b610f468183610f239561137d565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b50604051634dcd454760e01b815233600482015290602090829060249082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91610c28575090565b9190820180921161065157565b604051610fe5816105a9565b5f8082526020909101527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116908114908115611374575b50156111c7576040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa80156101ac5782905f90611191575b6110889250610fcc565b916040519163ef8b30f760e01b83526004830152602082602481845afa9182156101ac575f9261115c575b50906020600492604051938480926318160ddd60e01b82525afa80156101ac575f90611128575b6110e49250610fcc565b90815f1904670de0b6b3a7640000118202158102156101d4576040519161110a836105a9565b670de0b6b3a764000002048152670de0b6b3a7640000602082015290565b506020823d602011611154575b81611142602093836105d9565b810103126101d4576110e491516110da565b3d9150611135565b91506020823d602011611189575b81611177602093836105d9565b810103126101d45790519060206110b3565b3d915061116a565b50506020813d6020116111bf575b816111ac602093836105d9565b810103126101d45781611088915161107e565b3d915061119f565b60405163266d6a8360e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa9182156101ac575f92611340575b506040516278744560e21b815291602083600481875afa9283156101ac575f9361130a575b50611251602091600494610644565b93604051938480926318160ddd60e01b82525afa80156101ac575f906112d6575b61127c9250610644565b90816112ae575050670de0b6b3a76400005b6040519061129b826105a9565b8152670de0b6b3a7640000602082015290565b805f1904670de0b6b3a7640000118102158202156101d457670de0b6b3a7640000020461128e565b506020823d602011611302575b816112f0602093836105d9565b810103126101d45761127c9151611272565b3d91506112e3565b92506020833d602011611338575b81611325602093836105d9565b810103126101d457915191611251611242565b3d9150611318565b9091506020813d60201161136c575b8161135c602093836105d9565b810103126101d45751905f61121d565b3d915061134f565b9050155f611028565b604051636eb1769f60e11b81523060048201526001600160a01b03928316602482018190529392821692602082604481875afa80156101ac575f9061149b575b6113c79250610fcc565b915f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526113f76064876105d9565b85519082855af190611407611596565b82611469575b508161145e575b501561141f57505050565b61145761145c936040519063095ea7b360e01b602083015260248201525f6044820152604481526114516064826105d9565b8261152b565b61152b565b565b90503b15155f611414565b80519192508115918215611481575b5050905f61140d565b6114949250602080918301019101611513565b5f80611478565b506020823d6020116114c7575b816114b5602093836105d9565b810103126101d4576113c791516113bd565b3d91506114a8565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145c916114576084836105d9565b908160209103126101d4575180151581036101d45790565b5f806115539260018060a01b03169360208151910182865af161154c611596565b90836115d5565b805190811515918261157b575b50506115695750565b635274afe760e01b5f5260045260245ffd5b61158e9250602080918301019101611513565b155f80611560565b3d156115d0573d9067ffffffffffffffff82116105c557604051916115c5601f8201601f1916602001846105d9565b82523d5f602084013e565b606090565b906115f957508051156115ea57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061162a575b61160a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561160256fea264697066735822122072a6acb1af5d7f7b4a48c2ff88e7f9fc18a79985403ac1f221926b9de12fd3ab64736f6c634300081b0033","sourceMap":"1156:9136:62:-:0;;;;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1156:9136:62;;;;;;:::i;:::-;;1492:28;;1555:42;1530:69;;-1:-1:-1;;;;;1156:9136:62;;1610:43;-1:-1:-1;1156:9136:62;;;;;;;1530:69;1156:9136;;;;;;;;;;;;;;;;;;;;1610:43;1156:9136;;;;;;;;;;;;;;;;;;;;1492:28;1156:9136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;-1:-1:-1;1156:9136:62;;;;;-1:-1:-1;1156:9136:62;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca011461045a57806348bd7dfd146103835780638307c65514610320578063a9270fbe146102c4578063aad6e488146101d85763ecbbc0330361000e57346101d45760203660031901126101d45760405161007f6060826105d9565b6002815260208101604036823760405163ba947f2760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9182156101ac576004926020925f916101b7575b506100eb86610613565b6001600160a01b039091169052604051630e2b46db60e11b815292839182905afa9081156101ac575f9161017d575b50610126839293610620565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b81811061015b575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014d565b61019f915060203d6020116101a5575b61019781836105d9565b8101906109e9565b5f61011a565b503d61018d565b6040513d5f823e3d90fd5b6101ce9150833d85116101a55761019781836105d9565b5f6100e1565b5f80fd5b346101d45760803660031901126101d4576101f1610543565b6101f9610559565b6064359067ffffffffffffffff82116101d457366023830112156101d457816004013592610226846105fb565b9261023460405194856105d9565b8484526024602085019560051b820101903682116101d457602401945b8186106102b45750506102649350610936565b6040518091602082016020835281518091526020604084019201905f5b81811061028f575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610281565b8535815260209586019501610251565b346101d4576102dc6102d53661056f565b9150610778565b6040518091602082016020835281518091526020604084019201905f5b818110610307575050500390f35b82518452859450602093840193909201916001016102f9565b346101d45760a03660031901126101d457610339610543565b610341610559565b6064359160028310156101d45760809261035e9260843592610665565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d4576103913661056f565b5050506040516103a260a0826105d9565b6004815260208101608036823760016103ba83610613565b5260026103c683610620565b5281516002101561044657600360608301528151600310156104465760056080830152604051906020820192602083525180935260408201905f935b80851061040f5783830384f35b9091825190600a8210156104325760208160019382935201930194019390610402565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d45760403660031901126101d4576040516104796060826105d9565b60028152602081019060403683377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166104c382610613565b527f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff191661050082610620565b52604051918291602083019060208452518091526040830191905f5b81811061052a575050500390f35b825184528594506020938401939092019160010161051c565b602435906001600160a01b03821682036101d457565b604435906001600160a01b03821682036101d457565b60609060031901126101d457600435906024356001600160a01b03811681036101d457906044356001600160a01b03811681036101d45790565b6040810190811067ffffffffffffffff8211176105c557604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176105c557604052565b67ffffffffffffffff81116105c55760051b60200190565b8051156104465760200190565b8051600110156104465760400190565b80518210156104465760209160051b010190565b9190820391821161065157565b634e487b7160e01b5f52601160045260245ffd5b9093926040516060810181811067ffffffffffffffff8211176105c5576040525f81526106e360208201965f88525f60408401986040516106a5816105a9565b8281528260208201528a528499604051906106bf826105a9565b670de0b6b3a76400008252670de0b6b3a76400006020830152528185525284610a08565b61077157505a916002841015610432578161073394155f146107415761070891610ea2565b80865290811561073a576040519161071f836105a9565b8252602082015260408501525b5a90610644565b6020830152565b505061072c565b61074a91610b5a565b808652801561073a5760405191610760836105a9565b82526020820152604085015261072c565b9450505050565b604051916107876060846105d9565b600283526040366020850137825f61079e82610613565b525f6107a982610620565b526107b48284610a08565b61092f57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216808314908115610926575b50156108205750506001600160801b0361080a82610613565b526001600160801b0361081c82610620565b5290565b6001600160a01b0316146108315790565b6040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa9182156101ac575f926108f1575b50602060249160405192838092630a28a47760e01b82528660048301525afa9081156101ac575f916108bf575b506108b583610613565b5261081c82610620565b90506020813d6020116108e9575b816108da602093836105d9565b810103126101d457515f6108ab565b3d91506108cd565b9091506020813d60201161091e575b8161090d602093836105d9565b810103126101d4575190602061087e565b3d9150610900565b9050155f6107f1565b9250505090565b9092918051610944816105fb565b9061095260405192836105d9565b808252610961601f19916105fb565b015f5b8181106109c6575050610978819584610a08565b6109c057505f5b81518110156109bb578061099f61099860019385610630565b5185610fd9565b6109a98288610630565b526109b48187610630565b500161097f565b505050565b93505050565b6020906040516109d5816105a9565b5f81525f8382015282828601015201610964565b908160209103126101d457516001600160a01b03811681036101d45790565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911681811415929083610b26575b83610b1c575b8315610ac8575b508215610a81575b8215610a6e575b5050610a69575f90565b600190565b6001600160a01b03161490505f80610a5f565b9150801580610a91575b91610a58565b506001600160a01b038281167f00000000000000000000000000000000000000000000000000000000000000009091161415610a8b565b9092506001600160a01b038316908114159081610ae8575b50915f610a50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610ae0565b8215159350610a49565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610a43565b6001600160a01b031691905f908315610d5e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690848203610caa57604051630a28a47760e01b81526004810182905294602086602481865afa908115610c9f578495968592610c63575b5091610be460209492610c1494309033906114cf565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af1918215610c575791610c28575090565b90506020813d602011610c4f575b81610c43602093836105d9565b810103126101d4575190565b3d9150610c36565b604051903d90823e3d90fd5b9391509193506020833d602011610c97575b81610c82602093836105d9565b810103126101d4579151849391610be4610bce565b3d9150610c75565b6040513d86823e3d90fd5b60405163b3d7f6b960e01b81526004810182905294602086602481865afa908115610c9f578495968592610d22575b5091610cf88285610c1495610cf3602098963033846114cf565b61137d565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b9391509193506020833d602011610d56575b81610d41602093836105d9565b810103126101d4579151849391610cf8610cd9565b3d9150610d34565b60405163b3d7f6b960e01b81526004810182905292935090917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081602481865afa9081156101ac575f91610e70575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101d4575f8291600460405180948193632de597e360e11b83525af180156101ac57610e4d575b508392602092610c1492610cf890837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661137d565b610cf8945092602092610e645f610c1494966105d9565b5f955092509290610e0f565b90506020813d602011610e9a575b81610e8b602093836105d9565b810103126101d457515f610dba565b3d9150610e7e565b6001600160a01b03168015610f705760209082610ec25f943033856114cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908282148514610f3857604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481015b03925af19081156101ac575f91610c28575090565b610f468183610f239561137d565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b50604051634dcd454760e01b815233600482015290602090829060249082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91610c28575090565b9190820180921161065157565b604051610fe5816105a9565b5f8082526020909101527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116908114908115611374575b50156111c7576040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa80156101ac5782905f90611191575b6110889250610fcc565b916040519163ef8b30f760e01b83526004830152602082602481845afa9182156101ac575f9261115c575b50906020600492604051938480926318160ddd60e01b82525afa80156101ac575f90611128575b6110e49250610fcc565b90815f1904670de0b6b3a7640000118202158102156101d4576040519161110a836105a9565b670de0b6b3a764000002048152670de0b6b3a7640000602082015290565b506020823d602011611154575b81611142602093836105d9565b810103126101d4576110e491516110da565b3d9150611135565b91506020823d602011611189575b81611177602093836105d9565b810103126101d45790519060206110b3565b3d915061116a565b50506020813d6020116111bf575b816111ac602093836105d9565b810103126101d45781611088915161107e565b3d915061119f565b60405163266d6a8360e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa9182156101ac575f92611340575b506040516278744560e21b815291602083600481875afa9283156101ac575f9361130a575b50611251602091600494610644565b93604051938480926318160ddd60e01b82525afa80156101ac575f906112d6575b61127c9250610644565b90816112ae575050670de0b6b3a76400005b6040519061129b826105a9565b8152670de0b6b3a7640000602082015290565b805f1904670de0b6b3a7640000118102158202156101d457670de0b6b3a7640000020461128e565b506020823d602011611302575b816112f0602093836105d9565b810103126101d45761127c9151611272565b3d91506112e3565b92506020833d602011611338575b81611325602093836105d9565b810103126101d457915191611251611242565b3d9150611318565b9091506020813d60201161136c575b8161135c602093836105d9565b810103126101d45751905f61121d565b3d915061134f565b9050155f611028565b604051636eb1769f60e11b81523060048201526001600160a01b03928316602482018190529392821692602082604481875afa80156101ac575f9061149b575b6113c79250610fcc565b915f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526113f76064876105d9565b85519082855af190611407611596565b82611469575b508161145e575b501561141f57505050565b61145761145c936040519063095ea7b360e01b602083015260248201525f6044820152604481526114516064826105d9565b8261152b565b61152b565b565b90503b15155f611414565b80519192508115918215611481575b5050905f61140d565b6114949250602080918301019101611513565b5f80611478565b506020823d6020116114c7575b816114b5602093836105d9565b810103126101d4576113c791516113bd565b3d91506114a8565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145c916114576084836105d9565b908160209103126101d4575180151581036101d45790565b5f806115539260018060a01b03169360208151910182865af161154c611596565b90836115d5565b805190811515918261157b575b50506115695750565b635274afe760e01b5f5260045260245ffd5b61158e9250602080918301019101611513565b155f80611560565b3d156115d0573d9067ffffffffffffffff82116105c557604051916115c5601f8201601f1916602001846105d9565b82523d5f602084013e565b606090565b906115f957508051156115ea57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061162a575b61160a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561160256fea264697066735822122072a6acb1af5d7f7b4a48c2ff88e7f9fc18a79985403ac1f221926b9de12fd3ab64736f6c634300081b0033","sourceMap":"1156:9136:62:-:0;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;;;;;;;:::i;:::-;6192:1;1156:9136;;;;;;;;;;;-1:-1:-1;;;6217:26:62;;:12;-1:-1:-1;;;;;1156:9136:62;;;;;;;6217:26;;;;;;;1156:9136;6217:26;1156:9136;6217:26;1156:9136;6217:26;;;1156:9136;6205:38;;;;:::i;:::-;-1:-1:-1;;;;;1156:9136:62;;;;;;;-1:-1:-1;;;6265:27:62;;1156:9136;;;;;6265:27;;;;;;;1156:9136;6265:27;;;1156:9136;6253:39;;;;;;:::i;:::-;-1:-1:-1;;;;;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:9136:62;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;6265:27;;;;1156:9136;6265:27;1156:9136;6265:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1156:9136;;;;;;;;;6217:26;;;;;;;;;;;;;;:::i;:::-;;;;1156:9136;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;5821:20;5803:38;;;:::i;:::-;1156:9136;5869:19;5851:37;;;:::i;:::-;1156:9136;;;5869:19;1156:9136;;;;5916:24;1156:9136;;;;;;5916:24;1156:9136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:20;1156:9136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;;;;;;;:::i;:::-;6615:1;1156:9136;;;;;;;;;;6652:7;1156:9136;;-1:-1:-1;;1156:9136:62;6627:34;;;:::i;:::-;1156:9136;6696:12;1156:9136;;-1:-1:-1;;1156:9136:62;6671:39;;;:::i;:::-;1156:9136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1156:9136:62;;;;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;6675:1;1156:9136;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;1313:4::-;;;;;;;;;;:::o;:::-;1156:9136;;;1313:4;;;;;;;;3261:1017;;;;1156:9136;;;;;;;;;;;;;;;;-1:-1:-1;1156:9136:62;;3593:39;1156:9136;;;;-1:-1:-1;1156:9136:62;;-1:-1:-1;1156:9136:62;;;;;;;;;:::i;:::-;;;;;;;;;;;3435:18;1156:9136;;;;;;;:::i;:::-;1313:4;1156:9136;;1313:4;1156:9136;3479:36;;1156:9136;3465:50;1156:9136;;;;3593:39;;:::i;:::-;3589:82;;3701:9;;1313:4;;;;;;;3725:22;4250:21;3725:22;;3721:503;3725:22;;;3788:32;;;:::i;:::-;1156:9136;;;;3834:27;;;;1156:9136;;;;;;:::i;:::-;;;;3894:49;;1156:9136;;3880:11;;:63;3834:139;4262:9;4250:21;;:::i;:::-;1156:9136;4234:13;;1156:9136;3261:1017::o;3834:139::-;;;;;3721:503;4029:31;;;:::i;:::-;1156:9136;;;4074:27;;;;1156:9136;;;;;;:::i;:::-;;;;4134:49;;1156:9136;;4120:11;;:63;3721:503;;3589:82;3648:12;-1:-1:-1;;;;3648:12:62:o;4317:1239::-;1156:9136;;;;;;;:::i;:::-;4508:1;1156:9136;;;;;;;;4485:25;-1:-1:-1;4520:13:62;;;:::i;:::-;1156:9136;-1:-1:-1;4543:13:62;;;:::i;:::-;1156:9136;4571:39;;;;:::i;:::-;4567:83;;-1:-1:-1;;;;;;4685:6:62;1156:9136;;;;4664:28;;;;:55;;;;4317:1239;-1:-1:-1;4660:866:62;;;4907:29;;-1:-1:-1;;;;;4907:29:62;;;:::i;:::-;1156:9136;-1:-1:-1;;;;;4950:29:62;;;:::i;:::-;1156:9136;4317:1239;:::o;4660:866::-;-1:-1:-1;;;;;1156:9136:62;5000:27;4996:530;;4317:1239;:::o;4996:530::-;1156:9136;;-1:-1:-1;;;5065:21:62;;:7;-1:-1:-1;;;;;1156:9136:62;;;5065:21;1156:9136;;5065:21;;;;;;;-1:-1:-1;5065:21:62;;;4996:530;1156:9136;;5369:36;1156:9136;;;;;;;;;;5369:36;;;5065:21;5369:36;;1156:9136;5369:36;;;;;;;-1:-1:-1;5369:36:62;;;4996:530;5357:48;;;;:::i;:::-;1156:9136;5492:23;;;:::i;5369:36::-;;;1156:9136;5369:36;;1156:9136;5369:36;;;;;;1156:9136;5369:36;;;:::i;:::-;;;1156:9136;;;;;5369:36;;;;;;-1:-1:-1;5369:36:62;;5065:21;;;;1156:9136;5065:21;;1156:9136;5065:21;;;;;;1156:9136;5065:21;;;:::i;:::-;;;1156:9136;;;;;;;5065:21;;;;;-1:-1:-1;5065:21:62;;4664:55;4696:23;;;4664:55;;;4567:83;4626:13;;;;;:::o;2416:501::-;;;;1156:9136;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;1156:9136:62;;;;;;2620:50;;2685:39;2620:50;2685:39;;;:::i;:::-;2681:84;;2780:13;-1:-1:-1;2825:3:62;1156:9136;;2795:28;;;;;2879:20;2857:43;2879:20;1156:9136;2879:20;;;:::i;:::-;1313:4;2857:43;;:::i;:::-;2844:56;;;;:::i;:::-;;;;;;:::i;:::-;;1156:9136;2780:13;;2795:28;;;;2416:501::o;2681:84::-;2740:14;-1:-1:-1;;;2740:14:62:o;1156:9136::-;;;;;;;;:::i;:::-;-1:-1:-1;1156:9136:62;;-1:-1:-1;1156:9136:62;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:9136:62;;;;;;;:::o;1717:547::-;-1:-1:-1;;;;;1156:9136:62;;;1905:6;1156:9136;;;1884:28;;;;;1717:547;1884:28;:61;;1717:547;1884:108;;;1717:547;1866:205;;;;1717:547;1866:282;;;;;1717:547;1866:323;;;;1717:547;1849:387;;;;1156:9136;1717:547;:::o;1849:387::-;2221:4;2214:11;:::o;1866:323::-;-1:-1:-1;;;;;1156:9136:62;2168:21;;-1:-1:-1;1866:323:62;;;;:282;2092:23;;;;:55;;;1866:282;;;;2092:55;-1:-1:-1;;;;;;1156:9136:62;;;2139:7;1156:9136;;;2119:28;;2092:55;;1866:205;1156:9136;;-1:-1:-1;;;;;;1156:9136:62;;2011:27;;;;;;:59;;1866:205;;;;;;2011:59;2062:7;-1:-1:-1;;;;;1156:9136:62;2042:28;;;-1:-1:-1;2011:59:62;;;1884:108;1969:23;;;;-1:-1:-1;1884:108:62;;:61;1937:7;-1:-1:-1;;;;;1156:9136:62;1916:29;;;;-1:-1:-1;1884:61:62;;7768:1083;-1:-1:-1;;;;;1156:9136:62;;7768:1083;1156:9136;;7894:23;;7890:322;;8247:7;-1:-1:-1;;;;;1156:9136:62;;8226:29;;;1156:9136;;;;-1:-1:-1;;;8290:31:62;;;;;1156:9136;;;;;;8290:31;1156:9136;8290:31;;;;;;;;;;;;;;;8222:623;8407:4;;8414:8;1156:9136;8407:4;;8457:51;8407:4;;8387:10;;8414:8;;:::i;:::-;1156:9136;;-1:-1:-1;;;8457:51:62;;8290:31;8457:51;;1156:9136;;;;8387:10;1156:9136;;;;8407:4;1156:9136;;;;;;;;;;;;;;;;;8457:51;;;;;;;;;;;;;8450:58;;:::o;8457:51::-;;;1156:9136;8457:51;;1156:9136;8457:51;;;;;;1156:9136;8457:51;;;:::i;:::-;;;1156:9136;;;;;8450:58;:::o;8457:51::-;;;-1:-1:-1;8457:51:62;;;1156:9136;;;;;;;;;;8290:31;;;;;;;1156:9136;8290:31;;1156:9136;8290:31;;;;;;1156:9136;8290:31;;;:::i;:::-;;;1156:9136;;;;;;;;;8414:8;8290:31;;;;;-1:-1:-1;8290:31:62;;;1156:9136;;;;;;;;;8222:623;1156:9136;;-1:-1:-1;;;8558:27:62;;;;;1156:9136;;;;;;8558:27;1156:9136;8558:27;;;;;;;;;;;;;;;8222:623;8671:4;;8772:8;8671:4;;8802:32;8671:4;8678:8;1156:9136;8671:4;;;8651:10;8678:8;;:::i;:::-;8772;:::i;:::-;1156:9136;;-1:-1:-1;;;8802:32:62;;8558:27;8802:32;;1156:9136;;;;8651:10;1156:9136;;;;;;;;;;;;;;;;;8558:27;;;;;;;1156:9136;8558:27;;1156:9136;8558:27;;;;;;1156:9136;8558:27;;;:::i;:::-;;;1156:9136;;;;;;;;;8772:8;8558:27;;;;;-1:-1:-1;8558:27:62;;7890:322;1156:9136;;-1:-1:-1;;;7952:27:62;;;;;1156:9136;;;;;-1:-1:-1;1156:9136:62;;7952:7;-1:-1:-1;;;;;1156:9136:62;;;;;7952:27;1156:9136;;7952:27;;;;;;;1156:9136;7952:27;;;7890:322;-1:-1:-1;7993:12:62;-1:-1:-1;;;;;1156:9136:62;7993:38;;;;;1156:9136;;;7952:27;1156:9136;;;;;;;;;7993:38;;;;;;;;;;7890:322;-1:-1:-1;1156:9136:62;;;;8169:32;;8126:8;;1156:9136;8060:6;-1:-1:-1;;;;;1156:9136:62;8126:8;:::i;7993:38::-;8126:8;7993:38;;;1156:9136;7993:38;;1156:9136;8169:32;7993:38;;;:::i;:::-;1156:9136;7993:38;;;;;;;;7952:27;;;1156:9136;7952:27;;1156:9136;7952:27;;;;;;1156:9136;7952:27;;;:::i;:::-;;;1156:9136;;;;;7952:27;;;;;;-1:-1:-1;7952:27:62;;6936:604;-1:-1:-1;;;;;1156:9136:62;7063:23;;7059:117;;7322:49;7241:4;;7248:6;1156:9136;7241:4;;7221:10;7248:6;;:::i;:::-;7291:7;-1:-1:-1;;;;;1156:9136:62;;7270:29;;;1156:9136;;;;;;-1:-1:-1;;;7322:49:62;;;;;1156:9136;;;;7221:10;1156:9136;;;;7241:4;1156:9136;;;;;;;-1:-1:-1;1156:9136:62;;;;;;7322:49;;;;;;;;;;1156:9136;7322:49;;;7315:56;;:::o;7266:268::-;7460:6;;;7488:35;7460:6;;:::i;:::-;1156:9136;;-1:-1:-1;;;7488:35:62;;;;;1156:9136;;;;7221:10;1156:9136;;;;;;;;;;;;;;;;;7059:117;-1:-1:-1;1156:9136:62;;-1:-1:-1;;;7109:56:62;;7154:10;7109:56;;;1156:9136;;;;;;7109:56;;1156:9136;;7109:12;-1:-1:-1;;;;;1156:9136:62;7109:56;;;;;;;1156:9136;7109:56;;;7102:63;;:::o;1156:9136::-;;;;;;;;;;:::o;9141:1149::-;1156:9136;;;;;:::i;:::-;-1:-1:-1;1156:9136:62;;;;;;;;9301:6;-1:-1:-1;;;;;1156:9136:62;;;;;9280:28;;;;:55;;;;9141:1149;-1:-1:-1;9276:1008:62;;;1156:9136;;-1:-1:-1;;;9423:21:62;;:7;-1:-1:-1;;;;;1156:9136:62;;;9423:21;1156:9136;9423:21;1156:9136;;9423:21;;;;;;;;-1:-1:-1;9423:21:62;;;9276:1008;9423:32;;;;:::i;:::-;1156:9136;;;;;;;9495:32;;9423:21;9495:32;;1156:9136;9423:21;9495:32;;;;;;;;;;;-1:-1:-1;9495:32:62;;;9276:1008;1156:9136;;9423:21;;1156:9136;;;;;;;;;;9567:21;;;;;;;;-1:-1:-1;9567:21:62;;;9276:1008;9567:39;;;;:::i;:::-;630:357;;;;;1313:4;630:357;;;;;;;;;1156:9136;;;;;;:::i;:::-;1313:4;630:357;;1156:9136;;1313:4;9423:21;9734:33;;1156:9136;9727:40;:::o;9567:21::-;;9423;9567;;9423;9567;;;;;;1156:9136;9567:21;;;:::i;:::-;;;1156:9136;;;;9567:39;1156:9136;;9567:21;;;;;-1:-1:-1;9567:21:62;;9495:32;;;9423:21;9495:32;;9423:21;9495:32;;;;;;1156:9136;9495:32;;;:::i;:::-;;;1156:9136;;;;;;;9423:21;9495:32;;;;;-1:-1:-1;9495:32:62;;9423:21;;;;;;;;;;;;;1156:9136;9423:21;;;:::i;:::-;;;1156:9136;;;;;9423:32;1156:9136;;9423:21;;;;;-1:-1:-1;9423:21:62;;9276:1008;1156:9136;;-1:-1:-1;;;9873:31:62;;;;;1156:9136;;;9873:7;-1:-1:-1;;;;;1156:9136:62;;;;9873:31;1156:9136;;9873:31;;;;;;;-1:-1:-1;9873:31:62;;;9276:1008;-1:-1:-1;1156:9136:62;;-1:-1:-1;;;9944:21:62;;1156:9136;;;9873:31;1156:9136;9944:21;;;;;;;;-1:-1:-1;9944:21:62;;;9276:1008;9944:42;;1156:9136;9944:42;9873:31;9944:42;;:::i;:::-;1156:9136;;;;;;;;;;10026:21;;;;;;;;-1:-1:-1;10026:21:62;;;9276:1008;10026:32;;;;:::i;:::-;10092:127;:20;;;:127;;1313:4;10092:127;1156:9136;;;;;;:::i;:::-;;;1313:4;1156:9136;10240:33;;1156:9136;10233:40;:::o;10092:127::-;630:357;;;;1313:4;630:357;;;;;;;;;1313:4;630:357;;10092:127;;10026:21;;1156:9136;10026:21;;1156:9136;10026:21;;;;;;1156:9136;10026:21;;;:::i;:::-;;;1156:9136;;;;10026:32;1156:9136;;10026:21;;;;;-1:-1:-1;10026:21:62;;9944;;;1156:9136;9944:21;;1156:9136;9944:21;;;;;;1156:9136;9944:21;;;:::i;:::-;;;1156:9136;;;;;;;9944:42;:21;;;;;-1:-1:-1;9944:21:62;;9873:31;;;;1156:9136;9873:31;;1156:9136;9873:31;;;;;;1156:9136;9873:31;;;:::i;:::-;;;1156:9136;;;;;9873:31;;;;;;;-1:-1:-1;9873:31:62;;9280:55;9312:23;;;9280:55;;;2081:225:32;1156:9136:62;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;1156:9136:62;-1:-1:-1;;;;;1156:9136:62;;;;;;;;;;;;;;;;2200:39:32;1156:9136:62;;2200:39:32;;;;;;-1:-1:-1;2200:39:32;;;2081:225;2278:20;;;;:::i;:::-;1156:9136:62;-1:-1:-1;1156:9136:62;;;3411:47:32;1156:9136:62;3411:47:32;;1156:9136:62;;;;3411:47:32;;;1156:9136:62;3411:47:32;;1156:9136:62;2200:39:32;1156:9136:62;;;2200:39:32;3411:47;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;1156:9136:62;;;;;;;;3561:43:32;;;1156:9136:62;3561:43:32;;1156:9136:62;-1:-1:-1;2200:39:32;1156:9136:62;;;2200:39:32;3561:43;;;3411:47;3561:43;;:::i;:::-;;;:::i;:::-;3646:12;:::i;:::-;2081:225::o;8066:103::-;8139:26;;;:30;;8066:103;;;:69;1156:9136:62;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;1156:9136:62;8104:30:32;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;1156:9136:62;2200:39:32;;1156:9136:62;2200:39:32;;;;;;1156:9136:62;2200:39:32;;;:::i;:::-;;;1156:9136:62;;;;2278:20:32;1156:9136:62;;2200:39:32;;;;;-1:-1:-1;2200:39:32;;1702:188;1156:9136:62;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;1156:9136:62;;;1829:53:32;;;1156:9136:62;;;;;;;;;;;;;;;;;1829:53:32;;;;;;;1156:9136:62;1829:53:32;:::i;1156:9136:62:-;;;;;;;;;;;;;;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;1156:9136:62;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;1156:9136:62;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;1156:9136:62;;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;1156:9136:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1156:9136:62;;;;;:::i;:::-;;;;-1:-1:-1;1156:9136:62;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;1156:9136:62;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;1156:9136:62;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;1156:9136:62;;;;4917:24:33;1156:9136:62;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"67817":[{"start":1987,"length":32},{"start":2581,"length":32},{"start":3616,"length":32},{"start":4081,"length":32}],"67820":[{"start":155,"length":32},{"start":1222,"length":32},{"start":3517,"length":32},{"start":3985,"length":32}],"67823":[{"start":1161,"length":32},{"start":2111,"length":32},{"start":2719,"length":32},{"start":2794,"length":32},{"start":2856,"length":32},{"start":2927,"length":32},{"start":3449,"length":32},{"start":3780,"length":32},{"start":4156,"length":32},{"start":4573,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_frxEthMinter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sfrxEth\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract only supports: ETH -> sfrxETH and frxETH <-> sfrxETH\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"although FraxV3 frxETH has no pool ids, we return the sFrxETH and frxETHMinter addresses as pools\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"_prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"sellToken\":\"The token being sold.\",\"side\":\"Either buy or sell.\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"The amount of tokens being sold or bought.\"}}},\"title\":\"FraxV3FrxEthAdapter Adapter for frxETH and sfrxETH tokens of FraxV3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Executes a swap on the contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":\"FraxV3FrxEthAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_frxEthMinter","type":"address"},{"internalType":"address","name":"_sfrxEth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"although FraxV3 frxETH has no pool ids, we return the sFrxETH and frxETHMinter addresses as pools","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"_prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","sellToken":"The token being sold.","side":"Either buy or sell.","specifiedAmount":"The amount to be traded."},"returns":{"trade":"The amount of tokens being sold or bought."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Executes a swap on the contract."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfraxeth/FraxV3FrxEthAdapter.sol":"FraxV3FrxEthAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"}},"version":1},"id":62} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.sol/IFrxEth.json b/evm/out/FraxV3FrxEthAdapter.sol/IFrxEth.json deleted file mode 100644 index b607ef1..0000000 --- a/evm/out/FraxV3FrxEthAdapter.sol/IFrxEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minters","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","minters(address)":"f46eccc4","totalSupply()":"18160ddd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minters\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":\"IFrxEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfraxeth/FraxV3FrxEthAdapter.sol":"IFrxEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"}},"version":1},"id":62} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.sol/IFrxEthMinter.json b/evm/out/FraxV3FrxEthAdapter.sol/IFrxEthMinter.json deleted file mode 100644 index 3d7bece..0000000 --- a/evm/out/FraxV3FrxEthAdapter.sol/IFrxEthMinter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DEPOSIT_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentWithheldETH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"frxETHToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sfrxETHToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"submit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitAndDeposit","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEPOSIT_SIZE()":"36bf3325","currentWithheldETH()":"8e69d7ad","frxETHToken()":"ba947f27","sfrxETHToken()":"1c568db6","submit()":"5bcb2fc6","submitAndDeposit(address)":"4dcd4547"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DEPOSIT_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentWithheldETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"frxETHToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sfrxETHToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"submitAndDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"submit()\":{\"notice\":\"Mint frxETH to the sender depending on the ETH value sent\"},\"submitAndDeposit(address)\":{\"notice\":\"Mint frxETH and deposit it to receive sfrxETH in one transaction\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":\"IFrxEthMinter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentWithheldETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"frxETHToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sfrxETHToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"submit"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"submitAndDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"submit()":{"notice":"Mint frxETH to the sender depending on the ETH value sent"},"submitAndDeposit(address)":{"notice":"Mint frxETH and deposit it to receive sfrxETH in one transaction"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfraxeth/FraxV3FrxEthAdapter.sol":"IFrxEthMinter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"}},"version":1},"id":62} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.sol/ISfrxEth.json b/evm/out/FraxV3FrxEthAdapter.sol/ISfrxEth.json deleted file mode 100644 index 210cd5f..0000000 --- a/evm/out/FraxV3FrxEthAdapter.sol/ISfrxEth.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"storedTotalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"asset()":"38d52e0f","balanceOf(address)":"70a08231","deposit(uint256,address)":"6e553f65","mint(uint256,address)":"94bf804d","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","storedTotalAssets()":"61c1c5e9","totalAssets()":"01e1d114","totalSupply()":"18160ddd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storedTotalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"balanceOf(address)\":{\"details\":\"even though the balance address of frxETH token is around 223,701 tokens, it returns 0 when the address of frxEth is passed as an argument\"},\"totalSupply()\":{\"details\":\"returns the totalSupply of frxETH\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"totalAssets()\":{\"notice\":\"Compute the amount of tokens available to share holders\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":\"ISfrxEth\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storedTotalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address)":{"details":"even though the balance address of frxETH token is around 223,701 tokens, it returns 0 when the address of frxEth is passed as an argument"},"totalSupply()":{"details":"returns the totalSupply of frxETH"}},"version":1},"userdoc":{"kind":"user","methods":{"totalAssets()":{"notice":"Compute the amount of tokens available to share holders"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfraxeth/FraxV3FrxEthAdapter.sol":"ISfrxEth"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"}},"version":1},"id":62} \ No newline at end of file diff --git a/evm/out/FraxV3FrxEthAdapter.t.sol/FraxV3FrxEthAdapterTest.json b/evm/out/FraxV3FrxEthAdapter.t.sol/FraxV3FrxEthAdapterTest.json deleted file mode 100644 index 8f5c899..0000000 --- a/evm/out/FraxV3FrxEthAdapter.t.sol/FraxV3FrxEthAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzFraxEthV3FraxEth","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceKeepingSellEthFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceKeepingSellFraxEthFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceKeepingSellSFraxEthFraxEthV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzFraxEthV3WithSFraxEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzsFraxEthV3WithFraxEth","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f5160206187425f395f51905f52915b600482106100f75760405161840c90816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f5160206187425f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610160806040526004361015610013575f80fd5b5f905f3560e01c90816308c417451461367e575080630a9254e41461344f57806310033ae4146132b15780631a91bcf0146131cc5780631ed7831c1461314e578063226212a2146130005780632ade388014612e415780632b72882614612b4957806334529dcb146129ee5780633e5e3c23146129705780633f7286f4146128f257806366d9a9a01461274457806375c04aa714611b7e57806385226c8114611aec5780638681f5b8146118ff578063916a17c614611673578063a00872f114611607578063a11c799814611479578063b5508aa9146113e0578063ba414fa6146113bb578063bfdaf70f14610410578063d170c3cc146101da578063e20c9f711461014c5763fa7626d414610127575f80fd5b34610149578060031936011261014957602060ff601e54166040519015158152f35b80fd5b503461014957806003193601126101495760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101bb576101b7856101ab818703826136ed565b6040519182918261370e565b0390f35b82546001600160a01b0316845260209093019260019283019201610194565b5034610149576040366003190112610149576004356001600160a01b03811680820361040c57602435916001600160401b03831161040857366023840112156104085782600401359261022c8461399e565b9361023a60405195866136ed565b8085526024602086019160051b8301019136831161040457602401905b8282106103f45750505061026a83613ab9565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156103e9576102aa9186916103c7575b50614084565b1591845b84518110156103c3576102c18186613ad6565b51906040519163ecbbc03360e01b83526004830152868260248183875af180156103b85785610390916001948a91610396575b5061030f86868060a01b0361030884613ab9565b511661412f565b61032286868060a01b0361030884613ac6565b61035a82610330868c613ad6565b51878060a01b0361034085613ab9565b5116888060a01b0361035186613ac6565b5116918b614271565b610364848a613ad6565b5190858060a01b0361037582613ac6565b511690610387878060a01b0391613ab9565b51169188614271565b016102ae565b6103b291503d808c833e6103aa81836136ed565b810190613dd8565b5f6102f4565b6040513d89823e3d90fd5b8580f35b6103e391503d8088833e6103db81836136ed565b810190613c5d565b5f6102a4565b6040513d87823e3d90fd5b8135815260209182019101610257565b8680fd5b8380fd5b8280fd5b50346101495761041f36613823565b5f5160206183775f395f51905f523b1561040c57604051632631f2b160e11b8152600183116004820152839081816024815f5160206183775f395f51905f525afa8015610c52576113a6575b50501561139f576001905b60205460215460405163549387df60e11b8152600481018690525f5160206183975f395f51905f5260248201526001600160a01b0391821660448201529391859185916064918391165afa928315610c7e57849361137b575b50600281101561136757836001821493845f14610e23576104ef90613ac6565b5183105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257610e0a575b508060405160208101906370a0823160e01b8252306024820152602481526105626044826136ed565b51905f5160206183975f395f51905f525afa5061058f6105806158da565b60208082518301019101613a9d565b50601180546001600160a01b0319165f5160206183975f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e48160016105fd9301600e556138a1565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549061061c615c0c565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061066e81610660888886615bf5565b03601f1981018352826136ed565b519020895260205260ff600360408a2001541615610de8575b6001600160a01b0384165f908152600d602052604090209088526020526106606106c06040892093604051928391602083019586615bf5565b519020865260205284604081209160018301549260028101546106e38186613aac565b610cc6578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206183775f395f51905f525afa968715610aa0578697610c8d575b506001908201610100031b5f1901811b1986165f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206183775f395f51905f525af1908115610c7e578491610c69575b50506107b8615dc5565b9015908115610c5d575b50610b7157505050506107d36168fa565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152929083604481885f5160206183975f395f51905f525af19283156103e957602493610b42575b505b6022546040516370a0823160e01b81523060048201529360209185919082906001600160a01b03165afa9283156103e9578593610b0e575b506040516370a0823160e01b8152306004820152926020846024815f5160206183975f395f51905f525afa938415610aa0578694610ada575b506040516278744560e21b81526020816004815f5160206183975f395f51905f525afa80156103b857610aab575b50602054602154604051638307c65560e01b8152600481018990525f5160206183975f395f51905f5260248201526001600160a01b039182166044820152606481019590955260848501849052608091859160a49183918b91165af1928315610aa0578693610a6f575b506022546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa9081156103b8578791610a3d575b506040516370a0823160e01b8152306004820152956020876024815f5160206183975f395f51905f525afa968715610a325788976109fa575b5084516109ab578780f35b156109de576109d395926109c66109c695936109cc93613c50565b90614035565b5192613c50565b5f8080808080808780f35b936109c69391926109c66109f5976109cc93613c50565b6109d3565b9096506020813d602011610a2a575b81610a16602093836136ed565b81010312610a265751955f6109a0565b5f80fd5b3d9150610a09565b6040513d8a823e3d90fd5b90506020813d602011610a67575b81610a58602093836136ed565b81010312610a2657515f610967565b3d9150610a4b565b610a9291935060803d608011610a99575b610a8a81836136ed565b810190613d71565b915f61092c565b503d610a80565b6040513d88823e3d90fd5b6020813d602011610ad2575b81610ac4602093836136ed565b81010312610a2657516108c2565b3d9150610ab7565b9093506020813d602011610b06575b81610af6602093836136ed565b81010312610a265751925f610894565b3d9150610ae9565b9092506020813d602011610b3a575b81610b2a602093836136ed565b81010312610a265751915f61085b565b3d9150610b1d565b610b639060203d602011610b6a575b610b5b81836136ed565b810190613d59565b505f610821565b503d610b51565b82945054905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f5160206183775f395f51905f525af18015610c5257610c3d575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610c488280926136ed565b6101495780610bdc565b6040513d84823e3d90fd5b5f19141590505f6107c2565b81610c73916136ed565b61040c57825f6107ae565b6040513d86823e3d90fd5b8580fd5b955095506020853d602011610cbe575b81610caa602093836136ed565b81010312610a265793519489949081610734565b3d9150610c9d565b610cd1849186613aac565b610100036101008111610dd45760ff8111610dd45760405163348051d760e11b8152600190911b600482015281816024815f5160206183775f395f51905f525afa908115610c5257606a60209284610d8c93610dac9692610db0575b506040519485925f5160206183b75f395f51905f52828501525f5160206183575f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018352826136ed565b60405162461bcd60e51b8152602060048201529182916024830190613750565b0390fd5b610dcd9192503d8084833e610dc581836136ed565b810190613a3b565b9086610d2d565b634e487b7160e01b82526011600452602482fd5b610df061603f565b50610687565b634e487b7160e01b85526041600452602485fd5b81610e14916136ed565b61040857835f610539565b5080fd5b610e2f90949394613ab9565b5184105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257611352575b508060405160208101906370a0823160e01b825230602482015260248152610ea26044826136ed565b51905f5160206183975f395f51905f525afa50610ec06105806158da565b50601180546001600160a01b0319165f5160206183975f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e4816001610f159301600e556138a1565b905560018060a01b036011541692600f5460e01b60105490610f35615c0c565b6001600160a01b0387165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190610f7981610660888886615bf5565b519020895260205260ff600360408a2001541615611344575b6001600160a01b0387165f908152600d60205260409020908852602052610660610fcb6040892093604051928391602083019586615bf5565b51902086526020528460408120946001860154956002810154610fee8189613aac565b611210575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529890919060208a6044815f5160206183775f395f51905f525afa998a15610aa057869a6111d7575b506001908201610100031b5f1901811b198916915f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528381606481835f5160206183775f395f51905f525af1908115610c7e5784916111c2575b5050836110c8615dc5565b9190159182156111b7575b50506111655750505061111e9293506110ea6168fa565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905293849081906044820190565b0381885f5160206183975f395f51905f525af19283156103e957602493611146575b50610823565b61115e9060203d602011610b6a57610b5b81836136ed565b505f611140565b8691839154905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610bbe565b14159050845f6110d3565b816111cc916136ed565b61040c57825f6110bd565b955098506020853d602011611208575b816111f4602093836136ed565b81010312610a265793519789949081611040565b3d91506111e7565b9091925061121e8188613aac565b6101000361010081116113305760ff81116113305760405163348051d760e11b8152600190911b6004820181905289826024815f5160206183775f395f51905f525afa801561132557606a6112d6916020948d9161130b575b506040519485915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018452836136ed565b8510156112e7575090879291610ff3565b60405162461bcd60e51b815260206004820152908190610dac906024830190613750565b61131f91503d808f833e610dc581836136ed565b5f611277565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61134c61603f565b50610f92565b8161135c916136ed565b61040857835f610e79565b634e487b7160e01b84526021600452602484fd5b6113989193503d8086833e61139081836136ed565b810190613ce0565b915f6104cf565b8190610476565b816113b0916136ed565b61040c57825f61046b565b503461014957806003193601126101495760206113d6613e62565b6040519015158152f35b50346101495780600319360112610149576019546113fd8161399e565b9161140b60405193846136ed565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061144d57604051806101b78782613842565b60016020819260405161146b81611464818961391d565b03826136ed565b815201920192019190611438565b503461014957806003193601126101495760205460405163ecbbc03360e01b81526004810183905282918290829060249082906001600160a01b03165afa908115610c525782916115ed575b506001600160a01b036114d782613ab9565b516021549116906001600160a01b03165f5160206183775f395f51905f523b156115e8576040516328a9b0fb60e11b81526001600160a01b0392831660048201529116602482015282816044815f5160206183775f395f51905f525afa9081156115dd5783916115c8575b506001600160a01b03916115569150613ac6565b51165f5160206183775f395f51905f523b156115c557604051906328a9b0fb60e11b825260048201525f5160206183975f395f51905f52602482015281816044815f5160206183775f395f51905f525afa8015610c52576115b45750f35b816115be916136ed565b6101495780f35b50fd5b816115d2916136ed565b6115c557815f611542565b6040513d85823e3d90fd5b505050fd5b61160191503d8084833e6103aa81836136ed565b5f6114c5565b503461014957602036600319011261014957600435601f54811015610e1f5761162f906138cd565b91909161165f576040516101b79061164b81611464818761391d565b604051918291602083526020830190613750565b634e487b7160e01b81526004819052602490fd5b5034610149578060031936011261014957601c546116908161399e565b9061169e60405192836136ed565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106116e157604051806101b78782613774565b6040516116ed816136b7565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106118605784600197946002979460209794611778945491818110611844575b818110611828575b81811061180c575b8181106117f0575b8181106117d4575b8181106117b8575b81811061179e575b1061178a575b5003826136ed565b838201528152019201920191906116cc565b6001600160e01b031916815286015f611770565b828a1b6001600160e01b0319168452928901928b0161176a565b604083901b6001600160e01b0319168452928901928b01611762565b606083901b6001600160e01b0319168452928901928b0161175a565b608083901b6001600160e01b0319168452928901928b01611752565b60a083901b6001600160e01b0319168452928901928b0161174a565b60c083901b6001600160e01b0319168452928901928b01611742565b60e083901b6001600160e01b0319168452928901928b0161173a565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611715565b50346101495780600319360112610149576101608160405161192183826136ed565b600a81526020810192601f1901368437815b600a8110611a7e575060205460215460405163155adc9160e31b8152600481018590525f5160206183975f395f51905f5260248201526001600160a01b0391821660448201526080606482015292516084840181905292948593919092169160a4840191855b818110611a62575050508290039082905afa908115610c52578291611a40575b50815b600981106119c8578280f35b6119d28183613ad6565b516001820190818311611a2c576020611a1883611a0a611a03611a26956119fc600199988b613ad6565b5190613efd565b890b613f3b565b611a2083611a18878a613ad6565b510151613f96565b86613ad6565b016119bc565b634e487b7160e01b85526011600452602485fd5b611a5c91503d8084833e611a5481836136ed565b810190613b12565b5f6119b9565b8251845288965087955060209384019390920191600101611999565b9092915060018101808211611a2c57806103e802906103e882048103611ad857683635c9adc5dea000000290808204670de0b6b3a76400001490151715611a2c5790600191611acd8286613ad6565b520191839192611933565b634e487b7160e01b86526011600452602486fd5b5034610149578060031936011261014957601a54611b098161399e565b91611b1760405193846136ed565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611b5957604051806101b78782613842565b600160208192604051611b7081611464818961391d565b815201920192019190611b44565b503461014957611b8d36613823565b5f5160206183775f395f51905f523b1561040c57604051632631f2b160e11b8152600183116004820152839081816024815f5160206183775f395f51905f525afa8015610c525761272f575b505015612728576001905b60205460215460405163549387df60e11b8152600481018690526001600160a01b0391821660248201525f5160206183975f395f51905f5260448201529291859184916064918391165afa918215610c7e57849261270c575b50600283101561136757836001841492835f146122a857611c5d90613ac6565b5182105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257612293575b5050611d0f60018060a01b0360225416858060405160208101906370a0823160e01b825230602482015260248152611ce06044826136ed565b5190845afa50611cf16105806158da565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610df65790611d476105e483600188969501600e556138a1565b905560018060a01b0360115416600f5460e01b60105490611d66615c0c565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190611daa81610660888886615bf5565b519020885260205260ff60036040892001541615612285575b6001600160a01b0384165f908152600d60205260409020908752602052610660611dfc6040882093604051928391602083019586615bf5565b519020855260205260408420906001820154916002810154611e1e8185613aac565b61227a578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206183775f395f51905f525afa95861561226f578996612236575b506001908201610100031b5f1901811b1985165f5160206183775f395f51905f523b15612232576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528681606481835f5160206183775f395f51905f525af19081156103b857879161221d575b5050611ef3615dc5565b9015908115612211575b506121bd57505050611f0d6168fa565b6022546020805460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015295919286926044928492165af19283156103e95760249361219e575b505b6022546040516370a0823160e01b81523060048201529360209185919082906001600160a01b03165afa9283156103e957859361216a575b506040516370a0823160e01b81523060048201526020816024815f5160206183975f395f51905f525afa908115610aa0578691612138575b50602054602154604051638307c65560e01b8152600481018990526001600160a01b0391821660248201525f5160206183975f395f51905f526044820152606481019790975260848701849052608091879160a49183918b91165af1928315610aa0576024958794612117575b506022546040516370a0823160e01b81523060048201529660209188919082906001600160a01b03165afa9586156103b85787966120e3575b506040516370a0823160e01b8152306004820152906020826024815f5160206183975f395f51905f525afa918215610a325788926120af575084516109ab578780f35b9091506020813d6020116120db575b816120cb602093836136ed565b81010312610a265751905f6109a0565b3d91506120be565b9095506020813d60201161210f575b816120ff602093836136ed565b81010312610a265751945f61206c565b3d91506120f2565b61213191945060803d608011610a9957610a8a81836136ed565b925f612033565b90506020813d602011612162575b81612153602093836136ed565b81010312610a2657515f611fc6565b3d9150612146565b9092506020813d602011612196575b81612186602093836136ed565b81010312610a265751915f611f8e565b3d9150612179565b6121b69060203d602011610b6a57610b5b81836136ed565b505f611f54565b92509250935054905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610bbe565b5f19141590505f611efd565b81612227916136ed565b610c8957855f611ee9565b8880fd5b985094506020883d602011612267575b81612253602093836136ed565b81010312610a265796518997909481611e6f565b3d9150612246565b6040513d8b823e3d90fd5b610cd1879185613aac565b61228d61603f565b50611dc3565b8161229d916136ed565b61040857835f611ca7565b6122b59094939294613ab9565b5184105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c52576126f7575b505061233860018060a01b0360225416858060405160208101906370a0823160e01b825230602482015260248152611ce06044826136ed565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e481600161236d9301600e556138a1565b905560018060a01b036011541692600f5460e01b6010549061238d615c0c565b6001600160a01b0387165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906123d181610660888886615bf5565b519020895260205260ff600360408a20015416156126e9575b6001600160a01b0387165f908152600d602052604090209088526020526106606124236040892093604051928391602083019586615bf5565b519020865260205284604081209460018601549560028101546124468189613aac565b612613575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529890919060208a6044815f5160206183775f395f51905f525afa998a15610aa057869a6125da575b506001908201610100031b5f1901811b198916915f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528381606481835f5160206183775f395f51905f525af1908115610c7e5784916125c5575b505083612520615dc5565b9190159182156125ba575b5050611165575050506125829293506125426168fa565b6022546020805460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905295919286929116908290899082906044820190565b03925af19283156103e95760249361259b575b50611f56565b6125b39060203d602011610b6a57610b5b81836136ed565b505f612595565b14159050845f61252b565b816125cf916136ed565b61040c57825f612515565b955098506020853d60201161260b575b816125f7602093836136ed565b81010312610a265793519789949081612498565b3d91506125ea565b909192506126218188613aac565b6101000361010081116113305760ff81116113305760405163348051d760e11b8152600190911b6004820181905289826024815f5160206183775f395f51905f525afa801561132557606a6126d8916020948d9161130b57506040519485915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018452836136ed565b8510156112e757509087929161244b565b6126f161603f565b506123ea565b81612701916136ed565b61040857835f6122ff565b6127219192503d8086833e61139081836136ed565b905f611c3d565b8190611be4565b81612739916136ed565b61040c57825f611bd9565b5034610149578060031936011261014957601b546127618161399e565b9061276f60405192836136ed565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106127b257604051806101b78782613774565b6040516127be816136b7565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106128535784600197946002979460209794612841945491818110611844578181106118285781811061180c578181106117f0578181106117d4578181106117b85781811061179e571061178a575003826136ed565b8382015281520192019201919061279d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916127e6565b503461014957806003193601126101495760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612951576101b7856101ab818703826136ed565b82546001600160a01b031684526020909301926001928301920161293a565b503461014957806003193601126101495760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106129cf576101b7856101ab818703826136ed565b82546001600160a01b03168452602090930192600192830192016129b8565b503461014957806003193601126101495760205460215460405163549387df60e11b8152600481018490526001600160a01b03918216602482018190525f5160206183975f395f51905f526044830152929091169183908183606481875afa928315610c52578293612b2d575b50612a668351613fe5565b60405163549387df60e11b81528260048201528260248201525f5160206183975f395f51905f5260448201528281606481885afa80156115dd57612b15575b50612ab08351613fe5565b60646040518095819363549387df60e11b83528560048401525f5160206183975f395f51905f52602484015260448301525afa9182156115dd57612afa92612afd575b5051613fe5565b80f35b612b10903d8086833e61139081836136ed565b612af3565b612b28903d8085833e61139081836136ed565b612aa5565b612b429193503d8084833e61139081836136ed565b915f612a5b565b50346101495760403660031901126101495760043560243560018060a01b03602054169060018060a01b0360215416908460405163549387df60e11b81528160048201528360248201525f5160206183975f395f51905f5260448201528181606481885afa908115610c52578291612e27575b50612bc681613ab9565b5186105f5160206183775f395f51905f523b1561040c5760405190632631f2b160e11b8252600482015282816024815f5160206183775f395f51905f525afa9081156115dd578391612e12575b50505f5160206183775f395f51905f523b15610e1f57604051632631f2b160e11b815260018711600482015282816024815f5160206183775f395f51905f525afa9081156115dd578391612dfd575b5050612c6d90613ab9565b5182105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257612de8575b50505f5160206183775f395f51905f523b15612de457604051632631f2b160e11b815260018211600482015285816024815f5160206183775f395f51905f525afa8015610aa057612dcf575b5091849391612d58959360405193612d1c6060866136ed565b600285526040366020870137612d3185613ab9565b52612d3b84613ac6565b5260405180968194829363155adc9160e31b845260048401613b96565b03915afa918215612dc2578192612da6575b50805b8251811015612da25780612d8d612d8660019386613ad6565b5151613f96565b612d9c6020611a188387613ad6565b01612d6d565b5080f35b612dbb9192503d8084833e611a5481836136ed565b905f612d6a565b50604051903d90823e3d90fd5b612dda8680926136ed565b612de4575f612d03565b8480fd5b81612df2916136ed565b612de457845f612cb7565b81612e07916136ed565b610e1f57815f612c62565b81612e1c916136ed565b610e1f57815f612c13565b612e3b91503d8084833e61139081836136ed565b5f612bbc565b5034610149578060031936011261014957601d54612e5e8161399e565b612e6b60405191826136ed565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612f6f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612ed75786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612f4457505050505060208060019297019301930190928695949293612eca565b9091929394602080612f62600193605f198782030189528951613750565b9701950193929101612f20565b604051612f7b816136b7565b82546001600160a01b03168152600183018054612f978161399e565b91612fa560405193846136ed565b8183528a526020808b20908b9084015b838210612fdb575050505060019282602092836002950152815201920192019190612e9b565b600160208192604051612ff281611464818a61391d565b815201930191019091612fb5565b503461014957806003193601126101495760405161016061302181836136ed565b600a8252601f190136602083013781805b600a81106130e4575060205460215460405163155adc9160e31b81529384926001600160a01b03908116928492839261306f921660048401613b96565b03915afa908115610c525782916130ca575b50815b60098110613090578280f35b61309a8183613ad6565b516001820190818311611a2c576020611a1883611a0a611a036130c4956119fc600199988b613ad6565b01613084565b6130de91503d8084833e611a5481836136ed565b5f613081565b90506001810180821161313a57806103e802906103e882048103611a2c57683635c9adc5dea000000290808204670de0b6b3a7640000149015171561313a57906001916131318285613ad6565b52018290613032565b634e487b7160e01b84526011600452602484fd5b503461014957806003193601126101495760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106131ad576101b7856101ab818703826136ed565b82546001600160a01b0316845260209093019260019283019201613196565b5034610a26575f366003190112610a26576020546021546040516348bd7dfd60e01b81525f60048201819052602482018190526001600160a01b0392831660448301529092909183916064918391165afa90811561328c575f91613297575b50515f5160206183775f395f51905f523b15610a26576040519063260a5b1560e21b82526004820152600460248201525f816044815f5160206183775f395f51905f525afa801561328c5761327e575080f35b61328a91505f906136ed565b005b6040513d5f823e3d90fd5b6132ab91503d805f833e6103db81836136ed565b5f61322b565b34610a26575f366003190112610a26576040516101606132d181836136ed565b600a82526020820190601f19013682375f5b600a81106133fd575060205460405163155adc9160e31b81525f60048201819052602482018190525f5160206183975f395f51905f5260448301526080606483015293516084820181905290936001600160a01b0390921692849260a4840192905b8181106133e457505050918180845f955003915afa90811561328c575f916133ca575b505f5b6009811061337557005b61337f8183613ad6565b519060018101918282116133b6576020611a1884611a0a6133a96133b0956119fc6001998b613ad6565b5f0b613f3b565b0161336b565b634e487b7160e01b5f52601160045260245ffd5b6133de91503d805f833e611a5481836136ed565b81613368565b8251845286945060209384019390920191600101613345565b60018101908181116133b657816103e802916103e8830481036133b657683635c9adc5dea000000291808304670de0b6b3a764000014901517156133b6576001916134488286613ad6565b52016132e3565b34610a26575f366003190112610a265760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206183775f395f51905f525afa90811561328c576134d7916020915f91613664575b50604051809381926371ee464d60e01b8352604060048401526044830190613750565b6301272172602483015203815f5f5160206183775f395f51905f525af1801561328c57613635575b506040516117ac808201908282106001600160401b03831117613621576040918391616bab833973bafa44efe7901e04e39dad13167d089c559c113881525f5160206183975f395f51905f5260208201520301905ff0801561328c57602080546001600160a01b0319166001600160a01b03929092169190911781556040516338d52e0f60e01b815290816004815f5160206183975f395f51905f525afa90811561328c575f916135df575b5060018060a01b0316806001600160601b0360a01b60225416176022556001600160601b0360a01b60215416176021555f80f35b90506020813d602011613619575b816135fa602093836136ed565b81010312610a2657516001600160a01b0381168103610a2657816135ab565b3d91506135ed565b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161365c575b8161364e602093836136ed565b81010312610a2657516134ff565b3d9150613641565b61367891503d805f833e610dc581836136ed565b836134b4565b34610a26576040366003190112610a26576136af60209161369e816136b7565b6004358152602435838201526139e6565b604051908152f35b604081019081106001600160401b0382111761362157604052565b606081019081106001600160401b0382111761362157604052565b90601f801991011681019081106001600160401b0382111761362157604052565b60206040818301928281528451809452019201905f5b8181106137315750505090565b82516001600160a01b0316845260209384019390920191600101613724565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106137a657505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106138005750505060208060019297019301930191939290613797565b82516001600160e01b0319168452602093840193909201916001909101906137e1565b6040906003190112610a2657600435906024358015158103610a265790565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061387457505050505090565b9091929394602080613892600193603f198682030187528951613750565b97019301930191939290613865565b600e548110156138b957600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156138b957601f5f5260205f2001905f90565b90600182811c92168015613913575b60208310146138ff57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916138f4565b5f929181549161392c836138e5565b8083529260018116908115613981575060011461394857505050565b5f9081526020812093945091925b838310613967575060209250010190565b600181602092949394548385870101520191019190613956565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116136215760051b60200190565b818102929181159184041417156133b657565b81156139d2570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156133b6576020613a1d920151906139c8565b90565b6001600160401b03811161362157601f01601f191660200190565b602081830312610a26578051906001600160401b038211610a26570181601f82011215610a2657805190613a6e82613a20565b92613a7c60405194856136ed565b82845260208383010111610a2657815f9260208093018386015e8301015290565b90816020910312610a26575190565b919082018092116133b657565b8051156138b95760200190565b8051600110156138b95760400190565b80518210156138b95760209160051b010190565b9190826040910312610a2657604051613b02816136b7565b6020808294805184520151910152565b602081830312610a26578051906001600160401b038211610a26570181601f82011215610a26578051613b448161399e565b92613b5260405194856136ed565b81845260208085019260061b84010192818411610a2657602001915b838310613b7c575050505090565b6020604091613b8b8486613aea565b815201920191613b6e565b60a060209160808101935f8252600180841b0316838201525f5160206183975f395f51905f526040820152608060608201528451809452019201905f5b818110613be05750505090565b8251845260209384019390920191600101613bd3565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b818110613c3a5750505090565b8251845260209384019390920191600101613c2d565b919082039182116133b657565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a2657815190613c918261399e565b92613c9f60405194856136ed565b82845260208085019360051b820101918211610a2657602001915b818310613cc75750505090565b8251600a811015610a2657815260209283019201613cba565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a26578151613d138161399e565b92613d2160405194856136ed565b81845260208085019260051b820101928311610a2657602001905b828210613d495750505090565b8151815260209182019101613d3c565b90816020910312610a2657518015158103610a265790565b90608082820312610a2657613da2906040805193613d8e856136d2565b805185526020810151602086015201613aea565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a2657815190613e0c8261399e565b92613e1a60405194856136ed565b82845260208085019360051b820101918211610a2657602001915b818310613e425750505090565b82516001600160a01b0381168103610a2657815260209283019201613e35565b60085460ff168015613e715790565b50604051630667f9d760e41b81525f5160206183775f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206183775f395f51905f525afa90811561328c575f91613ecb575b50151590565b90506020813d602011613ef5575b81613ee6602093836136ed565b81010312610a2657515f613ec5565b3d9150613ed9565b613f1d906020613f12825182860151906139b5565b9351910151906139b5565b90808203613f2b5750505f90565b1115613f3657600190565b5f1990565b5f5160206183775f395f51905f523b15610a26576040519063fe74f05b60e01b825260048201525f60248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f613f94916136ed565b565b5f5160206183775f395f51905f523b15610a265760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f5160206183775f395f51905f523b15610a26576040519063260a5b1560e21b82526004820152600260248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b905f5160206183775f395f51905f523b15610a26576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f5b81518110156140cd576140998183613ad6565b51600a8110156140b9576005146140b257600101614086565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b81518110156140cd576140e88183613ad6565b51600a8110156140b9576009146140b2576001016140d5565b5f5b81518110156140cd576141168183613ad6565b51600a8110156140b9576008146140b257600101614103565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526141676064846136ed565b82516001600160a01b038316915f91829182855af1906141856158da565b826141e5575b50816141da575b501561419d57505050565b6141d5613f94936040519063095ea7b360e01b602083015260248201525f6044820152604481526141cf6064826136ed565b82615909565b615909565b90503b15155f614192565b805191925081159182156141fd575b5050905f61418b565b6142109250602080918301019101613d59565b5f806141f4565b604051906142266060836136ed565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af1801561328c576142da915f916158c0575b50613ab9565b5161010052606060a0819052604051614336916142f790826136ed565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b6040820152610100516159cc565b60a051505f806143be6143ec60405161435160a051826136ed565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613750565b6001600160a01b038a811660448401528716606483015261010051608483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af1801561328c57614459915f916158a6575b506140d3565b906040519161446960a0846136ed565b60048352608036602085013715615899575f5b61448583613ab9565b526103e8610100510461449783613ac6565b528151600210156138b95760a05182016101005160011c90528151600310156138b95761010051608083015260405163155adc9160e31b8152935f85806144e486868b8a60048601613bf6565b0381836001600160a01b0386165af194851561328c575f9561587d575b5061451461450e86613ab9565b516139e6565b85515f198101919082116133b65761453261450e61458c9389613ad6565b60a051604051929061454490846136ed565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152615a33565b61459861450e86613ab9565b85515f1981019081116133b65761463361464c5f936145bb61450e86958c613ad6565b60a0516040519291906145ce90846136ed565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190613750565b916044840152606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa5060a0516040516146b29161467590826136ed565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152615a68565b6147046146be86613ab9565b5151604060e0819052805191906146d590836136ed565b601882527f4e6f6d696e61746f722073686f756c646e27742062652030000000000000000060208301526159cc565b614755602061471287613ab9565b51015160e0518051919061472690836136ed565b601a82527f44656e6f6d696e61746f722073686f756c646e2774206265203000000000000060208301526159cc565b61476161450e86613ab9565b9460e051506147a08660e0515161477a60e051826136ed565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152615aac565b60e051516147ad816136d2565b5f81525f602082015260e05151906147c4826136b7565b5f808352602083015260e051015283515f1981019081116133b6576147e99085613ad6565b5160058181020481036133b6575f8060e0515160208101906370a0823160e01b8252306024820152602481526148206044826136ed565b51908b5afa506148316105806158da565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015613621576105e48160016148829301600e556138a1565b90556011546001600160a01b031661014052600f546010549060e01b6148a6615c0c565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e0515160208101906148ef81610660888886615bf5565b5190205f5260205260ff600360e0515f200154161561586f575b610140516001600160a01b03165f908152600d60205260409020905f5260205261066061494760e0515f209360e05151928391602083019586615bf5565b5190205f5260205260e0515f2060018101549160028201546149698185613aac565b615759575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f5160206183775f395f51905f525afa958615615719575f96615725575b506001908201610100031b5f1901811b1985165f5160206183775f395f51905f523b15610a265760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f5160206183775f395f51905f525af1801561571957615704575b50614a45615dc5565b90159182156156f6575b5050615602575050614a5f6168fa565b60e05151634b88b8ad60e11b8152602081600481610120515f5160206183775f395f51905f525af18015614f5657610120516080526155cf575b5060015b8451811015615023575f80614b54614b7a614ab7856138cd565b50614ac2868b613ad6565b51614b66611464614b2e60e0515194614add60a051876136ed565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e051519283809261391d565b60e05151635821efa160e01b602082015260a05160248201529586946084860190613750565b84810360231901604486015290613750565b90606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa50614b9c61450e8284613ad6565b5f80614c11614c358c614baf878c613ad6565b5160e0515191614bc160e051846136ed565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190613750565b60448401929092526001600160a01b0316606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89614c79614c5c878c613ad6565b5160e05151638307c65560e01b8152958694859460048601613daa565b03816101205160018060a01b038a165af1908115614f56576101205191615005575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715614feb57614ce8614cf3916a084595161401484a000000614ce0878c613ad6565b5191026139c8565b9160e05101516139e6565b91614d378260e05151614d0860e051826136ed565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152615aac565b614d7a8160e05151614d4b60e051826136ed565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152615aac565b614dbd8360e05151614d8e60e051826136ed565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152615aac565b60c05115614f655760a05160e05151614ef194614e96939092614e2c929190614de690836136ed565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285615aef565b60a05160e051519190614e3f90836136ed565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283615a33565b60a05160e051519190614ea990836136ed565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289615a33565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f5160206183775f395f51905f525af1918215614f5657600192614f38575b5001614a9d565b614f4f9060203d8111610b6a57610b5b81836136ed565b505f614f31565b60e051513d61012051823e3d90fd5b614f8e90614f7f614fe694614f78614217565b908d615aef565b614f87614217565b908b615aef565b60e0515190614f9f60a051836136ed565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289615aef565b614ef1565b634e487b7160e01b61012051526011600452602461012051fd5b61501d915060803d8111610a9957610a8a81836136ed565b5f614c9b565b50509150919392506069610100510261010051810460691461010051151715614feb5760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015614f56576150a79161012051916155b2575b50614101565b156154555761510f8460e051516150c060a051826136ed565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152615aac565b60e0518051949061512090866136ed565b6001855260e051601f190136602087013761513a85613ab9565b5260e0515163155adc9160e31b815261012051818061515f8888878c60048601613bf6565b03816101205160018060a01b0388165af1908161543a575b506153ce576001615186615b24565b6308c379a014615340575b614f56576151a0608094613ab9565b51946151c360e0515196879586948594638307c65560e01b865260048601613daa565b61012051919003926001600160a01b03165af19081615323575b506152c15760016151ec615b24565b6308c379a01461523e575b614f56575b613f9460e0515161520f60e051826136ed565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152615a68565b615246615b3f565b80615252575b506151f7565b6101205160a05160e051519193506152bb92919061527090826136ed565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152615bb1565b5f61524c565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b61533b9060803d608011610a9957610a8a81836136ed565b6151dd565b615348615b3f565b80615354575b50615191565b6101205160a05160e051519193506153c892919061537290826136ed565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152615bb1565b5f61534e565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b615450903d8061012051833e611a5481836136ed565b615177565b60a05160e051516154b79186919061546d90826136ed565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152615aac565b60e051805194906154c890866136ed565b6001855260e051601f19013660208701376154e285613ab9565b5260e051519363155adc9160e31b85526101205185806155088488878c60048601613bf6565b03816101205160018060a01b0388165af1908115614f5657608095615531926155975750613ab9565b519461555460e0515196879586948594638307c65560e01b865260048601613daa565b61012051919003926001600160a01b03165af18015614f5657615578575b506151fc565b6155909060803d608011610a9957610a8a81836136ed565b505f615572565b6155ad903d8061012051833e611a5481836136ed565b6142d4565b6155c991503d8061012051833e6103db81836136ed565b5f6150a1565b6020813d6020116155fa575b816155e8602093836136ed565b81010312610a2657516080525f614a99565b3d91506155db565b545f5160206183775f395f51905f523b156156ef5760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f5160206183775f395f51905f525af18015614f56576156d4575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610120516156e1916136ed565b610120516156ef5780615672565b6101205180fd5b600502141590505f80614a4f565b5f61570e916136ed565b5f610120525f614a3c565b60e051513d5f823e3d90fd5b9095506020813d602011615751575b81615741602093836136ed565b81010312610a26575194816149bf565b3d9150615734565b6157638185613aac565b6101000361010081116133b65760ff81116133b65760e0515163348051d760e11b81526001821b60048201525f816024815f5160206183775f395f51905f525afa9182156157195761581f606a6020946001945f91615855575b5060e051519586915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f1981018552846136ed565b1b836005021015615830575061496e565b60e0515162461bcd60e51b815260206004820152908190610dac906024830190613750565b61586991503d805f833e610dc581836136ed565b5f6157bd565b61587761603f565b50614909565b6158929195503d805f833e611a5481836136ed565b935f614501565b612710610100510461447c565b6158ba91503d805f833e6103db81836136ed565b5f614453565b6158d491503d805f833e61139081836136ed565b5f6142d4565b3d15615904573d906158eb82613a20565b916158f960405193846136ed565b82523d5f602084013e565b606090565b8151615934926001600160a01b03909216915f91829160200182855af161592e6158da565b91615f84565b80519081615940575050565b602080615951938301019101613d59565b1561595857565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b613a1d9392606092825260208201528160408201520190613750565b5f5160206183775f395f51905f523b15610a2657615a14915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613750565b03815f5160206183775f395f51905f525afa801561328c57613f8a5750565b905f5160206183775f395f51905f523b15610a26575f91615a146040519485938493636cd1e26960e11b8552600485016159b0565b5f610660615a95829360405192839163104c13eb60e21b6020840152602060248401526044830190613750565b6020815191016a636f6e736f6c652e6c6f675afa50565b615adb615a955f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613750565b90604483015203601f1981018352826136ed565b905f5160206183775f395f51905f523b15610a26575f91615a146040519485938493630389490b60e61b8552600485016159b0565b5f9060033d11615b3057565b905060045f803e5f5160e01c90565b5f60443d10613a1d576040513d600319016004823e8051913d60248401116001600160401b03841117615bab57828201928351916001600160401b038311615ba3573d84016003190185840160200111615ba35750613a1d929101602001906136ed565b949350505050565b92915050565b615be3615a955f93926106608594604051948593634b5c427760e01b6020860152604060248601526064850190613750565b83810360231901604485015290613750565b60209291908391805192839101825e019081520190565b615c176014546138e5565b615cd4576040519081826020600e549283815201600e5f5260205f20925f5b818110615cbb575050615c4b925003836136ed565b81518060051b90808204602014901517156133b657615c6981613a20565b90615c7760405192836136ed565b808252615c86601f1991613a20565b013660208301375f5b8351811015615cb65780615ca560019286613ad6565b5160208260051b8501015201615c8f565b509150565b8454835260019485019487945060209093019201615c36565b604051613a1d8161146481601461391d565b6007810190615cf582546138e5565b615db157600191500190604051808360208295549384815201905f5260205f20925f5b818110615d98575050615d2d925003836136ed565b81518060051b90808204602014901517156133b657615d4b81613a20565b90615d5960405192836136ed565b808252615d68601f1991613a20565b013660208301375f5b8351811015615cb65780615d8760019286613ad6565b5160208260051b8501015201615d71565b8454835260019485019487945060209093019201615d18565b50613a1d611464916040519283809261391d565b5f806020600f5460e01b615e136024615dde600d615ce6565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f1981018452836136ed565b6011549151916001600160a01b03165afa90615e2d6158da565b601054909290600581901b906001600160fb1b038116036133b6575f938051602081115f14615eb857506020905b5f925b828410615e6d57505050509190565b90919295615e7b8783613aac565b83518110156138b957830160200151600388901b91906001600160f81b031916881560088a85041417156133b6576001921c179601929190615e5e565b90615e5b565b905f806020600285015460e01b615ed96024615dde88615ce6565b60048601549151916001600160a01b03165afa6003615ef66158da565b930154600581901b906001600160fb1b038116036133b6575f938051602081115f14615f7e57506020905b5f925b828410615f3357505050509190565b90919295615f418783613aac565b83518110156138b957830160200151600388901b91906001600160f81b031916881560088a85041417156133b6576001921c179601929190615f24565b90615f21565b90615fa85750805115615f9957805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615fd9575b615fb9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615fb1565b9080601f83011215610a26578151615ff98161399e565b9261600760405194856136ed565b81845260208085019260051b820101928311610a2657602001905b82821061602f5750505090565b8151815260209182019101616022565b601154600f546010546001600160a01b03909216915f9160e01b616063600d615ce6565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061609c81610660888886615bf5565b5190205f5260205260ff600360405f200154166168b9575f5160206183775f395f51905f523b15610a265760405163266cf10960e01b81525f81600481835f5160206183775f395f51905f525af1801561328c576168a4575b50616100600d615ebe565b90506040516365bc948160e01b81528660048201528581602481835f5160206183775f395f51905f525af1908115610aa0578691616840575b5080516161aa57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015616838578160206161c5836161f695613ad6565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206183775f395f51905f525afa928315610a32578893616805575b5082156167ad575b6162288282613ad6565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206183775f395f51905f525afa9081156167a2578b91616771575b50616283600d615ebe565b91909382155f1461676a575f19905b5f5160206183775f395f51905f523b15616751576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206183775f395f51905f525af180156166d657908d91616755575b5050616303600d615ebe565b601154909491506001600160a01b03165f5160206183775f395f51905f523b15616751576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206183775f395f51905f525af1801561674657908c9161672d575b505082616722575b505015616718578793889360ff6013541661659d575b6001868601610100031b5f1901851b16841c810361658f57509061641d917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896106606163f28d604051928391602083019586615bf5565b5190206163ff8686613ad6565b51906040519283528a602084015260408301526060820152a1613ad6565b51906040519060808201928284106001600160401b038511176136215760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190616486816106608d8d86615bf5565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d602052604084208185526020526040842060405160208101906164e181610660888886615bf5565b519020855260205260ff60036040862001541615616532576040948452600d602052848420908452602052610660616526858520938651928391602083019586615bf5565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016161ac565b94506165e893506165ae8383613ad6565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206183775f395f51905f525afa948515611325578a956166e5575b5061661486600d616a0e565b95909661662281600d616ae7565b60115490939192906001600160a01b03165f5160206183775f395f51905f523b156166e1576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206183775f395f51905f525af180156166d657908d916166bd575b5050876166b5575b509495616397575093509150600190616597565b96505f6166a1565b816166c7916136ed565b6166d2578b5f616699565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616710575b81616700602093836136ed565b81010312610a265751935f616608565b3d91506166f3565b9150600190616597565b141590505f80616381565b81616737916136ed565b616742578a5f616379565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b8161675f916136ed565b6166d2578b5f6162f7565b8c90616292565b90506020813d821161679a575b8161678b602093836136ed565b81010312610a2657515f616278565b3d915061677e565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56167fd6167db8484613ad6565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a161621e565b9092506020813d8211616830575b81616820602093836136ed565b81010312610a265751915f616216565b3d9150616813565b5050506164b4565b90503d8087833e61685181836136ed565b81016040828203126104045781516001600160401b0381116168a05781616879918401615fe2565b916020810151906001600160401b03821161223257616899929101615fe2565b505f616139565b8780fd5b6168b19194505f906136ed565b5f925f6160f5565b91939092505f52600d60205260405f20905f526020526106606168eb60405f2093604051928391602083019586615bf5565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806169cc575b505f60105560ff19601354166013556169406014546138e5565b806169485750565b601f811160011461695a57505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106169c157505060145f525f602081208160145555565b5f81556001016169a8565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110616a035750616926565b5f81556001016169f6565b91905f5b6101008110616a2557505090505f905f90565b8060ff0360ff81116133b6576004850154600190911b906001600160a01b03165f5160206183775f395f51905f523b15610a26576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206183775f395f51905f525af1801561328c57616ad7575b50616ab184615ebe565b81616acd575b50616ac457600101616a12565b92505060019190565b905015155f616ab7565b5f616ae1916136ed565b5f616aa7565b91905f5b6101008110616afe57505090505f905f90565b60048401546001821b906001600160a01b03165f5160206183775f395f51905f523b15610a26576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206183775f395f51905f525af1801561328c57616b9a575b50616b7d84615ebe565b81616b90575b50616ac457600101616aeb565b905015155f616b83565b5f616ba4916136ed565b5f616b7356fe60e03461011657601f6117ac38819003918201601f19168301916001600160401b0383118484101761011a578084926040948552833981010312610116576100468161012e565b906001600160a01b039061005c9060200161012e565b1660c052735e8422345238f34275888049021821e8e08caa1f6080526001600160a01b031660a052604051611669908161014382396080518181816107c301528181610a1501528181610e200152610ff1015260a051818181609b015281816104c601528181610dbd0152610f91015260c0518181816104890152818161083f01528181610a9f01528181610aea01528181610b2801528181610b6f01528181610d7901528181610ec40152818161103c01526111dd0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101165756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca011461045a57806348bd7dfd146103835780638307c65514610320578063a9270fbe146102c4578063aad6e488146101d85763ecbbc0330361000e57346101d45760203660031901126101d45760405161007f6060826105d9565b6002815260208101604036823760405163ba947f2760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9182156101ac576004926020925f916101b7575b506100eb86610613565b6001600160a01b039091169052604051630e2b46db60e11b815292839182905afa9081156101ac575f9161017d575b50610126839293610620565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b81811061015b575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014d565b61019f915060203d6020116101a5575b61019781836105d9565b8101906109e9565b5f61011a565b503d61018d565b6040513d5f823e3d90fd5b6101ce9150833d85116101a55761019781836105d9565b5f6100e1565b5f80fd5b346101d45760803660031901126101d4576101f1610543565b6101f9610559565b6064359067ffffffffffffffff82116101d457366023830112156101d457816004013592610226846105fb565b9261023460405194856105d9565b8484526024602085019560051b820101903682116101d457602401945b8186106102b45750506102649350610936565b6040518091602082016020835281518091526020604084019201905f5b81811061028f575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610281565b8535815260209586019501610251565b346101d4576102dc6102d53661056f565b9150610778565b6040518091602082016020835281518091526020604084019201905f5b818110610307575050500390f35b82518452859450602093840193909201916001016102f9565b346101d45760a03660031901126101d457610339610543565b610341610559565b6064359160028310156101d45760809261035e9260843592610665565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d4576103913661056f565b5050506040516103a260a0826105d9565b6004815260208101608036823760016103ba83610613565b5260026103c683610620565b5281516002101561044657600360608301528151600310156104465760056080830152604051906020820192602083525180935260408201905f935b80851061040f5783830384f35b9091825190600a8210156104325760208160019382935201930194019390610402565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d45760403660031901126101d4576040516104796060826105d9565b60028152602081019060403683377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166104c382610613565b527f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff191661050082610620565b52604051918291602083019060208452518091526040830191905f5b81811061052a575050500390f35b825184528594506020938401939092019160010161051c565b602435906001600160a01b03821682036101d457565b604435906001600160a01b03821682036101d457565b60609060031901126101d457600435906024356001600160a01b03811681036101d457906044356001600160a01b03811681036101d45790565b6040810190811067ffffffffffffffff8211176105c557604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176105c557604052565b67ffffffffffffffff81116105c55760051b60200190565b8051156104465760200190565b8051600110156104465760400190565b80518210156104465760209160051b010190565b9190820391821161065157565b634e487b7160e01b5f52601160045260245ffd5b9093926040516060810181811067ffffffffffffffff8211176105c5576040525f81526106e360208201965f88525f60408401986040516106a5816105a9565b8281528260208201528a528499604051906106bf826105a9565b670de0b6b3a76400008252670de0b6b3a76400006020830152528185525284610a08565b61077157505a916002841015610432578161073394155f146107415761070891610ea2565b80865290811561073a576040519161071f836105a9565b8252602082015260408501525b5a90610644565b6020830152565b505061072c565b61074a91610b5a565b808652801561073a5760405191610760836105a9565b82526020820152604085015261072c565b9450505050565b604051916107876060846105d9565b600283526040366020850137825f61079e82610613565b525f6107a982610620565b526107b48284610a08565b61092f57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216808314908115610926575b50156108205750506001600160801b0361080a82610613565b526001600160801b0361081c82610620565b5290565b6001600160a01b0316146108315790565b6040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa9182156101ac575f926108f1575b50602060249160405192838092630a28a47760e01b82528660048301525afa9081156101ac575f916108bf575b506108b583610613565b5261081c82610620565b90506020813d6020116108e9575b816108da602093836105d9565b810103126101d457515f6108ab565b3d91506108cd565b9091506020813d60201161091e575b8161090d602093836105d9565b810103126101d4575190602061087e565b3d9150610900565b9050155f6107f1565b9250505090565b9092918051610944816105fb565b9061095260405192836105d9565b808252610961601f19916105fb565b015f5b8181106109c6575050610978819584610a08565b6109c057505f5b81518110156109bb578061099f61099860019385610630565b5185610fd9565b6109a98288610630565b526109b48187610630565b500161097f565b505050565b93505050565b6020906040516109d5816105a9565b5f81525f8382015282828601015201610964565b908160209103126101d457516001600160a01b03811681036101d45790565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911681811415929083610b26575b83610b1c575b8315610ac8575b508215610a81575b8215610a6e575b5050610a69575f90565b600190565b6001600160a01b03161490505f80610a5f565b9150801580610a91575b91610a58565b506001600160a01b038281167f00000000000000000000000000000000000000000000000000000000000000009091161415610a8b565b9092506001600160a01b038316908114159081610ae8575b50915f610a50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610ae0565b8215159350610a49565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610a43565b6001600160a01b031691905f908315610d5e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690848203610caa57604051630a28a47760e01b81526004810182905294602086602481865afa908115610c9f578495968592610c63575b5091610be460209492610c1494309033906114cf565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af1918215610c575791610c28575090565b90506020813d602011610c4f575b81610c43602093836105d9565b810103126101d4575190565b3d9150610c36565b604051903d90823e3d90fd5b9391509193506020833d602011610c97575b81610c82602093836105d9565b810103126101d4579151849391610be4610bce565b3d9150610c75565b6040513d86823e3d90fd5b60405163b3d7f6b960e01b81526004810182905294602086602481865afa908115610c9f578495968592610d22575b5091610cf88285610c1495610cf3602098963033846114cf565b61137d565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b9391509193506020833d602011610d56575b81610d41602093836105d9565b810103126101d4579151849391610cf8610cd9565b3d9150610d34565b60405163b3d7f6b960e01b81526004810182905292935090917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081602481865afa9081156101ac575f91610e70575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101d4575f8291600460405180948193632de597e360e11b83525af180156101ac57610e4d575b508392602092610c1492610cf890837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661137d565b610cf8945092602092610e645f610c1494966105d9565b5f955092509290610e0f565b90506020813d602011610e9a575b81610e8b602093836105d9565b810103126101d457515f610dba565b3d9150610e7e565b6001600160a01b03168015610f705760209082610ec25f943033856114cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908282148514610f3857604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481015b03925af19081156101ac575f91610c28575090565b610f468183610f239561137d565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b50604051634dcd454760e01b815233600482015290602090829060249082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91610c28575090565b9190820180921161065157565b604051610fe5816105a9565b5f8082526020909101527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116908114908115611374575b50156111c7576040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa80156101ac5782905f90611191575b6110889250610fcc565b916040519163ef8b30f760e01b83526004830152602082602481845afa9182156101ac575f9261115c575b50906020600492604051938480926318160ddd60e01b82525afa80156101ac575f90611128575b6110e49250610fcc565b90815f1904670de0b6b3a7640000118202158102156101d4576040519161110a836105a9565b670de0b6b3a764000002048152670de0b6b3a7640000602082015290565b506020823d602011611154575b81611142602093836105d9565b810103126101d4576110e491516110da565b3d9150611135565b91506020823d602011611189575b81611177602093836105d9565b810103126101d45790519060206110b3565b3d915061116a565b50506020813d6020116111bf575b816111ac602093836105d9565b810103126101d45781611088915161107e565b3d915061119f565b60405163266d6a8360e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa9182156101ac575f92611340575b506040516278744560e21b815291602083600481875afa9283156101ac575f9361130a575b50611251602091600494610644565b93604051938480926318160ddd60e01b82525afa80156101ac575f906112d6575b61127c9250610644565b90816112ae575050670de0b6b3a76400005b6040519061129b826105a9565b8152670de0b6b3a7640000602082015290565b805f1904670de0b6b3a7640000118102158202156101d457670de0b6b3a7640000020461128e565b506020823d602011611302575b816112f0602093836105d9565b810103126101d45761127c9151611272565b3d91506112e3565b92506020833d602011611338575b81611325602093836105d9565b810103126101d457915191611251611242565b3d9150611318565b9091506020813d60201161136c575b8161135c602093836105d9565b810103126101d45751905f61121d565b3d915061134f565b9050155f611028565b604051636eb1769f60e11b81523060048201526001600160a01b03928316602482018190529392821692602082604481875afa80156101ac575f9061149b575b6113c79250610fcc565b915f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526113f76064876105d9565b85519082855af190611407611596565b82611469575b508161145e575b501561141f57505050565b61145761145c936040519063095ea7b360e01b602083015260248201525f6044820152604481526114516064826105d9565b8261152b565b61152b565b565b90503b15155f611414565b80519192508115918215611481575b5050905f61140d565b6114949250602080918301019101611513565b5f80611478565b506020823d6020116114c7575b816114b5602093836105d9565b810103126101d4576113c791516113bd565b3d91506114a8565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145c916114576084836105d9565b908160209103126101d4575180151581036101d45790565b5f806115539260018060a01b03169360208151910182865af161154c611596565b90836115d5565b805190811515918261157b575b50506115695750565b635274afe760e01b5f5260045260245ffd5b61158e9250602080918301019101611513565b155f80611560565b3d156115d0573d9067ffffffffffffffff82116105c557604051916115c5601f8201601f1916602001846105d9565b82523d5f602084013e565b606090565b906115f957508051156115ea57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061162a575b61160a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561160256fea264697066735822122072a6acb1af5d7f7b4a48c2ff88e7f9fc18a79985403ac1f221926b9de12fd3ab64736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000ac3e018457b222d93114458476f3e3416abbe38f73746453746f726167652066696e642853746453746f72616765293a20506163a264697066735822122034a8d0016c99b5402a65e13e8306746de2b20dc25c42e37820743e443ad437cd64736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"297:9163:72:-:0;;;;;;3166:4:2;297:9163:72;;3166:4:2;297:9163:72;;;3166:4:2;297:9163:72;3166:4:2;297:9163:72;;1038:4:12;297:9163:72;;;1038:4:12;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;297:9163:72;;;;;;;;;:::i;:::-;564:29:65;297:9163:72;;-1:-1:-1;;;297:9163:72;;;;;564:29:65;;297:9163:72;;;;:::i;:::-;;;;-1:-1:-1;;;297:9163:72;;;;;564:29:65;;297:9163:72;;;;:::i;:::-;564:29:65;297:9163:72;;-1:-1:-1;;;297:9163:72;;;;564:29:65;;;297:9163:72;;;564:29:65;297:9163:72;;;564:29:65;297:9163:72;;;-1:-1:-1;;297:9163:72;;;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;564:29:65;297:9163:72;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;297:9163:72;;;;;;;;;;;-1:-1:-1;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;;;;564:29:65;297:9163:72;;;;;;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;;;;;;;;;;;3166:4:2;297:9163:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;297:9163:72;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610160806040526004361015610013575f80fd5b5f905f3560e01c90816308c417451461367e575080630a9254e41461344f57806310033ae4146132b15780631a91bcf0146131cc5780631ed7831c1461314e578063226212a2146130005780632ade388014612e415780632b72882614612b4957806334529dcb146129ee5780633e5e3c23146129705780633f7286f4146128f257806366d9a9a01461274457806375c04aa714611b7e57806385226c8114611aec5780638681f5b8146118ff578063916a17c614611673578063a00872f114611607578063a11c799814611479578063b5508aa9146113e0578063ba414fa6146113bb578063bfdaf70f14610410578063d170c3cc146101da578063e20c9f711461014c5763fa7626d414610127575f80fd5b34610149578060031936011261014957602060ff601e54166040519015158152f35b80fd5b503461014957806003193601126101495760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106101bb576101b7856101ab818703826136ed565b6040519182918261370e565b0390f35b82546001600160a01b0316845260209093019260019283019201610194565b5034610149576040366003190112610149576004356001600160a01b03811680820361040c57602435916001600160401b03831161040857366023840112156104085782600401359261022c8461399e565b9361023a60405195866136ed565b8085526024602086019160051b8301019136831161040457602401905b8282106103f45750505061026a83613ab9565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156103e9576102aa9186916103c7575b50614084565b1591845b84518110156103c3576102c18186613ad6565b51906040519163ecbbc03360e01b83526004830152868260248183875af180156103b85785610390916001948a91610396575b5061030f86868060a01b0361030884613ab9565b511661412f565b61032286868060a01b0361030884613ac6565b61035a82610330868c613ad6565b51878060a01b0361034085613ab9565b5116888060a01b0361035186613ac6565b5116918b614271565b610364848a613ad6565b5190858060a01b0361037582613ac6565b511690610387878060a01b0391613ab9565b51169188614271565b016102ae565b6103b291503d808c833e6103aa81836136ed565b810190613dd8565b5f6102f4565b6040513d89823e3d90fd5b8580f35b6103e391503d8088833e6103db81836136ed565b810190613c5d565b5f6102a4565b6040513d87823e3d90fd5b8135815260209182019101610257565b8680fd5b8380fd5b8280fd5b50346101495761041f36613823565b5f5160206183775f395f51905f523b1561040c57604051632631f2b160e11b8152600183116004820152839081816024815f5160206183775f395f51905f525afa8015610c52576113a6575b50501561139f576001905b60205460215460405163549387df60e11b8152600481018690525f5160206183975f395f51905f5260248201526001600160a01b0391821660448201529391859185916064918391165afa928315610c7e57849361137b575b50600281101561136757836001821493845f14610e23576104ef90613ac6565b5183105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257610e0a575b508060405160208101906370a0823160e01b8252306024820152602481526105626044826136ed565b51905f5160206183975f395f51905f525afa5061058f6105806158da565b60208082518301019101613a9d565b50601180546001600160a01b0319165f5160206183975f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e48160016105fd9301600e556138a1565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549061061c615c0c565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061066e81610660888886615bf5565b03601f1981018352826136ed565b519020895260205260ff600360408a2001541615610de8575b6001600160a01b0384165f908152600d602052604090209088526020526106606106c06040892093604051928391602083019586615bf5565b519020865260205284604081209160018301549260028101546106e38186613aac565b610cc6578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206183775f395f51905f525afa968715610aa0578697610c8d575b506001908201610100031b5f1901811b1986165f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206183775f395f51905f525af1908115610c7e578491610c69575b50506107b8615dc5565b9015908115610c5d575b50610b7157505050506107d36168fa565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f196024820152929083604481885f5160206183975f395f51905f525af19283156103e957602493610b42575b505b6022546040516370a0823160e01b81523060048201529360209185919082906001600160a01b03165afa9283156103e9578593610b0e575b506040516370a0823160e01b8152306004820152926020846024815f5160206183975f395f51905f525afa938415610aa0578694610ada575b506040516278744560e21b81526020816004815f5160206183975f395f51905f525afa80156103b857610aab575b50602054602154604051638307c65560e01b8152600481018990525f5160206183975f395f51905f5260248201526001600160a01b039182166044820152606481019590955260848501849052608091859160a49183918b91165af1928315610aa0578693610a6f575b506022546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa9081156103b8578791610a3d575b506040516370a0823160e01b8152306004820152956020876024815f5160206183975f395f51905f525afa968715610a325788976109fa575b5084516109ab578780f35b156109de576109d395926109c66109c695936109cc93613c50565b90614035565b5192613c50565b5f8080808080808780f35b936109c69391926109c66109f5976109cc93613c50565b6109d3565b9096506020813d602011610a2a575b81610a16602093836136ed565b81010312610a265751955f6109a0565b5f80fd5b3d9150610a09565b6040513d8a823e3d90fd5b90506020813d602011610a67575b81610a58602093836136ed565b81010312610a2657515f610967565b3d9150610a4b565b610a9291935060803d608011610a99575b610a8a81836136ed565b810190613d71565b915f61092c565b503d610a80565b6040513d88823e3d90fd5b6020813d602011610ad2575b81610ac4602093836136ed565b81010312610a2657516108c2565b3d9150610ab7565b9093506020813d602011610b06575b81610af6602093836136ed565b81010312610a265751925f610894565b3d9150610ae9565b9092506020813d602011610b3a575b81610b2a602093836136ed565b81010312610a265751915f61085b565b3d9150610b1d565b610b639060203d602011610b6a575b610b5b81836136ed565b810190613d59565b505f610821565b503d610b51565b82945054905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f5160206183775f395f51905f525af18015610c5257610c3d575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610c488280926136ed565b6101495780610bdc565b6040513d84823e3d90fd5b5f19141590505f6107c2565b81610c73916136ed565b61040c57825f6107ae565b6040513d86823e3d90fd5b8580fd5b955095506020853d602011610cbe575b81610caa602093836136ed565b81010312610a265793519489949081610734565b3d9150610c9d565b610cd1849186613aac565b610100036101008111610dd45760ff8111610dd45760405163348051d760e11b8152600190911b600482015281816024815f5160206183775f395f51905f525afa908115610c5257606a60209284610d8c93610dac9692610db0575b506040519485925f5160206183b75f395f51905f52828501525f5160206183575f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f1981018352826136ed565b60405162461bcd60e51b8152602060048201529182916024830190613750565b0390fd5b610dcd9192503d8084833e610dc581836136ed565b810190613a3b565b9086610d2d565b634e487b7160e01b82526011600452602482fd5b610df061603f565b50610687565b634e487b7160e01b85526041600452602485fd5b81610e14916136ed565b61040857835f610539565b5080fd5b610e2f90949394613ab9565b5184105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257611352575b508060405160208101906370a0823160e01b825230602482015260248152610ea26044826136ed565b51905f5160206183975f395f51905f525afa50610ec06105806158da565b50601180546001600160a01b0319165f5160206183975f395f51905f521790556370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e4816001610f159301600e556138a1565b905560018060a01b036011541692600f5460e01b60105490610f35615c0c565b6001600160a01b0387165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190610f7981610660888886615bf5565b519020895260205260ff600360408a2001541615611344575b6001600160a01b0387165f908152600d60205260409020908852602052610660610fcb6040892093604051928391602083019586615bf5565b51902086526020528460408120946001860154956002810154610fee8189613aac565b611210575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529890919060208a6044815f5160206183775f395f51905f525afa998a15610aa057869a6111d7575b506001908201610100031b5f1901811b198916915f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528381606481835f5160206183775f395f51905f525af1908115610c7e5784916111c2575b5050836110c8615dc5565b9190159182156111b7575b50506111655750505061111e9293506110ea6168fa565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201526024810183905293849081906044820190565b0381885f5160206183975f395f51905f525af19283156103e957602493611146575b50610823565b61115e9060203d602011610b6a57610b5b81836136ed565b505f611140565b8691839154905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610bbe565b14159050845f6110d3565b816111cc916136ed565b61040c57825f6110bd565b955098506020853d602011611208575b816111f4602093836136ed565b81010312610a265793519789949081611040565b3d91506111e7565b9091925061121e8188613aac565b6101000361010081116113305760ff81116113305760405163348051d760e11b8152600190911b6004820181905289826024815f5160206183775f395f51905f525afa801561132557606a6112d6916020948d9161130b575b506040519485915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018452836136ed565b8510156112e7575090879291610ff3565b60405162461bcd60e51b815260206004820152908190610dac906024830190613750565b61131f91503d808f833e610dc581836136ed565b5f611277565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61134c61603f565b50610f92565b8161135c916136ed565b61040857835f610e79565b634e487b7160e01b84526021600452602484fd5b6113989193503d8086833e61139081836136ed565b810190613ce0565b915f6104cf565b8190610476565b816113b0916136ed565b61040c57825f61046b565b503461014957806003193601126101495760206113d6613e62565b6040519015158152f35b50346101495780600319360112610149576019546113fd8161399e565b9161140b60405193846136ed565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061144d57604051806101b78782613842565b60016020819260405161146b81611464818961391d565b03826136ed565b815201920192019190611438565b503461014957806003193601126101495760205460405163ecbbc03360e01b81526004810183905282918290829060249082906001600160a01b03165afa908115610c525782916115ed575b506001600160a01b036114d782613ab9565b516021549116906001600160a01b03165f5160206183775f395f51905f523b156115e8576040516328a9b0fb60e11b81526001600160a01b0392831660048201529116602482015282816044815f5160206183775f395f51905f525afa9081156115dd5783916115c8575b506001600160a01b03916115569150613ac6565b51165f5160206183775f395f51905f523b156115c557604051906328a9b0fb60e11b825260048201525f5160206183975f395f51905f52602482015281816044815f5160206183775f395f51905f525afa8015610c52576115b45750f35b816115be916136ed565b6101495780f35b50fd5b816115d2916136ed565b6115c557815f611542565b6040513d85823e3d90fd5b505050fd5b61160191503d8084833e6103aa81836136ed565b5f6114c5565b503461014957602036600319011261014957600435601f54811015610e1f5761162f906138cd565b91909161165f576040516101b79061164b81611464818761391d565b604051918291602083526020830190613750565b634e487b7160e01b81526004819052602490fd5b5034610149578060031936011261014957601c546116908161399e565b9061169e60405192836136ed565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106116e157604051806101b78782613774565b6040516116ed816136b7565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106118605784600197946002979460209794611778945491818110611844575b818110611828575b81811061180c575b8181106117f0575b8181106117d4575b8181106117b8575b81811061179e575b1061178a575b5003826136ed565b838201528152019201920191906116cc565b6001600160e01b031916815286015f611770565b828a1b6001600160e01b0319168452928901928b0161176a565b604083901b6001600160e01b0319168452928901928b01611762565b606083901b6001600160e01b0319168452928901928b0161175a565b608083901b6001600160e01b0319168452928901928b01611752565b60a083901b6001600160e01b0319168452928901928b0161174a565b60c083901b6001600160e01b0319168452928901928b01611742565b60e083901b6001600160e01b0319168452928901928b0161173a565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611715565b50346101495780600319360112610149576101608160405161192183826136ed565b600a81526020810192601f1901368437815b600a8110611a7e575060205460215460405163155adc9160e31b8152600481018590525f5160206183975f395f51905f5260248201526001600160a01b0391821660448201526080606482015292516084840181905292948593919092169160a4840191855b818110611a62575050508290039082905afa908115610c52578291611a40575b50815b600981106119c8578280f35b6119d28183613ad6565b516001820190818311611a2c576020611a1883611a0a611a03611a26956119fc600199988b613ad6565b5190613efd565b890b613f3b565b611a2083611a18878a613ad6565b510151613f96565b86613ad6565b016119bc565b634e487b7160e01b85526011600452602485fd5b611a5c91503d8084833e611a5481836136ed565b810190613b12565b5f6119b9565b8251845288965087955060209384019390920191600101611999565b9092915060018101808211611a2c57806103e802906103e882048103611ad857683635c9adc5dea000000290808204670de0b6b3a76400001490151715611a2c5790600191611acd8286613ad6565b520191839192611933565b634e487b7160e01b86526011600452602486fd5b5034610149578060031936011261014957601a54611b098161399e565b91611b1760405193846136ed565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611b5957604051806101b78782613842565b600160208192604051611b7081611464818961391d565b815201920192019190611b44565b503461014957611b8d36613823565b5f5160206183775f395f51905f523b1561040c57604051632631f2b160e11b8152600183116004820152839081816024815f5160206183775f395f51905f525afa8015610c525761272f575b505015612728576001905b60205460215460405163549387df60e11b8152600481018690526001600160a01b0391821660248201525f5160206183975f395f51905f5260448201529291859184916064918391165afa918215610c7e57849261270c575b50600283101561136757836001841492835f146122a857611c5d90613ac6565b5182105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257612293575b5050611d0f60018060a01b0360225416858060405160208101906370a0823160e01b825230602482015260248152611ce06044826136ed565b5190845afa50611cf16105806158da565b5060018060a01b03166001600160601b0360a01b6011541617601155565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610df65790611d476105e483600188969501600e556138a1565b905560018060a01b0360115416600f5460e01b60105490611d66615c0c565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190611daa81610660888886615bf5565b519020885260205260ff60036040892001541615612285575b6001600160a01b0384165f908152600d60205260409020908752602052610660611dfc6040882093604051928391602083019586615bf5565b519020855260205260408420906001820154916002810154611e1e8185613aac565b61227a578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f5160206183775f395f51905f525afa95861561226f578996612236575b506001908201610100031b5f1901811b1985165f5160206183775f395f51905f523b15612232576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528681606481835f5160206183775f395f51905f525af19081156103b857879161221d575b5050611ef3615dc5565b9015908115612211575b506121bd57505050611f0d6168fa565b6022546020805460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015295919286926044928492165af19283156103e95760249361219e575b505b6022546040516370a0823160e01b81523060048201529360209185919082906001600160a01b03165afa9283156103e957859361216a575b506040516370a0823160e01b81523060048201526020816024815f5160206183975f395f51905f525afa908115610aa0578691612138575b50602054602154604051638307c65560e01b8152600481018990526001600160a01b0391821660248201525f5160206183975f395f51905f526044820152606481019790975260848701849052608091879160a49183918b91165af1928315610aa0576024958794612117575b506022546040516370a0823160e01b81523060048201529660209188919082906001600160a01b03165afa9586156103b85787966120e3575b506040516370a0823160e01b8152306004820152906020826024815f5160206183975f395f51905f525afa918215610a325788926120af575084516109ab578780f35b9091506020813d6020116120db575b816120cb602093836136ed565b81010312610a265751905f6109a0565b3d91506120be565b9095506020813d60201161210f575b816120ff602093836136ed565b81010312610a265751945f61206c565b3d91506120f2565b61213191945060803d608011610a9957610a8a81836136ed565b925f612033565b90506020813d602011612162575b81612153602093836136ed565b81010312610a2657515f611fc6565b3d9150612146565b9092506020813d602011612196575b81612186602093836136ed565b81010312610a265751915f611f8e565b3d9150612179565b6121b69060203d602011610b6a57610b5b81836136ed565b505f611f54565b92509250935054905f5160206183775f395f51905f523b1561040c576040516370ca10bb60e01b81526001600160a01b03909116600482015260248101919091526044810192909252818060648101610bbe565b5f19141590505f611efd565b81612227916136ed565b610c8957855f611ee9565b8880fd5b985094506020883d602011612267575b81612253602093836136ed565b81010312610a265796518997909481611e6f565b3d9150612246565b6040513d8b823e3d90fd5b610cd1879185613aac565b61228d61603f565b50611dc3565b8161229d916136ed565b61040857835f611ca7565b6122b59094939294613ab9565b5184105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c52576126f7575b505061233860018060a01b0360225416858060405160208101906370a0823160e01b825230602482015260248152611ce06044826136ed565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610df6576105e481600161236d9301600e556138a1565b905560018060a01b036011541692600f5460e01b6010549061238d615c0c565b6001600160a01b0387165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906123d181610660888886615bf5565b519020895260205260ff600360408a20015416156126e9575b6001600160a01b0387165f908152600d602052604090209088526020526106606124236040892093604051928391602083019586615bf5565b519020865260205284604081209460018601549560028101546124468189613aac565b612613575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529890919060208a6044815f5160206183775f395f51905f525afa998a15610aa057869a6125da575b506001908201610100031b5f1901811b198916915f5160206183775f395f51905f523b15610c89576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528381606481835f5160206183775f395f51905f525af1908115610c7e5784916125c5575b505083612520615dc5565b9190159182156125ba575b5050611165575050506125829293506125426168fa565b6022546020805460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905295919286929116908290899082906044820190565b03925af19283156103e95760249361259b575b50611f56565b6125b39060203d602011610b6a57610b5b81836136ed565b505f612595565b14159050845f61252b565b816125cf916136ed565b61040c57825f612515565b955098506020853d60201161260b575b816125f7602093836136ed565b81010312610a265793519789949081612498565b3d91506125ea565b909192506126218188613aac565b6101000361010081116113305760ff81116113305760405163348051d760e11b8152600190911b6004820181905289826024815f5160206183775f395f51905f525afa801561132557606a6126d8916020948d9161130b57506040519485915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f1981018452836136ed565b8510156112e757509087929161244b565b6126f161603f565b506123ea565b81612701916136ed565b61040857835f6122ff565b6127219192503d8086833e61139081836136ed565b905f611c3d565b8190611be4565b81612739916136ed565b61040c57825f611bd9565b5034610149578060031936011261014957601b546127618161399e565b9061276f60405192836136ed565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106127b257604051806101b78782613774565b6040516127be816136b7565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106128535784600197946002979460209794612841945491818110611844578181106118285781811061180c578181106117f0578181106117d4578181106117b85781811061179e571061178a575003826136ed565b8382015281520192019201919061279d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916127e6565b503461014957806003193601126101495760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612951576101b7856101ab818703826136ed565b82546001600160a01b031684526020909301926001928301920161293a565b503461014957806003193601126101495760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106129cf576101b7856101ab818703826136ed565b82546001600160a01b03168452602090930192600192830192016129b8565b503461014957806003193601126101495760205460215460405163549387df60e11b8152600481018490526001600160a01b03918216602482018190525f5160206183975f395f51905f526044830152929091169183908183606481875afa928315610c52578293612b2d575b50612a668351613fe5565b60405163549387df60e11b81528260048201528260248201525f5160206183975f395f51905f5260448201528281606481885afa80156115dd57612b15575b50612ab08351613fe5565b60646040518095819363549387df60e11b83528560048401525f5160206183975f395f51905f52602484015260448301525afa9182156115dd57612afa92612afd575b5051613fe5565b80f35b612b10903d8086833e61139081836136ed565b612af3565b612b28903d8085833e61139081836136ed565b612aa5565b612b429193503d8084833e61139081836136ed565b915f612a5b565b50346101495760403660031901126101495760043560243560018060a01b03602054169060018060a01b0360215416908460405163549387df60e11b81528160048201528360248201525f5160206183975f395f51905f5260448201528181606481885afa908115610c52578291612e27575b50612bc681613ab9565b5186105f5160206183775f395f51905f523b1561040c5760405190632631f2b160e11b8252600482015282816024815f5160206183775f395f51905f525afa9081156115dd578391612e12575b50505f5160206183775f395f51905f523b15610e1f57604051632631f2b160e11b815260018711600482015282816024815f5160206183775f395f51905f525afa9081156115dd578391612dfd575b5050612c6d90613ab9565b5182105f5160206183775f395f51905f523b15610e1f5760405190632631f2b160e11b8252600482015281816024815f5160206183775f395f51905f525afa8015610c5257612de8575b50505f5160206183775f395f51905f523b15612de457604051632631f2b160e11b815260018211600482015285816024815f5160206183775f395f51905f525afa8015610aa057612dcf575b5091849391612d58959360405193612d1c6060866136ed565b600285526040366020870137612d3185613ab9565b52612d3b84613ac6565b5260405180968194829363155adc9160e31b845260048401613b96565b03915afa918215612dc2578192612da6575b50805b8251811015612da25780612d8d612d8660019386613ad6565b5151613f96565b612d9c6020611a188387613ad6565b01612d6d565b5080f35b612dbb9192503d8084833e611a5481836136ed565b905f612d6a565b50604051903d90823e3d90fd5b612dda8680926136ed565b612de4575f612d03565b8480fd5b81612df2916136ed565b612de457845f612cb7565b81612e07916136ed565b610e1f57815f612c62565b81612e1c916136ed565b610e1f57815f612c13565b612e3b91503d8084833e61139081836136ed565b5f612bbc565b5034610149578060031936011261014957601d54612e5e8161399e565b612e6b60405191826136ed565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612f6f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310612ed75786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110612f4457505050505060208060019297019301930190928695949293612eca565b9091929394602080612f62600193605f198782030189528951613750565b9701950193929101612f20565b604051612f7b816136b7565b82546001600160a01b03168152600183018054612f978161399e565b91612fa560405193846136ed565b8183528a526020808b20908b9084015b838210612fdb575050505060019282602092836002950152815201920192019190612e9b565b600160208192604051612ff281611464818a61391d565b815201930191019091612fb5565b503461014957806003193601126101495760405161016061302181836136ed565b600a8252601f190136602083013781805b600a81106130e4575060205460215460405163155adc9160e31b81529384926001600160a01b03908116928492839261306f921660048401613b96565b03915afa908115610c525782916130ca575b50815b60098110613090578280f35b61309a8183613ad6565b516001820190818311611a2c576020611a1883611a0a611a036130c4956119fc600199988b613ad6565b01613084565b6130de91503d8084833e611a5481836136ed565b5f613081565b90506001810180821161313a57806103e802906103e882048103611a2c57683635c9adc5dea000000290808204670de0b6b3a7640000149015171561313a57906001916131318285613ad6565b52018290613032565b634e487b7160e01b84526011600452602484fd5b503461014957806003193601126101495760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106131ad576101b7856101ab818703826136ed565b82546001600160a01b0316845260209093019260019283019201613196565b5034610a26575f366003190112610a26576020546021546040516348bd7dfd60e01b81525f60048201819052602482018190526001600160a01b0392831660448301529092909183916064918391165afa90811561328c575f91613297575b50515f5160206183775f395f51905f523b15610a26576040519063260a5b1560e21b82526004820152600460248201525f816044815f5160206183775f395f51905f525afa801561328c5761327e575080f35b61328a91505f906136ed565b005b6040513d5f823e3d90fd5b6132ab91503d805f833e6103db81836136ed565b5f61322b565b34610a26575f366003190112610a26576040516101606132d181836136ed565b600a82526020820190601f19013682375f5b600a81106133fd575060205460405163155adc9160e31b81525f60048201819052602482018190525f5160206183975f395f51905f5260448301526080606483015293516084820181905290936001600160a01b0390921692849260a4840192905b8181106133e457505050918180845f955003915afa90811561328c575f916133ca575b505f5b6009811061337557005b61337f8183613ad6565b519060018101918282116133b6576020611a1884611a0a6133a96133b0956119fc6001998b613ad6565b5f0b613f3b565b0161336b565b634e487b7160e01b5f52601160045260245ffd5b6133de91503d805f833e611a5481836136ed565b81613368565b8251845286945060209384019390920191600101613345565b60018101908181116133b657816103e802916103e8830481036133b657683635c9adc5dea000000291808304670de0b6b3a764000014901517156133b6576001916134488286613ad6565b52016132e3565b34610a26575f366003190112610a265760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206183775f395f51905f525afa90811561328c576134d7916020915f91613664575b50604051809381926371ee464d60e01b8352604060048401526044830190613750565b6301272172602483015203815f5f5160206183775f395f51905f525af1801561328c57613635575b506040516117ac808201908282106001600160401b03831117613621576040918391616bab833973bafa44efe7901e04e39dad13167d089c559c113881525f5160206183975f395f51905f5260208201520301905ff0801561328c57602080546001600160a01b0319166001600160a01b03929092169190911781556040516338d52e0f60e01b815290816004815f5160206183975f395f51905f525afa90811561328c575f916135df575b5060018060a01b0316806001600160601b0360a01b60225416176022556001600160601b0360a01b60215416176021555f80f35b90506020813d602011613619575b816135fa602093836136ed565b81010312610a2657516001600160a01b0381168103610a2657816135ab565b3d91506135ed565b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161365c575b8161364e602093836136ed565b81010312610a2657516134ff565b3d9150613641565b61367891503d805f833e610dc581836136ed565b836134b4565b34610a26576040366003190112610a26576136af60209161369e816136b7565b6004358152602435838201526139e6565b604051908152f35b604081019081106001600160401b0382111761362157604052565b606081019081106001600160401b0382111761362157604052565b90601f801991011681019081106001600160401b0382111761362157604052565b60206040818301928281528451809452019201905f5b8181106137315750505090565b82516001600160a01b0316845260209384019390920191600101613724565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106137a657505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106138005750505060208060019297019301930191939290613797565b82516001600160e01b0319168452602093840193909201916001909101906137e1565b6040906003190112610a2657600435906024358015158103610a265790565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061387457505050505090565b9091929394602080613892600193603f198682030187528951613750565b97019301930191939290613865565b600e548110156138b957600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156138b957601f5f5260205f2001905f90565b90600182811c92168015613913575b60208310146138ff57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916138f4565b5f929181549161392c836138e5565b8083529260018116908115613981575060011461394857505050565b5f9081526020812093945091925b838310613967575060209250010190565b600181602092949394548385870101520191019190613956565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116136215760051b60200190565b818102929181159184041417156133b657565b81156139d2570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a00000014901517156133b6576020613a1d920151906139c8565b90565b6001600160401b03811161362157601f01601f191660200190565b602081830312610a26578051906001600160401b038211610a26570181601f82011215610a2657805190613a6e82613a20565b92613a7c60405194856136ed565b82845260208383010111610a2657815f9260208093018386015e8301015290565b90816020910312610a26575190565b919082018092116133b657565b8051156138b95760200190565b8051600110156138b95760400190565b80518210156138b95760209160051b010190565b9190826040910312610a2657604051613b02816136b7565b6020808294805184520151910152565b602081830312610a26578051906001600160401b038211610a26570181601f82011215610a26578051613b448161399e565b92613b5260405194856136ed565b81845260208085019260061b84010192818411610a2657602001915b838310613b7c575050505090565b6020604091613b8b8486613aea565b815201920191613b6e565b60a060209160808101935f8252600180841b0316838201525f5160206183975f395f51905f526040820152608060608201528451809452019201905f5b818110613be05750505090565b8251845260209384019390920191600101613bd3565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b818110613c3a5750505090565b8251845260209384019390920191600101613c2d565b919082039182116133b657565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a2657815190613c918261399e565b92613c9f60405194856136ed565b82845260208085019360051b820101918211610a2657602001915b818310613cc75750505090565b8251600a811015610a2657815260209283019201613cba565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a26578151613d138161399e565b92613d2160405194856136ed565b81845260208085019260051b820101928311610a2657602001905b828210613d495750505090565b8151815260209182019101613d3c565b90816020910312610a2657518015158103610a265790565b90608082820312610a2657613da2906040805193613d8e856136d2565b805185526020810151602086015201613aea565b604082015290565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b602081830312610a26578051906001600160401b038211610a2657019080601f83011215610a2657815190613e0c8261399e565b92613e1a60405194856136ed565b82845260208085019360051b820101918211610a2657602001915b818310613e425750505090565b82516001600160a01b0381168103610a2657815260209283019201613e35565b60085460ff168015613e715790565b50604051630667f9d760e41b81525f5160206183775f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206183775f395f51905f525afa90811561328c575f91613ecb575b50151590565b90506020813d602011613ef5575b81613ee6602093836136ed565b81010312610a2657515f613ec5565b3d9150613ed9565b613f1d906020613f12825182860151906139b5565b9351910151906139b5565b90808203613f2b5750505f90565b1115613f3657600190565b5f1990565b5f5160206183775f395f51905f523b15610a26576040519063fe74f05b60e01b825260048201525f60248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f613f94916136ed565b565b5f5160206183775f395f51905f523b15610a265760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f5160206183775f395f51905f523b15610a26576040519063260a5b1560e21b82526004820152600260248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b905f5160206183775f395f51905f523b15610a26576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206183775f395f51905f525afa801561328c57613f8a5750565b5f5b81518110156140cd576140998183613ad6565b51600a8110156140b9576005146140b257600101614086565b5050600190565b634e487b7160e01b5f52602160045260245ffd5b50505f90565b5f5b81518110156140cd576140e88183613ad6565b51600a8110156140b9576009146140b2576001016140d5565b5f5b81518110156140cd576141168183613ad6565b51600a8110156140b9576008146140b257600101614103565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526141676064846136ed565b82516001600160a01b038316915f91829182855af1906141856158da565b826141e5575b50816141da575b501561419d57505050565b6141d5613f94936040519063095ea7b360e01b602083015260248201525f6044820152604481526141cf6064826136ed565b82615909565b615909565b90503b15155f614192565b805191925081159182156141fd575b5050905f61418b565b6142109250602080918301019101613d59565b5f806141f4565b604051906142266060836136ed565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af1801561328c576142da915f916158c0575b50613ab9565b5161010052606060a0819052604051614336916142f790826136ed565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b6040820152610100516159cc565b60a051505f806143be6143ec60405161435160a051826136ed565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613750565b6001600160a01b038a811660448401528716606483015261010051608483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af1801561328c57614459915f916158a6575b506140d3565b906040519161446960a0846136ed565b60048352608036602085013715615899575f5b61448583613ab9565b526103e8610100510461449783613ac6565b528151600210156138b95760a05182016101005160011c90528151600310156138b95761010051608083015260405163155adc9160e31b8152935f85806144e486868b8a60048601613bf6565b0381836001600160a01b0386165af194851561328c575f9561587d575b5061451461450e86613ab9565b516139e6565b85515f198101919082116133b65761453261450e61458c9389613ad6565b60a051604051929061454490846136ed565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152615a33565b61459861450e86613ab9565b85515f1981019081116133b65761463361464c5f936145bb61450e86958c613ad6565b60a0516040519291906145ce90846136ed565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190613750565b916044840152606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa5060a0516040516146b29161467590826136ed565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152615a68565b6147046146be86613ab9565b5151604060e0819052805191906146d590836136ed565b601882527f4e6f6d696e61746f722073686f756c646e27742062652030000000000000000060208301526159cc565b614755602061471287613ab9565b51015160e0518051919061472690836136ed565b601a82527f44656e6f6d696e61746f722073686f756c646e2774206265203000000000000060208301526159cc565b61476161450e86613ab9565b9460e051506147a08660e0515161477a60e051826136ed565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152615aac565b60e051516147ad816136d2565b5f81525f602082015260e05151906147c4826136b7565b5f808352602083015260e051015283515f1981019081116133b6576147e99085613ad6565b5160058181020481036133b6575f8060e0515160208101906370a0823160e01b8252306024820152602481526148206044826136ed565b51908b5afa506148316105806158da565b50601180546001600160a01b0319166001600160a01b038a161790556370a0823163ffffffff19600f541617600f55600e54600160401b811015613621576105e48160016148829301600e556138a1565b90556011546001600160a01b031661014052600f546010549060e01b6148a6615c0c565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e0515160208101906148ef81610660888886615bf5565b5190205f5260205260ff600360e0515f200154161561586f575b610140516001600160a01b03165f908152600d60205260409020905f5260205261066061494760e0515f209360e05151928391602083019586615bf5565b5190205f5260205260e0515f2060018101549160028201546149698185613aac565b615759575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f5160206183775f395f51905f525afa958615615719575f96615725575b506001908201610100031b5f1901811b1985165f5160206183775f395f51905f523b15610a265760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f5160206183775f395f51905f525af1801561571957615704575b50614a45615dc5565b90159182156156f6575b5050615602575050614a5f6168fa565b60e05151634b88b8ad60e11b8152602081600481610120515f5160206183775f395f51905f525af18015614f5657610120516080526155cf575b5060015b8451811015615023575f80614b54614b7a614ab7856138cd565b50614ac2868b613ad6565b51614b66611464614b2e60e0515194614add60a051876136ed565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e051519283809261391d565b60e05151635821efa160e01b602082015260a05160248201529586946084860190613750565b84810360231901604486015290613750565b90606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa50614b9c61450e8284613ad6565b5f80614c11614c358c614baf878c613ad6565b5160e0515191614bc160e051846136ed565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190613750565b60448401929092526001600160a01b0316606483015203601f1981018352826136ed565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89614c79614c5c878c613ad6565b5160e05151638307c65560e01b8152958694859460048601613daa565b03816101205160018060a01b038a165af1908115614f56576101205191615005575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715614feb57614ce8614cf3916a084595161401484a000000614ce0878c613ad6565b5191026139c8565b9160e05101516139e6565b91614d378260e05151614d0860e051826136ed565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152615aac565b614d7a8160e05151614d4b60e051826136ed565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152615aac565b614dbd8360e05151614d8e60e051826136ed565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152615aac565b60c05115614f655760a05160e05151614ef194614e96939092614e2c929190614de690836136ed565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285615aef565b60a05160e051519190614e3f90836136ed565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283615a33565b60a05160e051519190614ea990836136ed565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289615a33565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f5160206183775f395f51905f525af1918215614f5657600192614f38575b5001614a9d565b614f4f9060203d8111610b6a57610b5b81836136ed565b505f614f31565b60e051513d61012051823e3d90fd5b614f8e90614f7f614fe694614f78614217565b908d615aef565b614f87614217565b908b615aef565b60e0515190614f9f60a051836136ed565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289615aef565b614ef1565b634e487b7160e01b61012051526011600452602461012051fd5b61501d915060803d8111610a9957610a8a81836136ed565b5f614c9b565b50509150919392506069610100510261010051810460691461010051151715614feb5760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015614f56576150a79161012051916155b2575b50614101565b156154555761510f8460e051516150c060a051826136ed565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152615aac565b60e0518051949061512090866136ed565b6001855260e051601f190136602087013761513a85613ab9565b5260e0515163155adc9160e31b815261012051818061515f8888878c60048601613bf6565b03816101205160018060a01b0388165af1908161543a575b506153ce576001615186615b24565b6308c379a014615340575b614f56576151a0608094613ab9565b51946151c360e0515196879586948594638307c65560e01b865260048601613daa565b61012051919003926001600160a01b03165af19081615323575b506152c15760016151ec615b24565b6308c379a01461523e575b614f56575b613f9460e0515161520f60e051826136ed565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152615a68565b615246615b3f565b80615252575b506151f7565b6101205160a05160e051519193506152bb92919061527090826136ed565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152615bb1565b5f61524c565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b61533b9060803d608011610a9957610a8a81836136ed565b6151dd565b615348615b3f565b80615354575b50615191565b6101205160a05160e051519193506153c892919061537290826136ed565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152615bb1565b5f61534e565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b615450903d8061012051833e611a5481836136ed565b615177565b60a05160e051516154b79186919061546d90826136ed565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152615aac565b60e051805194906154c890866136ed565b6001855260e051601f19013660208701376154e285613ab9565b5260e051519363155adc9160e31b85526101205185806155088488878c60048601613bf6565b03816101205160018060a01b0388165af1908115614f5657608095615531926155975750613ab9565b519461555460e0515196879586948594638307c65560e01b865260048601613daa565b61012051919003926001600160a01b03165af18015614f5657615578575b506151fc565b6155909060803d608011610a9957610a8a81836136ed565b505f615572565b6155ad903d8061012051833e611a5481836136ed565b6142d4565b6155c991503d8061012051833e6103db81836136ed565b5f6150a1565b6020813d6020116155fa575b816155e8602093836136ed565b81010312610a2657516080525f614a99565b3d91506155db565b545f5160206183775f395f51905f523b156156ef5760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f5160206183775f395f51905f525af18015614f56576156d4575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610120516156e1916136ed565b610120516156ef5780615672565b6101205180fd5b600502141590505f80614a4f565b5f61570e916136ed565b5f610120525f614a3c565b60e051513d5f823e3d90fd5b9095506020813d602011615751575b81615741602093836136ed565b81010312610a26575194816149bf565b3d9150615734565b6157638185613aac565b6101000361010081116133b65760ff81116133b65760e0515163348051d760e11b81526001821b60048201525f816024815f5160206183775f395f51905f525afa9182156157195761581f606a6020946001945f91615855575b5060e051519586915f5160206183b75f395f51905f52828401525f5160206183575f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f1981018552846136ed565b1b836005021015615830575061496e565b60e0515162461bcd60e51b815260206004820152908190610dac906024830190613750565b61586991503d805f833e610dc581836136ed565b5f6157bd565b61587761603f565b50614909565b6158929195503d805f833e611a5481836136ed565b935f614501565b612710610100510461447c565b6158ba91503d805f833e6103db81836136ed565b5f614453565b6158d491503d805f833e61139081836136ed565b5f6142d4565b3d15615904573d906158eb82613a20565b916158f960405193846136ed565b82523d5f602084013e565b606090565b8151615934926001600160a01b03909216915f91829160200182855af161592e6158da565b91615f84565b80519081615940575050565b602080615951938301019101613d59565b1561595857565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b613a1d9392606092825260208201528160408201520190613750565b5f5160206183775f395f51905f523b15610a2657615a14915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613750565b03815f5160206183775f395f51905f525afa801561328c57613f8a5750565b905f5160206183775f395f51905f523b15610a26575f91615a146040519485938493636cd1e26960e11b8552600485016159b0565b5f610660615a95829360405192839163104c13eb60e21b6020840152602060248401526044830190613750565b6020815191016a636f6e736f6c652e6c6f675afa50565b615adb615a955f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613750565b90604483015203601f1981018352826136ed565b905f5160206183775f395f51905f523b15610a26575f91615a146040519485938493630389490b60e61b8552600485016159b0565b5f9060033d11615b3057565b905060045f803e5f5160e01c90565b5f60443d10613a1d576040513d600319016004823e8051913d60248401116001600160401b03841117615bab57828201928351916001600160401b038311615ba3573d84016003190185840160200111615ba35750613a1d929101602001906136ed565b949350505050565b92915050565b615be3615a955f93926106608594604051948593634b5c427760e01b6020860152604060248601526064850190613750565b83810360231901604485015290613750565b60209291908391805192839101825e019081520190565b615c176014546138e5565b615cd4576040519081826020600e549283815201600e5f5260205f20925f5b818110615cbb575050615c4b925003836136ed565b81518060051b90808204602014901517156133b657615c6981613a20565b90615c7760405192836136ed565b808252615c86601f1991613a20565b013660208301375f5b8351811015615cb65780615ca560019286613ad6565b5160208260051b8501015201615c8f565b509150565b8454835260019485019487945060209093019201615c36565b604051613a1d8161146481601461391d565b6007810190615cf582546138e5565b615db157600191500190604051808360208295549384815201905f5260205f20925f5b818110615d98575050615d2d925003836136ed565b81518060051b90808204602014901517156133b657615d4b81613a20565b90615d5960405192836136ed565b808252615d68601f1991613a20565b013660208301375f5b8351811015615cb65780615d8760019286613ad6565b5160208260051b8501015201615d71565b8454835260019485019487945060209093019201615d18565b50613a1d611464916040519283809261391d565b5f806020600f5460e01b615e136024615dde600d615ce6565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f1981018452836136ed565b6011549151916001600160a01b03165afa90615e2d6158da565b601054909290600581901b906001600160fb1b038116036133b6575f938051602081115f14615eb857506020905b5f925b828410615e6d57505050509190565b90919295615e7b8783613aac565b83518110156138b957830160200151600388901b91906001600160f81b031916881560088a85041417156133b6576001921c179601929190615e5e565b90615e5b565b905f806020600285015460e01b615ed96024615dde88615ce6565b60048601549151916001600160a01b03165afa6003615ef66158da565b930154600581901b906001600160fb1b038116036133b6575f938051602081115f14615f7e57506020905b5f925b828410615f3357505050509190565b90919295615f418783613aac565b83518110156138b957830160200151600388901b91906001600160f81b031916881560088a85041417156133b6576001921c179601929190615f24565b90615f21565b90615fa85750805115615f9957805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615fd9575b615fb9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615fb1565b9080601f83011215610a26578151615ff98161399e565b9261600760405194856136ed565b81845260208085019260051b820101928311610a2657602001905b82821061602f5750505090565b8151815260209182019101616022565b601154600f546010546001600160a01b03909216915f9160e01b616063600d615ce6565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061609c81610660888886615bf5565b5190205f5260205260ff600360405f200154166168b9575f5160206183775f395f51905f523b15610a265760405163266cf10960e01b81525f81600481835f5160206183775f395f51905f525af1801561328c576168a4575b50616100600d615ebe565b90506040516365bc948160e01b81528660048201528581602481835f5160206183775f395f51905f525af1908115610aa0578691616840575b5080516161aa57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015616838578160206161c5836161f695613ad6565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206183775f395f51905f525afa928315610a32578893616805575b5082156167ad575b6162288282613ad6565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206183775f395f51905f525afa9081156167a2578b91616771575b50616283600d615ebe565b91909382155f1461676a575f19905b5f5160206183775f395f51905f523b15616751576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206183775f395f51905f525af180156166d657908d91616755575b5050616303600d615ebe565b601154909491506001600160a01b03165f5160206183775f395f51905f523b15616751576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206183775f395f51905f525af1801561674657908c9161672d575b505082616722575b505015616718578793889360ff6013541661659d575b6001868601610100031b5f1901851b16841c810361658f57509061641d917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896106606163f28d604051928391602083019586615bf5565b5190206163ff8686613ad6565b51906040519283528a602084015260408301526060820152a1613ad6565b51906040519060808201928284106001600160401b038511176136215760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a52602052604089206040516020810190616486816106608d8d86615bf5565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d602052604084208185526020526040842060405160208101906164e181610660888886615bf5565b519020855260205260ff60036040862001541615616532576040948452600d602052848420908452602052610660616526858520938651928391602083019586615bf5565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016161ac565b94506165e893506165ae8383613ad6565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206183775f395f51905f525afa948515611325578a956166e5575b5061661486600d616a0e565b95909661662281600d616ae7565b60115490939192906001600160a01b03165f5160206183775f395f51905f523b156166e1576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206183775f395f51905f525af180156166d657908d916166bd575b5050876166b5575b509495616397575093509150600190616597565b96505f6166a1565b816166c7916136ed565b6166d2578b5f616699565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616710575b81616700602093836136ed565b81010312610a265751935f616608565b3d91506166f3565b9150600190616597565b141590505f80616381565b81616737916136ed565b616742578a5f616379565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b8161675f916136ed565b6166d2578b5f6162f7565b8c90616292565b90506020813d821161679a575b8161678b602093836136ed565b81010312610a2657515f616278565b3d915061677e565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56167fd6167db8484613ad6565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a161621e565b9092506020813d8211616830575b81616820602093836136ed565b81010312610a265751915f616216565b3d9150616813565b5050506164b4565b90503d8087833e61685181836136ed565b81016040828203126104045781516001600160401b0381116168a05781616879918401615fe2565b916020810151906001600160401b03821161223257616899929101615fe2565b505f616139565b8780fd5b6168b19194505f906136ed565b5f925f6160f5565b91939092505f52600d60205260405f20905f526020526106606168eb60405f2093604051928391602083019586615bf5565b5190205f5260205260405f2090565b6001600160601b0360a01b6011541660115563ffffffff19600f5416600f55600e545f600e55806169cc575b505f60105560ff19601354166013556169406014546138e5565b806169485750565b601f811160011461695a57505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b8181106169c157505060145f525f602081208160145555565b5f81556001016169a8565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110616a035750616926565b5f81556001016169f6565b91905f5b6101008110616a2557505090505f905f90565b8060ff0360ff81116133b6576004850154600190911b906001600160a01b03165f5160206183775f395f51905f523b15610a26576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206183775f395f51905f525af1801561328c57616ad7575b50616ab184615ebe565b81616acd575b50616ac457600101616a12565b92505060019190565b905015155f616ab7565b5f616ae1916136ed565b5f616aa7565b91905f5b6101008110616afe57505090505f905f90565b60048401546001821b906001600160a01b03165f5160206183775f395f51905f523b15610a26576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206183775f395f51905f525af1801561328c57616b9a575b50616b7d84615ebe565b81616b90575b50616ac457600101616aeb565b905015155f616b83565b5f616ba4916136ed565b5f616b7356fe60e03461011657601f6117ac38819003918201601f19168301916001600160401b0383118484101761011a578084926040948552833981010312610116576100468161012e565b906001600160a01b039061005c9060200161012e565b1660c052735e8422345238f34275888049021821e8e08caa1f6080526001600160a01b031660a052604051611669908161014382396080518181816107c301528181610a1501528181610e200152610ff1015260a051818181609b015281816104c601528181610dbd0152610f91015260c0518181816104890152818161083f01528181610a9f01528181610aea01528181610b2801528181610b6f01528181610d7901528181610ec40152818161103c01526111dd0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101165756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806323eeca011461045a57806348bd7dfd146103835780638307c65514610320578063a9270fbe146102c4578063aad6e488146101d85763ecbbc0330361000e57346101d45760203660031901126101d45760405161007f6060826105d9565b6002815260208101604036823760405163ba947f2760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9182156101ac576004926020925f916101b7575b506100eb86610613565b6001600160a01b039091169052604051630e2b46db60e11b815292839182905afa9081156101ac575f9161017d575b50610126839293610620565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b81811061015b575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014d565b61019f915060203d6020116101a5575b61019781836105d9565b8101906109e9565b5f61011a565b503d61018d565b6040513d5f823e3d90fd5b6101ce9150833d85116101a55761019781836105d9565b5f6100e1565b5f80fd5b346101d45760803660031901126101d4576101f1610543565b6101f9610559565b6064359067ffffffffffffffff82116101d457366023830112156101d457816004013592610226846105fb565b9261023460405194856105d9565b8484526024602085019560051b820101903682116101d457602401945b8186106102b45750506102649350610936565b6040518091602082016020835281518091526020604084019201905f5b81811061028f575050500390f35b8251805185526020908101518186015286955060409094019390920191600101610281565b8535815260209586019501610251565b346101d4576102dc6102d53661056f565b9150610778565b6040518091602082016020835281518091526020604084019201905f5b818110610307575050500390f35b82518452859450602093840193909201916001016102f9565b346101d45760a03660031901126101d457610339610543565b610341610559565b6064359160028310156101d45760809261035e9260843592610665565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d4576103913661056f565b5050506040516103a260a0826105d9565b6004815260208101608036823760016103ba83610613565b5260026103c683610620565b5281516002101561044657600360608301528151600310156104465760056080830152604051906020820192602083525180935260408201905f935b80851061040f5783830384f35b9091825190600a8210156104325760208160019382935201930194019390610402565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d45760403660031901126101d4576040516104796060826105d9565b60028152602081019060403683377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166104c382610613565b527f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff191661050082610620565b52604051918291602083019060208452518091526040830191905f5b81811061052a575050500390f35b825184528594506020938401939092019160010161051c565b602435906001600160a01b03821682036101d457565b604435906001600160a01b03821682036101d457565b60609060031901126101d457600435906024356001600160a01b03811681036101d457906044356001600160a01b03811681036101d45790565b6040810190811067ffffffffffffffff8211176105c557604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176105c557604052565b67ffffffffffffffff81116105c55760051b60200190565b8051156104465760200190565b8051600110156104465760400190565b80518210156104465760209160051b010190565b9190820391821161065157565b634e487b7160e01b5f52601160045260245ffd5b9093926040516060810181811067ffffffffffffffff8211176105c5576040525f81526106e360208201965f88525f60408401986040516106a5816105a9565b8281528260208201528a528499604051906106bf826105a9565b670de0b6b3a76400008252670de0b6b3a76400006020830152528185525284610a08565b61077157505a916002841015610432578161073394155f146107415761070891610ea2565b80865290811561073a576040519161071f836105a9565b8252602082015260408501525b5a90610644565b6020830152565b505061072c565b61074a91610b5a565b808652801561073a5760405191610760836105a9565b82526020820152604085015261072c565b9450505050565b604051916107876060846105d9565b600283526040366020850137825f61079e82610613565b525f6107a982610620565b526107b48284610a08565b61092f57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216808314908115610926575b50156108205750506001600160801b0361080a82610613565b526001600160801b0361081c82610620565b5290565b6001600160a01b0316146108315790565b6040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa9182156101ac575f926108f1575b50602060249160405192838092630a28a47760e01b82528660048301525afa9081156101ac575f916108bf575b506108b583610613565b5261081c82610620565b90506020813d6020116108e9575b816108da602093836105d9565b810103126101d457515f6108ab565b3d91506108cd565b9091506020813d60201161091e575b8161090d602093836105d9565b810103126101d4575190602061087e565b3d9150610900565b9050155f6107f1565b9250505090565b9092918051610944816105fb565b9061095260405192836105d9565b808252610961601f19916105fb565b015f5b8181106109c6575050610978819584610a08565b6109c057505f5b81518110156109bb578061099f61099860019385610630565b5185610fd9565b6109a98288610630565b526109b48187610630565b500161097f565b505050565b93505050565b6020906040516109d5816105a9565b5f81525f8382015282828601015201610964565b908160209103126101d457516001600160a01b03811681036101d45790565b6001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911681811415929083610b26575b83610b1c575b8315610ac8575b508215610a81575b8215610a6e575b5050610a69575f90565b600190565b6001600160a01b03161490505f80610a5f565b9150801580610a91575b91610a58565b506001600160a01b038281167f00000000000000000000000000000000000000000000000000000000000000009091161415610a8b565b9092506001600160a01b038316908114159081610ae8575b50915f610a50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610ae0565b8215159350610a49565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610a43565b6001600160a01b031691905f908315610d5e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690848203610caa57604051630a28a47760e01b81526004810182905294602086602481865afa908115610c9f578495968592610c63575b5091610be460209492610c1494309033906114cf565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af1918215610c575791610c28575090565b90506020813d602011610c4f575b81610c43602093836105d9565b810103126101d4575190565b3d9150610c36565b604051903d90823e3d90fd5b9391509193506020833d602011610c97575b81610c82602093836105d9565b810103126101d4579151849391610be4610bce565b3d9150610c75565b6040513d86823e3d90fd5b60405163b3d7f6b960e01b81526004810182905294602086602481865afa908115610c9f578495968592610d22575b5091610cf88285610c1495610cf3602098963033846114cf565b61137d565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b9391509193506020833d602011610d56575b81610d41602093836105d9565b810103126101d4579151849391610cf8610cd9565b3d9150610d34565b60405163b3d7f6b960e01b81526004810182905292935090917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081602481865afa9081156101ac575f91610e70575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101d4575f8291600460405180948193632de597e360e11b83525af180156101ac57610e4d575b508392602092610c1492610cf890837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661137d565b610cf8945092602092610e645f610c1494966105d9565b5f955092509290610e0f565b90506020813d602011610e9a575b81610e8b602093836105d9565b810103126101d457515f610dba565b3d9150610e7e565b6001600160a01b03168015610f705760209082610ec25f943033856114cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908282148514610f3857604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481015b03925af19081156101ac575f91610c28575090565b610f468183610f239561137d565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b50604051634dcd454760e01b815233600482015290602090829060249082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91610c28575090565b9190820180921161065157565b604051610fe5816105a9565b5f8082526020909101527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116908114908115611374575b50156111c7576040516278744560e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa80156101ac5782905f90611191575b6110889250610fcc565b916040519163ef8b30f760e01b83526004830152602082602481845afa9182156101ac575f9261115c575b50906020600492604051938480926318160ddd60e01b82525afa80156101ac575f90611128575b6110e49250610fcc565b90815f1904670de0b6b3a7640000118202158102156101d4576040519161110a836105a9565b670de0b6b3a764000002048152670de0b6b3a7640000602082015290565b506020823d602011611154575b81611142602093836105d9565b810103126101d4576110e491516110da565b3d9150611135565b91506020823d602011611189575b81611177602093836105d9565b810103126101d45790519060206110b3565b3d915061116a565b50506020813d6020116111bf575b816111ac602093836105d9565b810103126101d45781611088915161107e565b3d915061119f565b60405163266d6a8360e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082602481865afa9182156101ac575f92611340575b506040516278744560e21b815291602083600481875afa9283156101ac575f9361130a575b50611251602091600494610644565b93604051938480926318160ddd60e01b82525afa80156101ac575f906112d6575b61127c9250610644565b90816112ae575050670de0b6b3a76400005b6040519061129b826105a9565b8152670de0b6b3a7640000602082015290565b805f1904670de0b6b3a7640000118102158202156101d457670de0b6b3a7640000020461128e565b506020823d602011611302575b816112f0602093836105d9565b810103126101d45761127c9151611272565b3d91506112e3565b92506020833d602011611338575b81611325602093836105d9565b810103126101d457915191611251611242565b3d9150611318565b9091506020813d60201161136c575b8161135c602093836105d9565b810103126101d45751905f61121d565b3d915061134f565b9050155f611028565b604051636eb1769f60e11b81523060048201526001600160a01b03928316602482018190529392821692602082604481875afa80156101ac575f9061149b575b6113c79250610fcc565b915f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526113f76064876105d9565b85519082855af190611407611596565b82611469575b508161145e575b501561141f57505050565b61145761145c936040519063095ea7b360e01b602083015260248201525f6044820152604481526114516064826105d9565b8261152b565b61152b565b565b90503b15155f611414565b80519192508115918215611481575b5050905f61140d565b6114949250602080918301019101611513565b5f80611478565b506020823d6020116114c7575b816114b5602093836105d9565b810103126101d4576113c791516113bd565b3d91506114a8565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261145c916114576084836105d9565b908160209103126101d4575180151581036101d45790565b5f806115539260018060a01b03169360208151910182865af161154c611596565b90836115d5565b805190811515918261157b575b50506115695750565b635274afe760e01b5f5260045260245ffd5b61158e9250602080918301019101611513565b155f80611560565b3d156115d0573d9067ffffffffffffffff82116105c557604051916115c5601f8201601f1916602001846105d9565b82523d5f602084013e565b606090565b906115f957508051156115ea57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061162a575b61160a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561160256fea264697066735822122072a6acb1af5d7f7b4a48c2ff88e7f9fc18a79985403ac1f221926b9de12fd3ab64736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000ac3e018457b222d93114458476f3e3416abbe38f73746453746f726167652066696e642853746453746f72616765293a20506163a264697066735822122034a8d0016c99b5402a65e13e8306746de2b20dc25c42e37820743e443ad437cd64736f6c634300081b0033","sourceMap":"297:9163:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;297:9163:72;;;;;;;2421:18:5;297:9163:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;297:9163:72;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1126:10:65;;;;;;:::i;:::-;297:9163:72;;;1590:14:0;;;;1102:59:65;;297:9163:72;1102:59:65;;297:9163:72;;;;;;;;;;;1102:59:65;;;;;;;;;;;;1075:134;1102:59;;;;;297:9163:72;1075:134:65;;:::i;:::-;1074:135;1224:13;;1259:3;297:9163:72;;1239:18:65;;;;;1322:10;;;;:::i;:::-;297:9163:72;;;;1590:14:0;;;;1304:29:65;;297:9163:72;1304:29:65;;297:9163:72;1304:29:65;;297:9163:72;1304:29:65;;;;;;;;;;1708:14;1304:29;1442:1;1304:29;;;;;1259:3;297:9163:72;1396:17:65;297:9163:72;;;;;;1354:9:65;;;:::i;:::-;297:9163:72;;1396:17:65;:::i;:::-;1477;297:9163:72;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;297:9163:72;;;;;;1566:9:65;;;:::i;:::-;297:9163:72;;;;;;;1577:9:65;;;:::i;:::-;297:9163:72;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;297:9163:72;;;;;;;1686:9:65;;;:::i;:::-;297:9163:72;;;1697:9:65;297:9163:72;;;;;1697:9:65;;:::i;:::-;297:9163:72;;1708:14:65;;;:::i;:::-;940:2:72;1224:13:65;;1304:29;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;1239:18:65;;297:9163:72;;1102:59:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;6415:30:72;;;;297:9163;;-1:-1:-1;;;6415:30:72;;6443:1;6425:19;;297:9163;6415:30;;297:9163;;;;;6415:30;297:9163;-1:-1:-1;;;;;;;;;;;6415:30:72;;;;;;;;297:9163;-1:-1:-1;;6473:38:72;;;6443:1;6473:38;;297:9163;940:2;6602:15;297:9163;;;-1:-1:-1;;;6560:58:72;;297:9163;6560:58;;297:9163;;;-1:-1:-1;;;;;;;;;;;6415:30:72;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;6560:58;;297:9163;;;6560:58;;;;;;;;;;;6473:38;297:9163;;;;;;;6633:21;6443:1;6633:21;;6629:433;;;6633:21;;;6698:9;;;:::i;:::-;297:9163;6680:27;;-1:-1:-1;;;;;;;;;;;6670:38:72;;;;297:9163;;1590:14:0;;;;6670:38:72;;297:9163;6670:38;;297:9163;6670:38;;6415:30;6670:38;-1:-1:-1;;;;;;;;;;;6670:38:72;;;;;;;;6629:433;297:9163;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;6755:4:72;6415:30;27501:38:3;;297:9163:72;6415:30;27501:38:3;;;297:9163:72;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;297:9163:72;;;;27568:30:3;;;;;;:::i;:::-;-1:-1:-1;6854:12:8;521:42:72;;-1:-1:-1;;;;;;521:42:72;-1:-1:-1;;;;;;;;;;;521:42:72;;;27524:10:3;297:9163:72;;7009:9:8;297:9163:72;;;7009:9:8;297:9163:72;7505:10:8;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;;;6443:1;297:9163;;;7505:10:8;297:9163:72;;:::i;:::-;6755:4;;;;297:9163;;;;;;;;;4822:17;;;297:9163;;;;;;;;;;1198:64;297:9163;;;;6854:12:8;297:9163:72;;7009:9:8;297:9163:72;;1590:14:0;15610:11:8;297:9163:72;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;15703:15:8;;297:9163:72;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;940:2:72;;15735:37:8;;;;;;:::i;:::-;297:9163:72;15725:48:8;;297:9163:72;;;;;15610:11:8;297:9163:72;;;15703:77:8;297:9163:72;;15702:78:8;15698:126;;6629:433:72;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;;;;;;15889:37:8;;297:9163:72;;;;;;15889:37:8;;;297:9163:72;15889:37:8;;;;;:::i;:::-;297:9163:72;15879:48:8;;297:9163:72;;;;;;;;15943:15:8;6443:1:72;15943:15:8;;297:9163:72;15961:16:8;297:9163:72;15961:16:8;;297:9163:72;15943:34:8;;;;:::i;:::-;15938:460;;297:9163:72;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;297:9163:72;;;16424:32:8;;297:9163:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6629:433:72;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;297:9163:72;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;297:9163:72;;;16587:43:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;-1:-1:-1;;297:9163:72;;;12656:92:8;12810:59;;;297:9163:72;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6629:433:72;16678:31:8;;;;:::i;:::-;16724:8;;297:9163:72;;;16724:29:8;;6629:433:72;16720:176:8;;;14785:4;;;;;;:::i;:::-;297:9163:72;940:2;;297:9163;;-1:-1:-1;;;6794:53:72;;-1:-1:-1;;;;;297:9163:72;;;;6794:53;;297:9163;-1:-1:-1;;6415:30:72;297:9163;;;;;;;;6794:53;-1:-1:-1;;;;;;;;;;;6794:53:72;;;;;;;6415:30;6794:53;;;6629:433;;;7104:7;769:50;297:9163;;-1:-1:-1;;;7104:32:72;;7130:4;297:9163;7104:32;;297:9163;;;;;;1590:14:0;297:9163:72;;-1:-1:-1;;;;;297:9163:72;7104:32;;;;;;;;;;;6629:433;-1:-1:-1;297:9163:72;;-1:-1:-1;;;7179:33:72;;7130:4;297:9163;7179:33;;297:9163;;;;6415:30;297:9163;-1:-1:-1;;;;;;;;;;;7179:33:72;;;;;;;;;;;6629:433;-1:-1:-1;297:9163:72;;-1:-1:-1;;;7223:40:72;;297:9163;;;;-1:-1:-1;;;;;;;;;;;7223:40:72;;;;;;;;6629:433;-1:-1:-1;297:9163:72;940:2;6602:15;297:9163;;;-1:-1:-1;;;7295:98:72;;297:9163;7295:98;;297:9163;;;-1:-1:-1;;;;;;;;;;;6415:30:72;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;;;;;6560:58;297:9163;;;;;;;;;;;;;;;;7295:98;;297:9163;;;;;7295:98;;;;;;;;;;;6629:433;-1:-1:-1;7104:7:72;769:50;297:9163;;-1:-1:-1;;;7435:32:72;;7130:4;297:9163;7435:32;;297:9163;;;;;;6415:30;;297:9163;;-1:-1:-1;;;;;297:9163:72;7435:32;;;;;;;;;;;6629:433;-1:-1:-1;297:9163:72;;-1:-1:-1;;;7509:33:72;;7130:4;297:9163;7509:33;;297:9163;;;;6415:30;297:9163;-1:-1:-1;;;;;;;;;;;7509:33:72;;;;;;;;;;;6629:433;297:9163;;;7553:725;;297:9163;;;7553:725;7603:21;;;7865:46;7711:44;;;7865:46;7711:44;;;;;:::i;:::-;;;:::i;:::-;297:9163;7865:46;;:::i;:::-;7553:725;;;;;;;297:9163;;;7599:669;8035:46;8191:44;8035:46;;;;8191:44;8035:46;;;;:::i;8191:44::-;7599:669;;7509:33;;;;297:9163;7509:33;;297:9163;7509:33;;;;;;1590:14:0;7509:33:72;;;:::i;:::-;;;1590:14:0;;;;;7509:33:72;;;;1590:14:0;-1:-1:-1;297:9163:72;;7509:33;;;-1:-1:-1;7509:33:72;;;297:9163;;1590:14:0;297:9163:72;;1590:14:0;;;;7435:32:72;;;297:9163;7435:32;;297:9163;7435:32;;;;;;1590:14:0;7435:32:72;;;:::i;:::-;;;1590:14:0;;;;;7435:32:72;;;;;;-1:-1:-1;7435:32:72;;7295:98;;;;;297:9163;7295:98;297:9163;7295:98;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;297:9163;;1590:14:0;297:9163:72;;1590:14:0;;;;7223:40:72;297:9163;7223:40;;297:9163;7223:40;;;;;;1590:14:0;7223:40:72;;;:::i;:::-;;;1590:14:0;;;;;7223:40:72;;;;;-1:-1:-1;7223:40:72;;7179:33;;;;297:9163;7179:33;;297:9163;7179:33;;;;;;1590:14:0;7179:33:72;;;:::i;:::-;;;1590:14:0;;;;;7179:33:72;;;;;;;-1:-1:-1;7179:33:72;;7104:32;;;;297:9163;7104:32;;297:9163;7104:32;;;;;;1590:14:0;7104:32:72;;;:::i;:::-;;;1590:14:0;;;;;7104:32:72;;;;;;;-1:-1:-1;7104:32:72;;6794:53;;;297:9163;6794:53;297:9163;6794:53;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;16720:176:8;297:9163:72;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;297:9163:72;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;297:9163:72;;;;16769:41:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;16769:41;;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;297:9163:72;;-1:-1:-1;;;16824:61:8;;297:9163:72;;16824:61:8;;12810:59;;6415:30:72;12810:59:8;;297:9163:72;12810:59:8;297:9163:72;;;12810:59:8;-1:-1:-1;;;6560:58:72;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;297:9163:72;;16769:41:8;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4822:17:72;16724:29:8;;16587:43;;;;;:::i;:::-;297:9163:72;;16587:43:8;;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;16587:43:8;297:9163:72;;;16424:32:8;;;;;297:9163:72;16424:32:8;;297:9163:72;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;697:10:72;16021:3:8;697:10:72;;;;297:9163;;;;;;;-1:-1:-1;;;16314:19:8;;6443:1:72;297:9163;;;;16314:19:8;;297:9163:72;16314:19:8;297:9163:72;6415:30;297:9163;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;297:9163:72;16314:19:8;;16170:185;16314:19;297:9163:72;16314:19:8;;;;15938:460;297:9163:72;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;297:9163:72;12810:59:8;;;-1:-1:-1;;;297:9163:72;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;297:9163:72;;;;;;;;16170:185:8;;940:2:72;;16170:185:8;;;;;;:::i;:::-;297:9163:72;;-1:-1:-1;;;12810:59:8;;297:9163:72;;12810:59:8;;297:9163:72;;;;6415:30;297:9163;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;297:9163:72;-1:-1:-1;;;523:5:65;;6854:12:8;297:9163:72;523:5:65;6415:30:72;297:9163;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;6415:30;297:9163;;6670:38;;;;;:::i;:::-;297:9163;;6670:38;;;;;297:9163;;;6629:433;6906:9;;;;;;:::i;:::-;297:9163;6888:27;;-1:-1:-1;;;;;;;;;;;6878:38:72;;;;297:9163;;1590:14:0;;;;6878:38:72;;297:9163;6878:38;;297:9163;6878:38;;6415:30;6878:38;-1:-1:-1;;;;;;;;;;;6878:38:72;;;;;;;;6629:433;297:9163;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;6963:4:72;6415:30;27501:38:3;;297:9163:72;6415:30;27501:38:3;;;297:9163:72;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;521:42:72;;-1:-1:-1;;;;;;521:42:72;-1:-1:-1;;;;;;;;;;;521:42:72;;;27524:10:3;297:9163:72;;7009:9:8;297:9163:72;;;7009:9:8;297:9163:72;7505:10:8;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;;;6443:1;297:9163;;;7505:10:8;297:9163:72;;:::i;:::-;;;1198:64;297:9163;;;;6854:12:8;297:9163:72;;;7009:9:8;297:9163:72;;1590:14:0;15610:11:8;297:9163:72;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;15703:15:8;;297:9163:72;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;297:9163:72;15725:48:8;;297:9163:72;;;;;15610:11:8;297:9163:72;;;15703:77:8;297:9163:72;;15702:78:8;15698:126;;6629:433:72;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;;;;;;15889:37:8;;297:9163:72;;;;;;15889:37:8;;;297:9163:72;15889:37:8;;;;;:::i;:::-;297:9163:72;15879:48:8;;297:9163:72;;;;;;;;15943:15:8;6443:1:72;15943:15:8;;297:9163:72;15961:16:8;297:9163:72;15961:16:8;;297:9163:72;15943:34:8;;;;:::i;:::-;15938:460;;6629:433:72;297:9163;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;297:9163:72;;;16424:32:8;;297:9163:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6629:433:72;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;297:9163:72;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;297:9163:72;;;16587:43:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;;;;;12656:92:8;;;;12810:59;;;297:9163:72;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6629:433:72;16678:31:8;;;;;:::i;:::-;16724:8;;;297:9163:72;;;16724:29:8;;6629:433:72;16720:176:8;;;;14785:4;;;7000:51:72;14785:4:8;;;;;:::i;:::-;297:9163:72;940:2;;297:9163;;-1:-1:-1;;;7000:51:72;;-1:-1:-1;;;;;297:9163:72;;;;7000:51;;297:9163;;;;;;;;;;;;;;;;;7000:51;;;;-1:-1:-1;;;;;;;;;;;7000:51:72;;;;;;;6415:30;7000:51;;;6629:433;;;;7000:51;;;297:9163;7000:51;297:9163;7000:51;;;;;;;:::i;:::-;;;;;16720:176:8;297:9163:72;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;297:9163:72;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;297:9163:72;;;;16769:41:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;297:9163:72;;16587:43:8;;;;16424:32;;;;;297:9163:72;16424:32:8;;297:9163:72;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;697:10:72;16021:3:8;697:10:72;;;;297:9163;;;;;;;-1:-1:-1;;;16314:19:8;;6443:1:72;297:9163;;;;16314:19:8;;297:9163:72;;;16314:19:8;297:9163:72;6415:30;297:9163;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;297:9163:72;16314:19:8;;;;;15938:460;297:9163:72;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;297:9163:72;12810:59:8;;;-1:-1:-1;;;297:9163:72;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;297:9163:72;;;;;;;;16170:185:8;;940:2:72;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;297:9163:72;;-1:-1:-1;;;12810:59:8;;297:9163:72;;12810:59:8;;297:9163:72;;;;;;6415:30;297:9163;;;;:::i;16314:19:8:-;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;297:9163:72;-1:-1:-1;;;523:5:65;;6854:12:8;297:9163:72;523:5:65;6415:30:72;297:9163;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;6878:38:72;;;;;:::i;:::-;297:9163;;6878:38;;;;297:9163;-1:-1:-1;;;297:9163:72;;6602:15;297:9163;;6415:30;297:9163;;6560:58;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;6473:38;;;;;6415:30;;;;;:::i;:::-;297:9163;;6415:30;;;;297:9163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;297:9163:72;940:2;;;:::i;:::-;297:9163;;;;;;;:::i;:::-;940:2;;;2273:18:5;297:9163:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8367:7;940:2;297:9163;;-1:-1:-1;;;8367:29:72;;297:9163;8367:29;;297:9163;;;;;;;;;8367:29;;297:9163;;-1:-1:-1;;;;;297:9163:72;8367:29;;;;;;;;;;;297:9163;-1:-1:-1;;;;;;8416:9:72;;;:::i;:::-;297:9163;8427:15;297:9163;;;;-1:-1:-1;;;;;297:9163:72;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;297:9163:72;;-1:-1:-1;;;3533:24:1;;-1:-1:-1;;;;;297:9163:72;;;;3533:24:1;;297:9163:72;;;521:42;;;297:9163;;;521:42;297:9163;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;;;;297:9163:72;-1:-1:-1;;;;;;297:9163:72;8462:9;;-1:-1:-1;8462:9:72;:::i;:::-;297:9163;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;297:9163:72;;1590:14:0;;;;3533:24:1;;297:9163:72;3533:24:1;;297:9163:72;-1:-1:-1;;;;;;;;;;;8367:29:72;521:42;;297:9163;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;297:9163:72;;3533:24:1;;;;;:::i;:::-;297:9163:72;;3533:24:1;297:9163:72;3533:24:1;297:9163:72;;3533:24:1;;;;;:::i;:::-;297:9163:72;;3533:24:1;;;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;3533:24:1;297:9163:72;;;;8367:29;;;;;;;;;;;;;:::i;:::-;;;;297:9163;;;;;;;-1:-1:-1;;297:9163:72;;;;;;534:59:65;297:9163:72;534:59:65;;;;;;;;:::i;:::-;297:9163:72;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;3190:18:5;297:9163:72;940:2;;;:::i;:::-;297:9163;;;;;;;:::i;:::-;940:2;;;3190:18:5;297:9163:72;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;1198:64;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;940:2;297:9163;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;1590:14:0;297:9163:72;1590:14:0;297:9163:72;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;940:2;;;;;;;-1:-1:-1;;940:2:72;297:9163;940:2;;3197:13;3212:19;940:2;3212:19;;;;-1:-1:-1;940:2:72;;3388:15;297:9163;;;-1:-1:-1;;;3350:63:72;;297:9163;3350:63;;297:9163;;;-1:-1:-1;;;;;;;;;;;697:10:72;;;297:9163;-1:-1:-1;;;;;297:9163:72;;;697:10;;;297:9163;697:10;;;;;297:9163;;697:10;;;297:9163;;;;;;;;;;;;;;;;;697:10;;;;;;-1:-1:-1;;;3350:63:72;;;;697:10;;3350:63;;;;;;;;;;;697:10;3429:13;;3444:23;697:10;3444:23;;;;297:9163;;;3469:3;3497:9;;;;:::i;:::-;;3277:1;940:2;;;;;;;;;3613:13;3524;3488:54;3497:41;3604:38;3524:13;;3277:1;3524:13;;;;:::i;:::-;;3497:41;;:::i;:::-;697:10;;3488:54;:::i;:::-;3556:34;3565:9;;;;;:::i;:::-;;:21;297:9163;3556:34;:::i;:::-;3613:13;;:::i;3604:38::-;940:2;3429:13;;940:2;-1:-1:-1;;;523:5:65;;;297:9163:72;523:5:65;;297:9163:72;523:5:65;3350:63:72;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;697:10;;;297:9163;;697:10;;-1:-1:-1;697:10:72;;-1:-1:-1;940:2:72;697:10;;;;297:9163;;;;3277:1;697:10;;;3233:3;940:2;;;;3277:1;940:2;;;;;;;523:5:65;3265:4:72;523:5:65;;3265:4:72;523:5:65;;;;;;;;;;;;3282:8:72;523:5:65;;;;;;;3252:38:72;3277:1;3252:38;;;;;:::i;:::-;940:2;;3197:13;;;;;;523:5:65;-1:-1:-1;;;523:5:65;;;297:9163:72;523:5:65;;297:9163:72;523:5:65;297:9163:72;;;;;;;;;;;;;2707:18:5;297:9163:72;940:2;;;:::i;:::-;297:9163;;;;;;;:::i;:::-;940:2;;;2707:18:5;297:9163:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;4476:30:72;;;;297:9163;;-1:-1:-1;;;4476:30:72;;4504:1;4486:19;;297:9163;4476:30;;297:9163;;;;;4476:30;297:9163;-1:-1:-1;;;;;;;;;;;4476:30:72;;;;;;;;297:9163;-1:-1:-1;;4534:38:72;;;4504:1;4534:38;;297:9163;940:2;4645:15;297:9163;;;-1:-1:-1;;;4621:58:72;;297:9163;4621:58;;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;4476:30;297:9163;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;;;;;;;4621:58;;297:9163;;;4621:58;;;;;;;;;;;4534:38;297:9163;;;;;;;4694:21;4504:1;4694:21;;4690:429;;;4694:21;;;4759:9;;;:::i;:::-;297:9163;4741:27;;-1:-1:-1;;;;;;;;;;;4731:38:72;;;;297:9163;;1590:14:0;;;;4731:38:72;;297:9163;4731:38;;297:9163;4731:38;;4476:30;4731:38;-1:-1:-1;;;;;;;;;;;4731:38:72;;;;;;;;4690:429;297:9163;;6854:22:8;1198:64:72;297:9163;;;;4797:7;769:50;297:9163;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;4815:4:72;4476:30;27501:38:3;;297:9163:72;4476:30;27501:38:3;;;297:9163:72;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;;1198:64:72;297:9163;;;;;-1:-1:-1;;;;;521:42:72;;6854:12:8;521:42:72;;;6854:12:8;521:42:72;;6854:22:8;27524:10:3;297:9163:72;;7009:9:8;297:9163:72;;;7009:9:8;297:9163:72;7505:10:8;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;;;;;4504:1;297:9163;;;;7505:10:8;297:9163:72;;:::i;:::-;;;1198:64;297:9163;;;;6854:12:8;297:9163:72;;7009:9:8;297:9163:72;;1590:14:0;15610:11:8;297:9163:72;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;15703:15:8;;297:9163:72;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;297:9163:72;15725:48:8;;297:9163:72;;;;;15610:11:8;297:9163:72;;;15703:77:8;297:9163:72;;15702:78:8;15698:126;;4690:429:72;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;;;;;;15889:37:8;;297:9163:72;;;;;;15889:37:8;;;297:9163:72;15889:37:8;;;;;:::i;:::-;297:9163:72;15879:48:8;;297:9163:72;;;;;;;15943:15:8;4504:1:72;15943:15:8;;297:9163:72;15961:16:8;297:9163:72;15961:16:8;;297:9163:72;15943:34:8;;;;:::i;:::-;15938:460;;297:9163:72;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;297:9163:72;;;16424:32:8;;297:9163:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4690:429:72;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;297:9163:72;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;297:9163:72;;;16587:43:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;-1:-1:-1;;297:9163:72;;;12656:92:8;12810:59;;;297:9163:72;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4690:429:72;16678:31:8;;;;:::i;:::-;16724:8;;297:9163:72;;;16724:29:8;;4690:429:72;16720:176:8;;;14785:4;;;;;:::i;:::-;4797:7:72;769:50;297:9163;940:2;;297:9163;;-1:-1:-1;;;4854:52:72;;-1:-1:-1;;;;;297:9163:72;;;;4854:52;;297:9163;-1:-1:-1;;4476:30:72;297:9163;;;;;;;;;;;;;4854:52;;;;;;;4476:30;4854:52;;;4690:429;;;5161:7;769:50;297:9163;;-1:-1:-1;;;5161:32:72;;5187:4;297:9163;5161:32;;297:9163;;;;;;1590:14:0;297:9163:72;;-1:-1:-1;;;;;297:9163:72;5161:32;;;;;;;;;;;4690:429;-1:-1:-1;297:9163:72;;-1:-1:-1;;;5236:33:72;;5187:4;297:9163;5236:33;;297:9163;;;4476:30;297:9163;-1:-1:-1;;;;;;;;;;;5236:33:72;;;;;;;;;;;4690:429;-1:-1:-1;297:9163:72;940:2;4645:15;297:9163;;;-1:-1:-1;;;5301:98:72;;297:9163;5301:98;;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;4476:30;297:9163;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;4621:58;297:9163;;;;;;;;;;;;;;;;5301:98;;297:9163;;;;;5301:98;;;;;;;4476:30;5301:98;;;;;4690:429;-1:-1:-1;5161:7:72;769:50;297:9163;;-1:-1:-1;;;5441:32:72;;5187:4;297:9163;5441:32;;297:9163;;;;;;1590:14:0;297:9163:72;;-1:-1:-1;;;;;297:9163:72;5441:32;;;;;;;;;;;4690:429;-1:-1:-1;297:9163:72;;-1:-1:-1;;;5515:33:72;;5187:4;297:9163;5515:33;;297:9163;;;;4476:30;297:9163;-1:-1:-1;;;;;;;;;;;5515:33:72;;;;;;;;;;;297:9163;;;5559:725;;297:9163;;;5515:33;;;;297:9163;5515:33;;297:9163;5515:33;;;;;;1590:14:0;5515:33:72;;;:::i;:::-;;;1590:14:0;;;;;5515:33:72;;;;;;;-1:-1:-1;5515:33:72;;5441:32;;;;297:9163;5441:32;;297:9163;5441:32;;;;;;1590:14:0;5441:32:72;;;:::i;:::-;;;1590:14:0;;;;;5441:32:72;;;;;;;-1:-1:-1;5441:32:72;;5301:98;;;;;297:9163;5301:98;297:9163;5301:98;;;;;;;:::i;:::-;;;;;5236:33;;;297:9163;5236:33;;297:9163;5236:33;;;;;;1590:14:0;5236:33:72;;;:::i;:::-;;;1590:14:0;;;;;5236:33:72;;;;;;-1:-1:-1;5236:33:72;;5161:32;;;;297:9163;5161:32;;297:9163;5161:32;;;;;;1590:14:0;5161:32:72;;;:::i;:::-;;;1590:14:0;;;;;5161:32:72;;;;;;;-1:-1:-1;5161:32:72;;4854:52;;;297:9163;4854:52;297:9163;4854:52;;;;;;;:::i;:::-;;;;;16720:176:8;297:9163:72;;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;297:9163:72;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;297:9163:72;;;;16769:41:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4822:17:72;16724:29:8;;16587:43;;;;;:::i;:::-;297:9163:72;;16587:43:8;;;;;297:9163:72;;;16424:32:8;;;;;297:9163:72;16424:32:8;;297:9163:72;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;15938:460:8;16028:34;;;;;:::i;15698:126::-;13208:33;;:::i;:::-;;15698:126;;4731:38:72;;;;;:::i;:::-;297:9163;;4731:38;;;;4690:429;4965:9;;;;;;;:::i;:::-;297:9163;4947:27;;-1:-1:-1;;;;;;;;;;;4937:38:72;;;;297:9163;;1590:14:0;;;;4937:38:72;;297:9163;4937:38;;297:9163;4937:38;;4476:30;4937:38;-1:-1:-1;;;;;;;;;;;4937:38:72;;;;;;;;4690:429;297:9163;;6854:22:8;1198:64:72;297:9163;;;;5003:7;769:50;297:9163;;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;5021:4:72;4476:30;27501:38:3;;297:9163:72;4476:30;27501:38:3;;;297:9163:72;27501:38:3;;:::i;6854:22:8:-;27524:10:3;297:9163:72;;7009:9:8;297:9163:72;;;7009:9:8;297:9163:72;7505:10:8;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;;;4504:1;297:9163;;;7505:10:8;297:9163:72;;:::i;:::-;;;1198:64;297:9163;;;;6854:12:8;297:9163:72;;;7009:9:8;297:9163:72;;1590:14:0;15610:11:8;297:9163:72;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;15703:15:8;;297:9163:72;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;297:9163:72;15725:48:8;;297:9163:72;;;;;15610:11:8;297:9163:72;;;15703:77:8;297:9163:72;;15702:78:8;15698:126;;4690:429:72;-1:-1:-1;;;;;297:9163:72;;;;;;27635:8:3;297:9163:72;;;;;;;;;;15889:37:8;;297:9163:72;;;;;;15889:37:8;;;297:9163:72;15889:37:8;;;;;:::i;:::-;297:9163:72;15879:48:8;;297:9163:72;;;;;;;;15943:15:8;4504:1:72;15943:15:8;;297:9163:72;15961:16:8;297:9163:72;15961:16:8;;297:9163:72;15943:34:8;;;;:::i;:::-;15938:460;;4690:429:72;297:9163;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;297:9163:72;;;16424:32:8;;297:9163:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4690:429:72;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;297:9163:72;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;297:9163:72;;;16587:43:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;;;;;12656:92:8;;;;12810:59;;;297:9163:72;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4690:429:72;16678:31:8;;;;;:::i;:::-;16724:8;;;297:9163:72;;;16724:29:8;;4690:429:72;16720:176:8;;;;14785:4;;;5058:50:72;14785:4:8;;;;;:::i;:::-;5003:7:72;769:50;297:9163;940:2;;297:9163;;-1:-1:-1;;;5058:50:72;;-1:-1:-1;;;;;297:9163:72;;;;5058:50;;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;5058:50;;;;;;;;;;4476:30;5058:50;;;4690:429;;;;5058:50;;;297:9163;5058:50;297:9163;5058:50;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;297:9163:72;;16587:43:8;;;;16424:32;;;;;297:9163:72;16424:32:8;;297:9163:72;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;697:10:72;16021:3:8;697:10:72;;;;297:9163;;;;;;;-1:-1:-1;;;16314:19:8;;4504:1:72;297:9163;;;;16314:19:8;;297:9163:72;;;16314:19:8;297:9163:72;4476:30;297:9163;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;297:9163:72;16314:19:8;;;;;297:9163:72;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;297:9163:72;12810:59:8;;;-1:-1:-1;;;297:9163:72;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;297:9163:72;;;;;;;;16170:185:8;;940:2:72;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;4937:38:72;;;;;:::i;:::-;297:9163;;4937:38;;;;4621:58;;;;;;;;;;;;;;:::i;:::-;;;;;4534:38;;;;;4476:30;;;;;:::i;:::-;297:9163;;4476:30;;;;297:9163;;;;;;;;;;;;;2883:26:5;297:9163:72;940:2;;;:::i;:::-;297:9163;;;;;;;:::i;:::-;940:2;;;2883:26:5;297:9163:72;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;1198:64;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;940:2;297:9163;;;;;;;;;;;;;;;;;;;;;;1590:14:0;297:9163:72;1590:14:0;297:9163:72;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;;;;;;1590:14:0;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3038:18:5;297:9163:72;;;;;;;3038:18:5;297:9163:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;297:9163:72;;;;;;;3331:16:5;297:9163:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8592:7;940:2;8622:15;297:9163;;;-1:-1:-1;;;8592:64:72;;297:9163;8592:64;;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;;;;;;;;;;8592:64;297:9163;;8592:64;;;;;;;;;;;297:9163;;8666:26;297:9163;;8666:26;:::i;:::-;297:9163;;1590:14:0;;;8703:60:72;;;297:9163;8703:60;;297:9163;;;;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;8703:60;;8592:64;8703:60;;;;;;;;;;297:9163;;8773:26;297:9163;;8773:26;:::i;:::-;8592:64;297:9163;;1590:14:0;;;;;;;8810:64:72;;;297:9163;8810:64;;297:9163;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;;;;;8810:64;;;;;;;8884:26;8810:64;;;297:9163;;;8884:26;:::i;:::-;297:9163;;8810:64;;;;;;;;;;;;:::i;:::-;;;8703:60;;;;;;;;;;;;:::i;:::-;;;8592:64;;;;;;;;;;;;;;:::i;:::-;;;;;297:9163;;;;;;;-1:-1:-1;;297:9163:72;;;;;;;;1198:64;297:9163;;;;;940:2;297:9163;;1198:64;297:9163;;;;1761:15;297:9163;;;;;;1590:14:0;;;1737:58:72;;;297:9163;1737:58;;297:9163;;;;;;-1:-1:-1;;;;;;;;;;;297:9163:72;;;;1737:58;;;;;;;;;;;;;;;;297:9163;1825:9;;;;:::i;:::-;297:9163;1815:19;;-1:-1:-1;;;;;;;;;;;1805:30:72;;;;297:9163;;1590:14:0;;;;1805:30:72;;297:9163;1805:30;;297:9163;1805:30;;297:9163;1805:30;-1:-1:-1;;;;;;;;;;;1805:30:72;;;;;;;;;;;297:9163;1845:22;;-1:-1:-1;;;;;;;;;;;1845:22:72;;;;297:9163;;-1:-1:-1;;;1845:22:72;;297:9163;1855:11;;297:9163;1845:22;;297:9163;1845:22;297:9163;;;-1:-1:-1;;;;;;;;;;;1845:22:72;;;;;;;;;;;297:9163;1897:9;;;;;:::i;:::-;297:9163;1887:19;;-1:-1:-1;;;;;;;;;;;1877:30:72;;;;297:9163;;1590:14:0;;;;1877:30:72;;297:9163;1877:30;;297:9163;1877:30;;297:9163;1877:30;-1:-1:-1;;;;;;;;;;;1877:30:72;;;;;;;;297:9163;1917:22;;-1:-1:-1;;;;;;;;;;;1917:22:72;;;;297:9163;;-1:-1:-1;;;1917:22:72;;297:9163;1927:11;;297:9163;1917:22;;297:9163;1917:22;297:9163;;;-1:-1:-1;;;;;;;;;;;1917:22:72;;;;;;;;297:9163;940:2;;;;;2103:63;940:2;;297:9163;;;;;;;:::i;:::-;1991:1;940:2;;;297:9163;;940:2;;;2003:20;;;:::i;:::-;940:2;2033:20;;;:::i;:::-;940:2;297:9163;;1590:14:0;;;;;;;;;2103:63:72;;297:9163;2103:63;;;:::i;:::-;;;;;;;;;;;;;;297:9163;2182:13;;2216:3;297:9163;;2197:17;;;;;2244:9;2235:32;2244:9;297:9163;2244:9;;;:::i;:::-;;297:9163;2235:32;:::i;:::-;2281:34;297:9163;2290:9;;;;:::i;2281:34::-;940:2;2182:13;;2197:17;;297:9163;;2103:63;;;;;;;;;;;;;;:::i;:::-;;;;;;297:9163;;;1590:14:0;;;;;;;;1917:22:72;;;;;;:::i;:::-;297:9163;;1917:22;;;297:9163;;;;1877:30;;;;;:::i;:::-;297:9163;;1877:30;;;;1845:22;;;;;:::i;:::-;297:9163;;1845:22;;;;1805:30;;;;;:::i;:::-;297:9163;;1805:30;;;;1737:58;;;;;;;;;;;;;:::i;:::-;;;;297:9163;;;;;;;;;;;;;3485:19:5;297:9163:72;940:2;;;:::i;:::-;297:9163;;;;;;:::i;:::-;940:2;;;3485:19:5;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1198:64;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;1198:64;297:9163;;;;940:2;297:9163;940:2;:::i;:::-;297:9163;;;;;;;:::i;:::-;940:2;;;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:2;297:9163;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;940:2;;;-1:-1:-1;;940:2:72;297:9163;940:2;;;;2590:13;;2605:19;940:2;2605:19;;;;-1:-1:-1;940:2:72;;2763:15;297:9163;;;-1:-1:-1;;;2743:63:72;;297:9163;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;2743:63;;297:9163;;2743:63;;;:::i;:::-;;;;;;;;;;;;;;2585:109;2822:13;;2837:23;697:10;2837:23;;;;297:9163;;;2862:3;2890:9;;;;:::i;:::-;;2670:1;940:2;;;;;;;;;3006:13;2917;2881:54;2890:41;2997:38;2917:13;;2670:1;2917:13;;;;:::i;2997:38::-;940:2;2822:13;;2743:63;;;;;;;;;;;;;:::i;:::-;;;;2626:3;940:2;;2670:1;940:2;;;;;;;523:5:65;2658:4:72;523:5:65;;2658:4:72;523:5:65;;;;;;;;;;;;2675:8:72;523:5:65;;;;;;;2645:38:72;2670:1;2645:38;;;;;:::i;:::-;940:2;;2590:13;;;;523:5:65;-1:-1:-1;;;523:5:65;;;297:9163:72;523:5:65;;297:9163:72;523:5:65;297:9163:72;;;;;;;;;;;;;;;;;;2563:16:5;297:9163:72;;;;;;;2563:16:5;297:9163:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;297:9163:72;;;;9018:7;940:2;9067:15;297:9163;;;-1:-1:-1;;;9018:65:72;;297:9163;;9018:65;;297:9163;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;9018:65;;297:9163;;;9018:65;;;;;;;297:9163;9018:65;;;297:9163;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;297:9163:72;;1590:14:0;;;;2349:24:1;;297:9163:72;2349:24:1;;297:9163:72;;;;;;;2349:24:1;297:9163:72;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;297:9163:72;;;2349:24:1;;;;297:9163:72;2349:24:1;;:::i;:::-;297:9163:72;2349:24:1;297:9163:72;;1590:14:0;297:9163:72;1590:14:0;;;;;9018:65:72;;;;;;297:9163;9018:65;;;;;;:::i;:::-;;;;297:9163;;;;;;-1:-1:-1;;297:9163:72;;;;;;;;;;;:::i;:::-;940:2;;;;;;;-1:-1:-1;;940:2:72;297:9163;940:2;;297:9163;3814:19;940:2;3814:19;;;;-1:-1:-1;940:2:72;;297:9163;;-1:-1:-1;;;3952:59:72;;297:9163;;3952:59;;297:9163;;;697:10;;;297:9163;;;-1:-1:-1;;;;;;;;;;;697:10:72;;;297:9163;697:10;;;;;297:9163;;697:10;;;297:9163;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;697:10;;;;;;;;;;;;;297:9163;697:10;3952:59;;;;;;;;;;297:9163;3952:59;;;697:10;4027:13;297:9163;4042:23;697:10;4042:23;;;;297:9163;4067:3;4095:9;;;;:::i;:::-;;940:2;3879:1;940:2;;;;;;;;;4211:13;4122;4086:54;4095:41;4202:38;4122:13;;3879:1;4122:13;;;:::i;4095:41::-;297:9163;697:10;4086:54;:::i;4202:38::-;940:2;4027:13;;940:2;297:9163;;;;523:5:65;;297:9163:72;523:5:65;;297:9163:72;523:5:65;3952:59:72;;;;;;297:9163;3952:59;;;;;;:::i;:::-;;;;697:10;;;297:9163;;697:10;;-1:-1:-1;940:2:72;697:10;;;;297:9163;;;;3879:1;697:10;;;3835:3;3879:1;940:2;;;;;;;;523:5:65;3867:4:72;523:5:65;;3867:4:72;523:5:65;;;;;;;;;;;;3884:8:72;523:5:65;;;;;;;3879:1:72;3854:38;;;;;:::i;:::-;940:2;;3799:13;;297:9163;;;;;;-1:-1:-1;;297:9163:72;;;;;;-1:-1:-1;;;1133:20:72;;1590:14:0;297:9163:72;1133:20;;1590:14:0;;;;;297:9163:72;-1:-1:-1;;;297:9163:72;;;1590:14:0;-1:-1:-1;297:9163:72;1133:20;297:9163;-1:-1:-1;;;;;;;;;;;1133:20:72;;;;;;;1590:14:0;1133:20:72;1590:14:0;1133:20:72;297:9163;1133:20;;;297:9163;;;;1590:14:0;;;;;;;1113:52:72;;297:9163;;1113:52;;1590:14:0;297:9163:72;1590:14:0;;;;:::i;:::-;1095:8:72;1590:14:0;;;297:9163:72;1113:52;;297:9163;-1:-1:-1;;;;;;;;;;;1113:52:72;;;;;;;;297:9163;;;;1198:64;;;;;;;;-1:-1:-1;;;;;1198:64:72;;;;;297:9163;1198:64;;;;;;618:42;297:9163;;-1:-1:-1;;;;;;;;;;;1590:14:0;521:42:72;;297:9163;1198:64;;;297:9163;1198:64;;;;;1590:14:0;521:42:72;;-1:-1:-1;;;;;;521:42:72;-1:-1:-1;;;;;297:9163:72;;;;521:42;;;;;;297:9163;;-1:-1:-1;;;1297:35:72;;297:9163;;;;-1:-1:-1;;;;;;;;;;;1297:35:72;;;;;;;297:9163;1297:35;;;297:9163;;1198:64;297:9163;;;;;521:42;-1:-1:-1;;;;;521:42:72;;1272:62;521:42;;;1272:62;521:42;-1:-1:-1;;;;;521:42:72;;1344:34;521:42;;;1344:34;521:42;297:9163;;;1297:35;;;1590:14:0;1297:35:72;;1590:14:0;1297:35:72;;;;;;1590:14:0;1297:35:72;;;:::i;:::-;;;769:50;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;1297:35;;;;;;-1:-1:-1;1297:35:72;;1198:64;297:9163;;;;;;;;1590:14:0;297:9163:72;;1113:52;1590:14:0;1113:52:72;;1590:14:0;1113:52:72;;;;;;1590:14:0;1113:52:72;;;:::i;:::-;;;1590:14:0;;;;;1113:52:72;;;;;-1:-1:-1;1113:52:72;;1133:20;;;;;;297:9163;1133:20;;;;;;:::i;:::-;;;;297:9163;;;;;;-1:-1:-1;;297:9163:72;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;:::o;:::-;;;940:2;;297:9163;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;-1:-1:-1;;297:9163:72;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1198:64;297:9163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7505:10:8;297:9163:72;;;;;;7505:10:8;-1:-1:-1;297:9163:72;;-1:-1:-1;297:9163:72;;;-1:-1:-1;297:9163:72;:::o;:::-;;;;;;;;;;;;;534:59:65;297:9163:72;;;;;;534:59:65;-1:-1:-1;297:9163:72;;-1:-1:-1;297:9163:72;;;-1:-1:-1;297:9163:72;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;297:9163:72;;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;;;;:::o;523:5:65:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;297:9163:72;;;523:5:65;;;;;;;;8534:180;297:9163:72;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;297:9163:72;8655:52:65;;:::i;:::-;8534:180;:::o;1590:14:0:-;-1:-1:-1;;;;;1590:14:0;;;;297:9163:72;;-1:-1:-1;;297:9163:72;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;297:9163:72;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;297:9163:72;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;940:2:72:-;;;;;;;;;;:::o;:::-;297:9163;;940:2;;;;;;:::o;:::-;297:9163;;1865:1;940:2;;;;;;;:::o;:::-;297:9163;;940:2;;;;;;;;;;;;:::o;697:10::-;;;;;;;;;;;297:9163;;;;:::i;:::-;697:10;;;1590:14:0;;;697:10:72;;;1590:14:0;697:10:72;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;697:10:72;;;;;;;;;;;;;;;;;;:::i;:::-;297:9163;;;;;;;:::i;:::-;697:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;297:9163;697:10;;;;;:::i;:::-;;;;;;;;;;297:9163;697:10;;;;;297:9163;;;;1198:64;297:9163;;;;;697:10;;;297:9163;-1:-1:-1;;;;;;;;;;;697:10:72;;;297:9163;697:10;;;;;297:9163;;;;;;;;697:10;297:9163;697:10;;;;;;;;;;:::o;:::-;;;297:9163;;697:10;;;;;297:9163;;;;697:10;;;;;297:9163;697:10;;;;;;;297:9163;;;1198:64;297:9163;;;;;697:10;;;297:9163;1198:64;297:9163;;;;;697:10;;;297:9163;697:10;;;;;297:9163;;;;;;;;697:10;;;;;;;;;;;;:::o;:::-;;;297:9163;;697:10;;;;;297:9163;;;;697:10;;;;;;;;;;;;;;:::o;297:9163::-;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;1590:14:0;;297:9163:72;;;;;1590:14:0;297:9163:72;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;1243:204:1;1302:7;297:9163:72;;;;;;;1325:14:1;:::o;1298:143::-;297:9163:72;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;297:9163:72;192:59:1;;;;;;297:9163:72;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;297:9163:72;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;426:547:59;688:35;426:547;637:17;619:35;297:9163:72;;637:17:59;;;297:9163:72;619:35:59;;:::i;:::-;297:9163:72;;706:17:59;;297:9163:72;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;297:9163:72;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;4822:17:72;957:9:59:o;2866:108:1:-;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;297:9163:72;;1590:14:0;;;;2943:24:1;;;;;297:9163:72;;;;;;;2943:24:1;;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;2866:108;:::o;2943:24::-;297:9163:72;2943:24:1;;;:::i;:::-;2866:108::o;13112:110::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;297:9163:72;;1590:14:0;;;;13191:24:1;;;;;297:9163:72;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;2270:::-;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;297:9163:72;;1590:14:0;;;;2349:24:1;;;;;297:9163:72;8690:1;297:9163;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;297:9163:72;;1590:14:0;;;;2349:24:1;;;;;297:9163:72;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;8720:323:65:-;297:9163:72;8906:3:65;297:9163:72;;8881:23:65;;;;;8929:15;;;;:::i;:::-;297:9163:72;;;;;;;;8929:29:65;8925:79;;940:2:72;;8866:13:65;;8925:79;8978:11;;940:2:72;8978:11:65;:::o;297:9163:72:-;;;;;;;;;;;;8881:23:65;;;297:9163:72;8720:323:65;:::o;:::-;297:9163:72;8906:3:65;297:9163:72;;8881:23:65;;;;;8929:15;;;;:::i;:::-;297:9163:72;;;;;;;2531:24:65;8929:29;8925:79;;940:2:72;;8866:13:65;;8720:323;297:9163:72;8906:3:65;297:9163:72;;8881:23:65;;;;;8929:15;;;;:::i;:::-;297:9163:72;;;;;;;6005:21:65;8929:29;8925:79;;940:2:72;;8866:13:65;;5926:434:58;297:9163:72;;6065:47:58;;;;1590:14:0;;;;6065:47:58;;1198:64:72;297:9163;;;;;6065:47:58;;;;;297:9163:72;4822:17;;297:9163;;;;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;297:9163:72;;;-1:-1:-1;;;;;297:9163:72;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;297:9163:72;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;297:9163:72;-1:-1:-1;6065:47:58;297:9163:72;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;297:9163:72;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;297:9163:72;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;297:9163:72;;;;;;;;;:::o;1911:4479:65:-;;;;;;297:9163:72;;-1:-1:-1;;;2117:44:65;;;;;297:9163:72;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;1911:4479:65;;;;;2117:44;297:9163:72;;;;;2117:44:65;;;;;297:9163:72;2117:44:65;-1:-1:-1;;;;;297:9163:72;;2117:44:65;;;;;;:47;:44;;;;;1911:4479;2117:47;;:::i;:::-;297:9163:72;;;-1:-1:-1;297:9163:72;1590:14:0;;;297:9163:72;;2174:61:65;;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;2174:61:65;;;:::i;:::-;1590:14:0;;297:9163:72;2117:44:65;297:9163:72;;44640:78:15;297:9163:72;;;1590:14:0;;297:9163:72;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;297:9163:72;44640:78:15;;;297:9163:72;;;;;;:::i;:::-;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;297:9163:72;;1222:159:15;;591:42;1222:159;;-1:-1:-1;297:9163:72;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;297:9163:72;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;2117:44:65;297:9163:72;;;;;2467:50:65;297:9163:72;;-1:-1:-1;;;;;297:9163:72;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;940:2:72;297:9163;;;;;;;:::i;:::-;2117:44:65;940:2:72;;;;1590:14:0;940:2:72;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;940:2:72;8433:4:65;523:5;;;8412:25;;;:::i;:::-;940:2:72;297:9163;;8468:1:65;940:2:72;;;;1590:14:0;;940:2:72;;523:5:65;;8420:1;523:5;940:2:72;;297:9163;;8487:1:65;940:2:72;;;;;;297:9163;940:2;;;297:9163;;-1:-1:-1;;;2822:49:65;;297:9163:72;2117:44:65;297:9163:72;;2822:49:65;940:2:72;2822:49:65;;;2117:44;2822:49;;;:::i;:::-;;297:9163:72;;-1:-1:-1;;;;;297:9163:72;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;297:9163:72;;-1:-1:-1;;697:10:72;;;4822:17;697:10;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;297:9163:72;;;1590:14:0;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;297:9163:72;;-1:-1:-1;;697:10:72;;;;;;;297:9163;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;1590:14:0;;297:9163:72;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;297:9163:72;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;940:2:72;;12247:66:15;;;;;;:::i;:::-;1222:159;297:9163:72;;1222:159:15;;591:42;1222:159;;-1:-1:-1;1590:14:0;;297:9163:72;;3251:53:65;;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;297:9163:72;;;1590:14:0;;;297:9163:72;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;297:9163:72;;;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;297:9163:72;;;;3514:49:65;297:9163:72;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;297:9163:72;;;3514:49:65;:::i;:::-;297:9163:72;;;;;;:::i;:::-;2117:44:65;297:9163:72;;2117:44:65;1590:14:0;297:9163:72;;;;;;;;;;:::i;:::-;2117:44:65;297:9163:72;;;1590:14:0;297:9163:72;;;;;;;;;-1:-1:-1;;697:10:72;;;;;;;3635:27:65;;;;:::i;:::-;297:9163:72;940:2;523:5:65;;;;;;;;2117:44;297:9163:72;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;297:9163:72;44640:78:15;27501:38:3;;;297:9163:72;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;521:42:72;;-1:-1:-1;;;;;;521:42:72;-1:-1:-1;;;;;297:9163:72;;521:42;;;27524:10:3;297:9163:72;;7009:9:8;297:9163:72;;;7009:9:8;297:9163:72;7505:10:8;297:9163:72;-1:-1:-1;;;297:9163:72;;;;;;;8420:1:65;297:9163:72;;;7505:10:8;297:9163:72;;:::i;:::-;;;6854:12:8;297:9163:72;-1:-1:-1;;;;;297:9163:72;;;7009:9:8;297:9163:72;15610:11:8;297:9163:72;;1590:14:0;;15653:34:8;;:::i;:::-;15703:15;;-1:-1:-1;;;;;297:9163:72;;;;;27635:8:3;297:9163:72;;;;;15703:15:8;;297:9163:72;;;;;;2117:44:65;297:9163:72;1590:14:0;297:9163:72;;;2117:44:65;297:9163:72;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;297:9163:72;15725:48:8;;2117:44:65;297:9163:72;1590:14:0;297:9163:72;;8487:1:65;297:9163:72;;2117:44:65;297:9163:72;15703:77:8;297:9163:72;;15702:78:8;15698:126;;8365:37:65;15857:15:8;;-1:-1:-1;;;;;297:9163:72;;;;;27635:8:3;297:9163:72;;;;;;2117:44:65;297:9163:72;1590:14:0;297:9163:72;15889:37:8;;297:9163:72;;2117:44:65;297:9163:72;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;297:9163:72;15879:48:8;;2117:44:65;297:9163:72;1590:14:0;297:9163:72;;;2117:44:65;297:9163:72;8420:1:65;15943:15:8;;297:9163:72;15961:16:8;8468:1:65;15961:16:8;;297:9163:72;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;297:9163:72;;;;;-1:-1:-1;;;16424:32:8;;;;-1:-1:-1;;;;;297:9163:72;2117:44:65;16424:32:8;;297:9163:72;;;;;;;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;297:9163:72;;;-1:-1:-1;;;16587:43:8;;;;-1:-1:-1;;;;;297:9163:72;2117:44:65;16587:43:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;940:2;523:5:65;;297:9163:72;;;12656:92:8;12810:59;;;297:9163:72;-1:-1:-1;297:9163:72;12810:59:8;297:9163:72;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;16678:31:8;;;:::i;:::-;16724:8;;297:9163:72;;;16724:29:8;;8365:37:65;16720:176:8;;;;14785:4;;;;:::i;:::-;297:9163:72;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;8365:37;-1:-1:-1;8420:1:65;3761:3;297:9163:72;;3741:18:65;;;;;1222:159:15;3878:14:65;297:9163:72;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;297:9163:72;;;;;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;297:9163:72;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;297:9163:72;;;;;;;:::i;:::-;;;;;;12952:65:15;940:2:72;;12952:65:15;;;;;;:::i;:::-;1222:159;297:9163:72;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;297:9163:72;12771:66:15;4051:10:65;;;;;:::i;:::-;297:9163:72;;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;297:9163:72;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;297:9163:72;;1222:159:15;;591:42;1222:159;;;4166:10:65;297:9163:72;4166:10:65;;4093:97;4166:10;;;;:::i;:::-;297:9163:72;;;;-1:-1:-1;;;4093:97:65;;297:9163:72;;;;;2117:44:65;4093:97;;;:::i;:::-;;2117:44;;;1198:64:72;297:9163;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;297:9163:72;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;297:9163:72;523:5:65;;4244:52;:::i;:::-;297:9163:72;;;4349:11:65;;4335:26;:::i;:::-;297:9163:72;4375:60:65;297:9163:72;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;4375:60:65;:::i;:::-;4449;297:9163:72;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;4449:60:65;:::i;:::-;4523:61;297:9163:72;;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;4523:61:65;:::i;:::-;4599:1176;;;;;1590:14:0;;297:9163:72;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;297:9163:72;-1:-1:-1;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;4637:164:65;;:::i;:::-;1590:14:0;;297:9163:72;;;;1590:14:0;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;297:9163:72;;;;1590:14:0;297:9163:72;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;5013:164:65;;:::i;:::-;297:9163:72;;;1590:14:0;;;;5789:25:65;;297:9163:72;;2117:44:65;5789:25;;297:9163:72;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;940:2:72;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;297:9163:72;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;297:9163:72;5216:173:65;5597:163;297:9163:72;;;:::i;:::-;5216:173:65;;;:::i;:::-;297:9163:72;;:::i;:::-;5407:172:65;;;:::i;:::-;297:9163:72;;;1590:14:0;297:9163:72;1590:14:0;;297:9163:72;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;297:9163:72;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;297:9163:72;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;297:9163:72;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;297:9163:72;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;2117:44:65;;297:9163:72;523:5:65;;;;;297:9163:72;2117:44:65;;297:9163:72;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;297:9163:72;;;;;1590:14:0;;297:9163:72;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;6590:122:65;:::i;:::-;297:9163:72;;;;;;;;;;:::i;:::-;8420:1:65;940:2:72;;297:9163;;-1:-1:-1;;940:2:72;;1590:14:0;940:2:72;;;6783:37:65;;;:::i;:::-;940:2:72;297:9163;;;-1:-1:-1;;;6835:57:65;;2117:44;;297:9163:72;;6835:57:65;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;1198:64:72;297:9163;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;297:9163:72;6831:346:65;7259:18;:::i;:::-;297:9163:72;;7190:97:65;297:9163:72;;;1590:14:0;;;;;;;;;;7190:97:65;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;297:9163:72;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;297:9163:72;;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;297:9163:72;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;297:9163:72;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;297:9163:72;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;297:9163:72;;44640:78:15;297:9163:72;;;;;;;;-1:-1:-1;;;297:9163:72;;;;;;7302:61:65;7190:97;;;297:9163:72;7190:97:65;297:9163:72;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;1590:14:0;;297:9163:72;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;297:9163:72;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;297:9163:72;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;297:9163:72;;44640:78:15;297:9163:72;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;1590:14:0;;297:9163:72;;;7738:117:65;;297:9163:72;;;;;;;:::i;:::-;;;;;1590:14:0;297:9163:72;;;-1:-1:-1;;;297:9163:72;;;;;7738:117:65;:::i;:::-;297:9163:72;;;;;;;;;;:::i;:::-;8420:1:65;940:2:72;;297:9163;;-1:-1:-1;;940:2:72;;1590:14:0;940:2:72;;;7926:37:65;;;:::i;:::-;940:2:72;297:9163;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;1198:64:72;297:9163;;;;;;7974:57:65;;;;;;;297:9163:72;;8110:18:65;;7974:57;;8110:18;;:::i;:::-;297:9163:72;;8041:97:65;297:9163:72;;;1590:14:0;;;;;;;;;;8041:97:65;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;297:9163:72;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;297:9163:72;8041:97:65;297:9163:72;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;297:9163:72;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;297:9163:72;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;16769:41:8;;-1:-1:-1;;;;;297:9163:72;2117:44:65;16769:41:8;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;297:9163:72;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;297:9163:72;44640:78:15;12810:59:8;;297:9163:72;12810:59:8;297:9163:72;;;12810:59:8;-1:-1:-1;;;297:9163:72;12810:59:8;;;297:9163:72;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;297:9163:72;;;;16769:41:8;;;297:9163:72;2117:44:65;;;297:9163:72;16724:29:8;940:2:72;523:5:65;16736:17:8;;;-1:-1:-1;16724:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;297:9163:72;;16587:43:8;;;;297:9163:72;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;697:10:72;16021:3:8;697:10:72;;;;297:9163;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;297:9163:72;;2117:44:65;16314:19:8;;297:9163:72;-1:-1:-1;297:9163:72;44640:78:15;297:9163:72;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;297:9163:72;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;297:9163:72;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;;;297:9163:72;;;2117:44:65;297:9163:72;;;;16170:185:8;;940:2:72;;16170:185:8;;;;;;:::i;:::-;297:9163:72;523:5:65;940:2:72;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;297:9163:72;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;297:9163:72;;;;;;44640:78:15;297:9163:72;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;:::-;;;;297:9163:72;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;297:9163:72;;;;:::o;:::-;;;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;297:9163:72;;;;2626:1:33;;;;3256:31;;2626:1;297:9163:72;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;297:9163:72;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;297:9163:72;;;6764:749:58:o;297:9163:72:-;;;-1:-1:-1;;;297:9163:72;;3256:31:33;297:9163:72;;;;;;;;;;;;;;-1:-1:-1;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;297:9163:72;;2117:44:65;297:9163:72;;;1590:14:0;;;;;;;;13326:29:1;;;;;297:9163:72;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;297:9163:72;13326:29:1;297:9163:72;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;297:9163:72;6669:42:15;6598:121;;297:9163:72;;6669:42:15;;;;;;;;;;;;;;297:9163:72;;;;;;:::i;6669:42:15:-;1222:159;297:9163:72;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;1590:14:0;7629:54:15;1222:159;7546:145;;;;297:9163:72;;7629:54:15;;;;;;;;;;297:9163:72;7629:54:15;;;1590:14:0;;;;;;:::i;:::-;;;;;297:9163:72;7629:54:15;940:2:72;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;297:9163:72;15694:29:1;297:9163:72;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;297:9163:72:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;297:9163:72;;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;-1:-1:-1;;297:9163:72;;;;;;;;;-1:-1:-1;297:9163:72;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;297:9163:72;7935:53:15;1222:159;7846:150;;297:9163:72;7846:150:15;;297:9163:72;;7935:53:15;;;;;;;;;;297:9163:72;7935:53:15;;;297:9163:72;;;;;;:::i;:::-;;;;-1:-1:-1;;297:9163:72;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;297:9163:72;1052:14:8;297:9163:72;;:::i;:::-;1052:14:8;;297:9163:72;;;;;;1109:10:8;297:9163:72;;;;;;1109:10:8;1077:1;297:9163:72;;1077:1:8;297:9163:72;;1077:1:8;297:9163:72;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;297:9163:72;523:5:65;;;;;;;297:9163:72;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;940:2;;297:9163;;:::i;:::-;;940:2;297:9163;;;940:2;1077:1:8;11360:3;297:9163:72;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;297:9163:72;;11456:84:8;523:5:65;11456:84:8;;;;;940:2:72;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;297:9163:72:-;;;;;1109:10:8;297:9163:72;;;;;;-1:-1:-1;297:9163:72;;;;;;;;1048:135:8;297:9163:72;;;;;;1052:14:8;297:9163:72;:::i;953:236:8:-;1052:14;;;297:9163:72;;;;;:::i;:::-;1052:21:8;;1109:10;;;;297:9163:72;;;;;;;;;;;;;;;1077:1:8;297:9163:72;;1077:1:8;297:9163:72;;1077:1:8;297:9163:72;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;297:9163:72;523:5:65;;;;;;;297:9163:72;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;940:2;;297:9163;;:::i;:::-;;940:2;297:9163;;;940:2;1077:1:8;11360:3;297:9163:72;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;297:9163:72;;11456:84:8;523:5:65;11456:84:8;;;;;940:2:72;11331:13:8;;297:9163:72;;;;;1109:10:8;297:9163:72;;;;;;-1:-1:-1;297:9163:72;;;;;;;;1048:135:8;297:9163:72;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;297:9163:72;1364:48:8;1381:9;297:9163:72;1590:14:0;;1364:48:8;297:9163:72;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;297:9163:72;;1364:48:8;;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;940:2:72;;1364:48:8;;;;;;:::i;:::-;1458:12;297:9163:72;1458:29:8;;;-1:-1:-1;;;;;297:9163:72;1458:29:8;;;;;:::i;:::-;1540:11;297:9163:72;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;297:9163:72;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;297:9163:72;;;;;;;;;1364:48:8;297:9163:72;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;297:9163:72;523:5:65;;11142:1:8;523:5:65;;;;;;;;940:2:72;297:9163;;11097:47:8;11078:3;940:2:72;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;297:9163:72;1590:14:0;;1364:48:8;297:9163:72;1392:19:8;;;:::i;1364:48::-;297:9163:72;1458:12:8;;297:9163:72;1458:29:8;;;-1:-1:-1;;;;;297:9163:72;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;297:9163:72;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;297:9163:72;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;297:9163:72;;;;;;;;;1364:48:8;297:9163:72;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;297:9163:72;523:5:65;;11142:1:8;523:5:65;;;;;;;;940:2:72;297:9163;;11097:47:8;11078:3;940:2:72;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;297:9163:72;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;297:9163:72;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;297:9163:72;;;;4917:24:33;297:9163:72;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;643:59:8;;;;;;;;;;;;;;;:::i;:::-;297:9163:72;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;297:9163:72;4397:9:8;297:9163:72;4438:11:8;297:9163:72;-1:-1:-1;;;;;297:9163:72;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;297:9163:72;;;27635:8:3;297:9163:72;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;297:9163:72;4573:48:8;;297:9163:72;;;;;4438:11:8;297:9163:72;;;4551:77:8;297:9163:72;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;297:9163:72;;-1:-1:-1;;;4811:11:8;;297:9163:72;;4361:12:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;297:9163:72;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;297:9163:72;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;297:9163:72;;4951:12:8;;4984:74;297:9163:72;;12810:59:8;;;4984:74;;297:9163:72;4361:12:8;4984:74;;643:59;297:9163:72;4911:25:8;643:59;;297:9163:72;643:59:8;297:9163:72;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;297:9163:72;;5109:16:8;;;;;5178:8;297:9163:72;5178:8:8;;5165:22;5178:8;;:::i;:::-;297:9163:72;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;297:9163:72;;4361:12:8;5165:22;;297:9163:72;;;;;;;;;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;297:9163:72;4361:12:8;297:9163:72;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;297:9163:72;;;4361:12:8;1978:27;;297:9163:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;4822:17:72;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;297:9163:72;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;297:9163:72;;;;4361:12:8;2177:37;;297:9163:72;12810:59:8;;;297:9163:72;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;297:9163:72;;;;-1:-1:-1;;;;;;297:9163:72;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;297:9163:72;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;297:9163:72;;;;4361:12:8;2281:43;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;297:9163:72;;5520:25:8;297:9163:72;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;297:9163:72;;5998:29:8;;5994:84;;297:9163:72;;6319:8:8;297:9163:72;6101:89:8;643:59;297:9163:72;;6132:37:8;;297:9163:72;;;6132:37:8;;;297:9163:72;6132:37:8;;;;;:::i;:::-;297:9163:72;6122:48:8;;6180:8;;;;:::i;:::-;297:9163:72;;;;;;;643:59:8;297:9163:72;643:59:8;;297:9163:72;;643:59:8;;297:9163:72;643:59:8;;;297:9163:72;6101:89:8;6319:8;:::i;:::-;297:9163:72;;;;;643:59:8;297:9163:72;;;;;;-1:-1:-1;;;;;297:9163:72;;;;;4438:11:8;297:9163:72;;;940:2;;297:9163;6302:58:8;;940:2:72;;;297:9163;6302:58:8;;940:2:72;;;643:59:8;6302:58;;643:59;940:2:72;643:59:8;;297:9163:72;;;27635:8:3;297:9163:72;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;297:9163:72;6230:48:8;;297:9163:72;;;;;;;;;643:59:8;;297:9163:72;940:2;643:59:8;;;297:9163:72;4397:9:8;643:59;;;;;;297:9163:72;;;;;643:59:8;;;;;;;;5089:1309;297:9163:72;;;27635:8:3;297:9163:72;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;297:9163:72;6461:48:8;;297:9163:72;;;;;4438:11:8;297:9163:72;;;6439:77:8;297:9163:72;;643:59:8;;;297:9163:72;6664:15:8;297:9163:72;;27635:8:3;297:9163:72;;;;;;;;;;6696:37:8;;297:9163:72;;;;;;6696:37:8;;;297:9163:72;6696:37:8;;;;;:::i;:::-;297:9163:72;6686:48:8;;297:9163:72;;;;;4249:2493:8;:::o;643:59::-;297:9163:72;;-1:-1:-1;;;643:59:8;;297:9163:72;4361:12:8;643:59;;;;4911:25;643:59;;297:9163:72;643:59:8;297:9163:72;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;940:2:72;6051:8:8;5094:13;940:2:72;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;297:9163:72;4361:12:8;297:9163:72;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;297:9163:72;;;4361:12:8;3216:27;;297:9163:72;;;;;;;;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;297:9163:72;;;;;;-1:-1:-1;;;;;297:9163:72;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;297:9163:72;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;297:9163:72;;;;4361:12:8;3497:43;;297:9163:72;12810:59:8;;;297:9163:72;;;;12810:59:8;;;297:9163:72;;;;;;12810:59:8;297:9163:72;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;940:2:72;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;297:9163:72;;3497:43:8;;;;297:9163:72;;;;3497:43:8;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;3497:43:8;297:9163:72;;;3216:27:8;;;;297:9163:72;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;940:2:72;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;297:9163:72;;2281:43:8;;;;297:9163:72;;;;2281:43:8;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;2281:43:8;297:9163:72;;;2177:37:8;;;;;:::i;:::-;297:9163:72;;2177:37:8;;;;2102:65;;;;;1978:27;;;297:9163:72;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;297:9163:72;;1590:14:0;297:9163:72;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;297:9163:72;;;;-1:-1:-1;;;;;297:9163:72;;;;;;;;;;;;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;297:9163:72;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;5109:16;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;297:9163:72;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;297:9163:72;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;297:9163:72;;;4811:11:8;;;;;297:9163:72;4811:11:8;;:::i;:::-;297:9163:72;4811:11:8;;;;4547:255;4720:15;;;;;297:9163:72;;27635:8:3;297:9163:72;;;;;;;;;;4752:37:8;;297:9163:72;;;;;;4752:37:8;;;297:9163:72;4752:37:8;;;;;:::i;:::-;297:9163:72;4742:48:8;;297:9163:72;;;;;;;4713:78:8;:::o;11586:239::-;-1:-1:-1;;;;;521:42:72;;11652:12:8;297:9163:72;;11652:12:8;297:9163:72;;;11681:9:8;297:9163:72;;11681:9:8;297:9163:72;11707:10:8;297:9163:72;11645:19:8;11707:10;297:9163:72;;;;11586:239:8;297:9163:72;11645:19:8;11734:11;297:9163:72;;;11762:25:8;297:9163:72;;11762:25:8;297:9163:72;;11804:14:8;297:9163:72;;:::i;:::-;;;;11586:239:8;:::o;297:9163:72:-;;;;;;;;;11645:19:8;11804:14;297:9163:72;11586:239:8:o;297:9163:72:-;11804:14:8;11645:19;297:9163:72;;;;;;;;;;;;;;;;11804:14:8;11645:19;297:9163:72;11645:19:8;297:9163:72;;;;11804:14:8;297:9163:72;;2866:108:1:o;297:9163:72:-;;;;;;;;;11707:10:8;11645:19;297:9163:72;;;;;;;;;;;;;;;;11645:19:8;297:9163:72;;11707:10:8;297:9163:72;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;697:10:72;2771:3:8;697:10:72;2771:3:8;697:10:72;;;;2824:12:8;;;297:9163:72;940:2;297:9163;;;;-1:-1:-1;;;;;297:9163:72;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;297:9163:72;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;297:9163:72;;;;2824:12:8;2815:49;;297:9163:72;12810:59:8;;;297:9163:72;;;12810:59:8;;;297:9163:72;;;;-1:-1:-1;297:9163:72;12810:59:8;297:9163:72;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;940:2:72;;2678:18:8;;2941:90;2995:21;;;940:2:72;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;297:9163:72;940:2;297:9163;;;-1:-1:-1;;;;;297:9163:72;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;297:9163:72;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;297:9163:72;;;;2824:12:8;2815:49;;297:9163:72;12810:59:8;;;297:9163:72;;;12810:59:8;;;297:9163:72;;;;-1:-1:-1;297:9163:72;12810:59:8;297:9163:72;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;940:2:72;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesFraxEthV3()":"1a91bcf0","testGetLimitsFraxEthV3()":"34529dcb","testGetTokensFraxEthV3()":"a11c7998","testPriceFuzzFraxEthV3FraxEth(uint256,uint256)":"2b728826","testPriceKeepingSellEthFraxEthV3()":"10033ae4","testPriceKeepingSellFraxEthFraxEthV3()":"226212a2","testPriceKeepingSellSFraxEthFraxEthV3()":"8681f5b8","testSwapFuzzFraxEthV3WithSFraxEth(uint256,bool)":"bfdaf70f","testSwapFuzzsFraxEthV3WithFraxEth(uint256,bool)":"75c04aa7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetCapabilitiesFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzFraxEthV3FraxEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceKeepingSellEthFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceKeepingSellFraxEthFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceKeepingSellSFraxEthFraxEthV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzFraxEthV3WithSFraxEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzsFraxEthV3WithFraxEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"testPriceFuzzFraxEthV3FraxEth(uint256,uint256)\":{\"details\":\"set lower limit to greater than 1, because previewDeposit returns 0 with an amountIn == 1\"},\"testPriceKeepingSellFraxEthFraxEthV3()\":{\"details\":\"The price is kept among swaps if no FRAX rewards are distributed in the contract during time\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/FraxV3FrxEthAdapter.t.sol\":\"FraxV3FrxEthAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"src/sfraxeth/FraxV3FrxEthAdapter.sol\":{\"keccak256\":\"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55\",\"dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/FraxV3FrxEthAdapter.t.sol\":{\"keccak256\":\"0x122c4c378bf71f99277abf1e32225748471668889bdd39658b77de938955d08d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8935437a2af20abcda2b834bedd4b0d45b1a47f6b5fc0149ab1478a677f40555\",\"dweb:/ipfs/Qmbn5H8svT1ZrEGEPHQowNRavNNP9dLMxrfU3T5QJmBCTh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesFraxEthV3"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsFraxEthV3"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensFraxEthV3"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzFraxEthV3FraxEth"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceKeepingSellEthFraxEthV3"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceKeepingSellFraxEthFraxEthV3"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceKeepingSellSFraxEthFraxEthV3"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzFraxEthV3WithSFraxEth"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzsFraxEthV3WithFraxEth"}],"devdoc":{"kind":"dev","methods":{"testPriceFuzzFraxEthV3FraxEth(uint256,uint256)":{"details":"set lower limit to greater than 1, because previewDeposit returns 0 with an amountIn == 1"},"testPriceKeepingSellFraxEthFraxEthV3()":{"details":"The price is kept among swaps if no FRAX rewards are distributed in the contract during time"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/FraxV3FrxEthAdapter.t.sol":"FraxV3FrxEthAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"src/sfraxeth/FraxV3FrxEthAdapter.sol":{"keccak256":"0xdbd9ad99addc8ac7771da9ff88057aac4754af575b8a5f818db47da8f64ff0fa","urls":["bzz-raw://c10e743e259bdb1ac0b38e097bf9009d6b46b5d44e1874d500a7527b4103cc55","dweb:/ipfs/QmdKFhhygHbb8tN448AJAVYt6bdzr68pBKi5CotxEv4WNn"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/FraxV3FrxEthAdapter.t.sol":{"keccak256":"0x122c4c378bf71f99277abf1e32225748471668889bdd39658b77de938955d08d","urls":["bzz-raw://8935437a2af20abcda2b834bedd4b0d45b1a47f6b5fc0149ab1478a677f40555","dweb:/ipfs/Qmbn5H8svT1ZrEGEPHQowNRavNNP9dLMxrfU3T5QJmBCTh"],"license":"AGPL-3.0-or-later"}},"version":1},"id":72} \ No newline at end of file diff --git a/evm/out/FraxV3SFraxAdapter.sol/FixedPointMathLib.json b/evm/out/FraxV3SFraxAdapter.sol/FixedPointMathLib.json deleted file mode 100644 index 0b06b23..0000000 --- a/evm/out/FraxV3SFraxAdapter.sol/FixedPointMathLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212201b7b58b45ebb957b09959891e386e2677edb7f84e666526c56ea3ae164e9e47f64736f6c634300081b0033","sourceMap":"380:634:61:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212201b7b58b45ebb957b09959891e386e2677edb7f84e666526c56ea3ae164e9e47f64736f6c634300081b0033","sourceMap":"380:634:61:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfrax/FraxV3SFraxAdapter.sol\":\"FixedPointMathLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfrax/FraxV3SFraxAdapter.sol\":{\"keccak256\":\"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4\",\"dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfrax/FraxV3SFraxAdapter.sol":"FixedPointMathLib"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfrax/FraxV3SFraxAdapter.sol":{"keccak256":"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077","urls":["bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4","dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw"],"license":"AGPL-3.0-or-later"}},"version":1},"id":61} \ No newline at end of file diff --git a/evm/out/FraxV3SFraxAdapter.sol/FraxV3SFraxAdapter.json b/evm/out/FraxV3SFraxAdapter.sol/FraxV3SFraxAdapter.json deleted file mode 100644 index 9cdbce1..0000000 --- a/evm/out/FraxV3SFraxAdapter.sol/FraxV3SFraxAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_sFrax","type":"address","internalType":"address"},{"name":"_frax","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60c03461012457601f61183e38819003918201601f19168301916001600160401b0383118484101761012857808492604094855283398101031261012457610052602061004b8361013c565b920161013c565b6001600160a01b039182166080521660a0526040516116ed9081610151823960805181818160be015281816103cc015281816104000152818161053d01528181610671015281816106a5015281816107fe015281816108320152818161099201528181610bc601528181610c7901528181610e4701528181610f6901528181610f9d01528181611016015281816111f6015281816112d601526113bb015260a051818181608a015281816101cf0152818161045d0152818161074801528181610b7c01528181610d6e0152610da30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101245756fe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461096057806348bd7dfd146108785780638307c655146106d7578063a9270fbe14610442578063aad6e4881461013f5763ecbbc0331461005b575f80fd5b3461013b57602036600319011261013b5760405161007a606082610a8e565b60028152602081019060403683377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100bb82610ac8565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ef82610ad5565b52604051918291602083019060208452518091526040830191905f5b818110610119575050500390f35b82516001600160a01b031684528594506020938401939092019160010161010b565b5f80fd5b3461013b57608036600319011261013b57610158610a0c565b610160610a22565b6064359067ffffffffffffffff821161013b573660238301121561013b5781600401359161018d83610ab0565b9261019b6040519485610a8e565b8084526024602085019160051b8301019136831161013b57602401905b828210610432575050506001600160a01b038381167f00000000000000000000000000000000000000000000000000000000000000009091168181149291831591826103fe575b82156103aa575b508115610397575b5061033b5782519361021f85610ab0565b9461022d6040519687610a8e565b80865261023c601f1991610ab0565b015f5b8181106103185750509061025291610da1565b915f5b81518110156102c7578061026b60019284610ae5565b5161027586610ac8565b518111156102c1576102919061028a87610ac8565b5111610fcf565b6102a561029e8285610ae5565b5185611291565b6102af8288610ae5565b526102ba8187610ae5565b5001610255565b50610291565b846040518091602082016020835281518091526020604084019201905f5b8181106102f3575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102e5565b60209060405161032781610a72565b5f81525f8382015282828a0101520161023f565b60405163643c60f360e01b815260206004820152602d60248201527f546869732061646170746572206f6e6c7920737570706f72747320465241583c60448201526c2d3e534652415820737761707360981b6064820152608490fd5b6001600160a01b0383161490508561020e565b9091506001600160a01b0383169081141590816103ca575b509086610206565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866103c2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682141592506101ff565b81358152602091820191016101b8565b3461013b5761045036610a38565b6001600160a01b039182167f000000000000000000000000000000000000000000000000000000000000000090921682811493508315929190836106a3575b831561064f575b50821561063c575b505061033b57604051906104b3606083610a8e565b60028252602082019060403683371561052e576001600160801b036104d783610ac8565b526001600160801b036104e983610ad5565b52905b604051918291602083019060208452518091526040830191905f5b818110610515575050500390f35b8251845285945060209384019390920191600101610507565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f9161060a575b5061058784610ad5565b52602061059384610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f916105cd575b506105c683610ac8565b52906104ec565b90506020813d6020116105f7575b816105e860209383610a8e565b8101031261013b5751836105bc565b3d91506105db565b6040513d5f823e3d90fd5b90506020813d602011610634575b8161062560209383610a8e565b8101031261013b57518461057d565b3d9150610618565b6001600160a01b0316149050828061049e565b9092506001600160a01b03831690811415908161066f575b509184610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905084610667565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316831415935061048f565b3461013b5760a036600319011261013b576106f0610a0c565b6106f8610a22565b90606435600281101561013b57604051906060820182811067ffffffffffffffff821117610864576040525f82525f602083015260405161073881610a72565b5f808252602082015260408301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416818114159182610830575b82156107dc575b5081156107c9575b5061033b576080936107a49360843593610af9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b6001600160a01b0386161490508561078f565b9091506001600160a01b0386169081141590816107fc575b509086610787565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866107f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168214159250610780565b634e487b7160e01b5f52604160045260245ffd5b3461013b5761088636610a38565b50505060405161089760c082610a8e565b600581526020810160a036823760016108af83610ac8565b5260026108bb83610ad5565b5281516002101561094c576003606083015281516003101561094c576005608083015281516004101561094c57600860a0830152604051906020820192602083525180935260408201905f935b8085106109155783830384f35b9091825190600a8210156109385760208160019382935201930194019390610908565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461013b57604036600319011261013b5760408051906109808183610a8e565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166109cc84610ac8565b52815192839260208401916020855251809252830191905f5b8181106109f3575050500390f35b82518452859450602093840193909201916001016109e5565b602435906001600160a01b038216820361013b57565b604435906001600160a01b038216820361013b57565b606090600319011261013b57600435906024356001600160a01b038116810361013b57906044356001600160a01b038116810361013b5790565b6040810190811067ffffffffffffffff82111761086457604052565b90601f8019910116810190811067ffffffffffffffff82111761086457604052565b67ffffffffffffffff81116108645760051b60200190565b80511561094c5760200190565b80516001101561094c5760400190565b805182101561094c5760209160051b010190565b94939092918582158015610d60575b610d585750610b179084610da1565b9160028110928315610938578115918280610d46575b15610d0e5750610b3f610b4791610ac8565b518310610fcf565b5a92156109385715610cfd57610b5d90836111d9565b84525b5a8103908111610ce95760208401526001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911603610c565760405163ef8b30f760e01b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610c24575b505b60405190610c0d82610a72565b8152670de0b6b3a764000060208201526040830152565b90506020813d602011610c4e575b81610c3f60209383610a8e565b8101031261013b57515f610bfe565b3d9150610c32565b60405163266d6a8360e11b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610cb7575b50610c00565b90506020813d602011610ce1575b81610cd260209383610a8e565b8101031261013b57515f610cb1565b3d9150610cc5565b634e487b7160e01b5f52601160045260245ffd5b610d07908361100c565b8452610b60565b60011480610d34575b610d22575b50610b47565b610b3f610d2e91610ad5565b5f610d1c565b50610d3e81610ad5565b518311610d17565b50610d5082610ac8565b518411610b2d565b955050505050565b506001600160a01b038581167f0000000000000000000000000000000000000000000000000000000000000000909116148015610b08575060028310610b08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691168181149283159283610f9b575b8315610f47575b508215610f34575b505061033b5760405190610e00606083610a8e565b60028252604036602084013715610e38576001600160801b03610e2282610ac8565b526001600160801b03610e3482610ad5565b5290565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f91610f02575b50610e9183610ad5565b526020610e9d83610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f91610ed0575b50610e3482610ac8565b90506020813d602011610efa575b81610eeb60209383610a8e565b8101031261013b57515f610ec6565b3d9150610ede565b90506020813d602011610f2c575b81610f1d60209383610a8e565b8101031261013b57515f610e87565b3d9150610f10565b6001600160a01b03161490505f80610deb565b9092506001600160a01b038316908114159081610f67575b50915f610de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610f5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610ddc565b15610fd657565b60405162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b6044820152606490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911680820361112d57604051630a28a47760e01b81526004810184905290602082602481865afa9182156105ff575f926110f7575b50915f936110836110b39360209530903390611400565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af19081156105ff575f916110c8575090565b90506020813d6020116110ef575b816110e360209383610a8e565b8101031261013b575190565b3d91506110d6565b929091506020833d602011611125575b8161111460209383610a8e565b8101031261013b579151905f61106c565b3d9150611107565b60405163b3d7f6b960e01b81526004810184905290602082602481865afa9182156105ff575f926111a3575b50915f9361117983836020966111746110b397303384611400565b61144b565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b929091506020833d6020116111d1575b816111c060209383610a8e565b8101031261013b579151905f611159565b3d91506111b3565b5f916020916001600160a01b0316906111f481303385611400565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690828214851461125957604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481016110b3565b61126781836110b39561144b565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b6001906040516112a081610a72565b5f80825260209091015215150361139e576002811061135a5760405163ef8b30f760e01b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f92611326575b506040519161131c83610a72565b8252602082015290565b9091506020813d602011611352575b8161134260209383610a8e565b8101031261013b5751905f61130e565b3d9150611335565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e7420496e206d7573742062652067726561746572207468616e20316044820152fd5b60405163266d6a8360e11b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f9261132657506040519161131c83610a72565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261144991611444608483610a8e565b6115af565b565b604051636eb1769f60e11b81523060048201526001600160a01b0392831660248201819052939092821690602084604481855afa9384156105ff575f94611563575b508301809311610ce9575f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526114c6606487610a8e565b85519082855af1906114d661161a565b82611531575b5081611526575b50156114ee57505050565b611444611449936040519063095ea7b360e01b602083015260248201525f604482015260448152611520606482610a8e565b826115af565b90503b15155f6114e3565b80519192508115918215611549575b5050905f6114dc565b61155c9250602080918301019101611597565b5f80611540565b9093506020813d60201161158f575b8161157f60209383610a8e565b8101031261013b5751925f61148d565b3d9150611572565b9081602091031261013b5751801515810361013b5790565b5f806115d79260018060a01b03169360208151910182865af16115d061161a565b9083611659565b80519081151591826115ff575b50506115ed5750565b635274afe760e01b5f5260045260245ffd5b6116129250602080918301019101611597565b155f806115e4565b3d15611654573d9067ffffffffffffffff82116108645760405191611649601f8201601f191660200184610a8e565b82523d5f602084013e565b606090565b9061167d575080511561166e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806116ae575b61168e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561168656fea264697066735822122067f54ef465d21af621c8dd49b39e0406a28ba995a2dfce93f120df14a9a875d164736f6c634300081b0033","sourceMap":"1127:7738:61:-:0;;;;;;;;;;;;;-1:-1:-1;;1127:7738:61;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;1127:7738:61;;;1403:22;;1127:7738;;1435:20;1127:7738;;;;;;;;1403:22;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:20;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1127:7738:61;;;;;;-1:-1:-1;1127:7738:61;;;;;-1:-1:-1;1127:7738:61;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461096057806348bd7dfd146108785780638307c655146106d7578063a9270fbe14610442578063aad6e4881461013f5763ecbbc0331461005b575f80fd5b3461013b57602036600319011261013b5760405161007a606082610a8e565b60028152602081019060403683377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100bb82610ac8565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ef82610ad5565b52604051918291602083019060208452518091526040830191905f5b818110610119575050500390f35b82516001600160a01b031684528594506020938401939092019160010161010b565b5f80fd5b3461013b57608036600319011261013b57610158610a0c565b610160610a22565b6064359067ffffffffffffffff821161013b573660238301121561013b5781600401359161018d83610ab0565b9261019b6040519485610a8e565b8084526024602085019160051b8301019136831161013b57602401905b828210610432575050506001600160a01b038381167f00000000000000000000000000000000000000000000000000000000000000009091168181149291831591826103fe575b82156103aa575b508115610397575b5061033b5782519361021f85610ab0565b9461022d6040519687610a8e565b80865261023c601f1991610ab0565b015f5b8181106103185750509061025291610da1565b915f5b81518110156102c7578061026b60019284610ae5565b5161027586610ac8565b518111156102c1576102919061028a87610ac8565b5111610fcf565b6102a561029e8285610ae5565b5185611291565b6102af8288610ae5565b526102ba8187610ae5565b5001610255565b50610291565b846040518091602082016020835281518091526020604084019201905f5b8181106102f3575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102e5565b60209060405161032781610a72565b5f81525f8382015282828a0101520161023f565b60405163643c60f360e01b815260206004820152602d60248201527f546869732061646170746572206f6e6c7920737570706f72747320465241583c60448201526c2d3e534652415820737761707360981b6064820152608490fd5b6001600160a01b0383161490508561020e565b9091506001600160a01b0383169081141590816103ca575b509086610206565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866103c2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682141592506101ff565b81358152602091820191016101b8565b3461013b5761045036610a38565b6001600160a01b039182167f000000000000000000000000000000000000000000000000000000000000000090921682811493508315929190836106a3575b831561064f575b50821561063c575b505061033b57604051906104b3606083610a8e565b60028252602082019060403683371561052e576001600160801b036104d783610ac8565b526001600160801b036104e983610ad5565b52905b604051918291602083019060208452518091526040830191905f5b818110610515575050500390f35b8251845285945060209384019390920191600101610507565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f9161060a575b5061058784610ad5565b52602061059384610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f916105cd575b506105c683610ac8565b52906104ec565b90506020813d6020116105f7575b816105e860209383610a8e565b8101031261013b5751836105bc565b3d91506105db565b6040513d5f823e3d90fd5b90506020813d602011610634575b8161062560209383610a8e565b8101031261013b57518461057d565b3d9150610618565b6001600160a01b0316149050828061049e565b9092506001600160a01b03831690811415908161066f575b509184610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905084610667565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316831415935061048f565b3461013b5760a036600319011261013b576106f0610a0c565b6106f8610a22565b90606435600281101561013b57604051906060820182811067ffffffffffffffff821117610864576040525f82525f602083015260405161073881610a72565b5f808252602082015260408301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416818114159182610830575b82156107dc575b5081156107c9575b5061033b576080936107a49360843593610af9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b6001600160a01b0386161490508561078f565b9091506001600160a01b0386169081141590816107fc575b509086610787565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866107f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168214159250610780565b634e487b7160e01b5f52604160045260245ffd5b3461013b5761088636610a38565b50505060405161089760c082610a8e565b600581526020810160a036823760016108af83610ac8565b5260026108bb83610ad5565b5281516002101561094c576003606083015281516003101561094c576005608083015281516004101561094c57600860a0830152604051906020820192602083525180935260408201905f935b8085106109155783830384f35b9091825190600a8210156109385760208160019382935201930194019390610908565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461013b57604036600319011261013b5760408051906109808183610a8e565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166109cc84610ac8565b52815192839260208401916020855251809252830191905f5b8181106109f3575050500390f35b82518452859450602093840193909201916001016109e5565b602435906001600160a01b038216820361013b57565b604435906001600160a01b038216820361013b57565b606090600319011261013b57600435906024356001600160a01b038116810361013b57906044356001600160a01b038116810361013b5790565b6040810190811067ffffffffffffffff82111761086457604052565b90601f8019910116810190811067ffffffffffffffff82111761086457604052565b67ffffffffffffffff81116108645760051b60200190565b80511561094c5760200190565b80516001101561094c5760400190565b805182101561094c5760209160051b010190565b94939092918582158015610d60575b610d585750610b179084610da1565b9160028110928315610938578115918280610d46575b15610d0e5750610b3f610b4791610ac8565b518310610fcf565b5a92156109385715610cfd57610b5d90836111d9565b84525b5a8103908111610ce95760208401526001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911603610c565760405163ef8b30f760e01b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610c24575b505b60405190610c0d82610a72565b8152670de0b6b3a764000060208201526040830152565b90506020813d602011610c4e575b81610c3f60209383610a8e565b8101031261013b57515f610bfe565b3d9150610c32565b60405163266d6a8360e11b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610cb7575b50610c00565b90506020813d602011610ce1575b81610cd260209383610a8e565b8101031261013b57515f610cb1565b3d9150610cc5565b634e487b7160e01b5f52601160045260245ffd5b610d07908361100c565b8452610b60565b60011480610d34575b610d22575b50610b47565b610b3f610d2e91610ad5565b5f610d1c565b50610d3e81610ad5565b518311610d17565b50610d5082610ac8565b518411610b2d565b955050505050565b506001600160a01b038581167f0000000000000000000000000000000000000000000000000000000000000000909116148015610b08575060028310610b08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691168181149283159283610f9b575b8315610f47575b508215610f34575b505061033b5760405190610e00606083610a8e565b60028252604036602084013715610e38576001600160801b03610e2282610ac8565b526001600160801b03610e3482610ad5565b5290565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f91610f02575b50610e9183610ad5565b526020610e9d83610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f91610ed0575b50610e3482610ac8565b90506020813d602011610efa575b81610eeb60209383610a8e565b8101031261013b57515f610ec6565b3d9150610ede565b90506020813d602011610f2c575b81610f1d60209383610a8e565b8101031261013b57515f610e87565b3d9150610f10565b6001600160a01b03161490505f80610deb565b9092506001600160a01b038316908114159081610f67575b50915f610de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610f5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610ddc565b15610fd657565b60405162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b6044820152606490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911680820361112d57604051630a28a47760e01b81526004810184905290602082602481865afa9182156105ff575f926110f7575b50915f936110836110b39360209530903390611400565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af19081156105ff575f916110c8575090565b90506020813d6020116110ef575b816110e360209383610a8e565b8101031261013b575190565b3d91506110d6565b929091506020833d602011611125575b8161111460209383610a8e565b8101031261013b579151905f61106c565b3d9150611107565b60405163b3d7f6b960e01b81526004810184905290602082602481865afa9182156105ff575f926111a3575b50915f9361117983836020966111746110b397303384611400565b61144b565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b929091506020833d6020116111d1575b816111c060209383610a8e565b8101031261013b579151905f611159565b3d91506111b3565b5f916020916001600160a01b0316906111f481303385611400565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690828214851461125957604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481016110b3565b61126781836110b39561144b565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b6001906040516112a081610a72565b5f80825260209091015215150361139e576002811061135a5760405163ef8b30f760e01b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f92611326575b506040519161131c83610a72565b8252602082015290565b9091506020813d602011611352575b8161134260209383610a8e565b8101031261013b5751905f61130e565b3d9150611335565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e7420496e206d7573742062652067726561746572207468616e20316044820152fd5b60405163266d6a8360e11b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f9261132657506040519161131c83610a72565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261144991611444608483610a8e565b6115af565b565b604051636eb1769f60e11b81523060048201526001600160a01b0392831660248201819052939092821690602084604481855afa9384156105ff575f94611563575b508301809311610ce9575f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526114c6606487610a8e565b85519082855af1906114d661161a565b82611531575b5081611526575b50156114ee57505050565b611444611449936040519063095ea7b360e01b602083015260248201525f604482015260448152611520606482610a8e565b826115af565b90503b15155f6114e3565b80519192508115918215611549575b5050905f6114dc565b61155c9250602080918301019101611597565b5f80611540565b9093506020813d60201161158f575b8161157f60209383610a8e565b8101031261013b5751925f61148d565b3d9150611572565b9081602091031261013b5751801515810361013b5790565b5f806115d79260018060a01b03169360208151910182865af16115d061161a565b9083611659565b80519081151591826115ff575b50506115ed5750565b635274afe760e01b5f5260045260245ffd5b6116129250602080918301019101611597565b155f806115e4565b3d15611654573d9067ffffffffffffffff82116108645760405191611649601f8201601f191660200184610a8e565b82523d5f602084013e565b606090565b9061167d575080511561166e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806116ae575b61168e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561168656fea264697066735822122067f54ef465d21af621c8dd49b39e0406a28ba995a2dfce93f120df14a9a875d164736f6c634300081b0033","sourceMap":"1127:7738:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1127:7738:61;;;;;;;;;;:::i;:::-;5345:1;1127:7738;;;;;;;;;;5378:4;-1:-1:-1;;;;;1127:7738:61;5358:25;;;:::i;:::-;1127:7738;5413:5;-1:-1:-1;;;;;1127:7738:61;5393:26;;;:::i;:::-;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1127:7738:61;;;;;-1:-1:-1;1127:7738:61;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1127:7738:61;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1127:7738:61;;;1635:4;1127:7738;;;1614:26;;;;1127:7738;1614:26;;;;:57;;1127:7738;1613:136;;;;1127:7738;1613:177;;;;;1127:7738;1596:297;;;1127:7738;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;4294:23;;;;;;:::i;:::-;2383:13;1127:7738;2428:3;1127:7738;;2398:28;;;;;2605:20;;1127:7738;2605:20;;;:::i;:::-;1127:7738;8624:9;;;:::i;:::-;1127:7738;8606:27;;8576:281;;;8649:54;8675:9;;;;:::i;:::-;1127:7738;-1:-1:-1;8649:54:61;:::i;:::-;2670:60;2709:20;;;;:::i;:::-;1127:7738;2670:60;;:::i;:::-;2641:89;;;;:::i;:::-;;;;;;:::i;:::-;;1127:7738;2383:13;;8576:281;1127:7738;8576:281;;2398:28;;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1127:7738:61;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1127:7738:61;;-1:-1:-1;1127:7738:61;;;;;;;;;;;;;1596:297;1127:7738;;-1:-1:-1;;;1822:60:61;;1127:7738;;1822:60;;1127:7738;;;;;;;;;;;-1:-1:-1;;;1127:7738:61;;;;;;1822:60;1613:177;-1:-1:-1;;;;;1127:7738:61;;1769:21;;-1:-1:-1;1613:177:61;;;:136;1127:7738;;-1:-1:-1;;;;;;1127:7738:61;;1693:25;;;;;;:55;;1613:136;;;;;;1693:55;1742:5;-1:-1:-1;;;;;1127:7738:61;1722:26;;;-1:-1:-1;1693:55:61;;;1614:57;1665:5;-1:-1:-1;;;;;1127:7738:61;1644:27;;;;-1:-1:-1;1614:57:61;;1127:7738;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1127:7738:61;;;1635:4;1127:7738;;;1614:26;;;;-1:-1:-1;1614:26:61;;;1127:7738;4294:23;1614:26;:57;;1127:7738;1613:136;;;;1127:7738;1613:177;;;;;1127:7738;1596:297;;;;1127:7738;;;;;;;:::i;:::-;4356:1;1127:7738;;;;;;;;;;4373:26;;;-1:-1:-1;;;;;4445:29:61;;;:::i;:::-;1127:7738;-1:-1:-1;;;;;4488:29:61;;;:::i;:::-;1127:7738;4369:285;;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1127:7738:61;;;;;;;;;;;;;4369:285;1127:7738;;-1:-1:-1;;;4560:25:61;;:5;-1:-1:-1;;;;;1127:7738:61;;;;;;;4560:25;;;;;;;1127:7738;4560:25;;;4369:285;4548:37;;;;:::i;:::-;1127:7738;;4633:9;;;:::i;:::-;1127:7738;4611:32;1127:7738;;1283:4;;;;;;;4611:32;;1127:7738;4611:32;;1127:7738;4611:32;;;;;;;1127:7738;4611:32;;;4369:285;4599:44;;;;:::i;:::-;1127:7738;4369:285;;;4611:32;;;1127:7738;4611:32;;1127:7738;4611:32;;;;;;1283:4;4611:32;;;:::i;:::-;;;1283:4;;;;;4611:32;;;;;;-1:-1:-1;4611:32:61;;;1127:7738;;1283:4;1127:7738;1283:4;;;;;4560:25;;;1127:7738;4560:25;;1127:7738;4560:25;;;;;;1283:4;4560:25;;;:::i;:::-;;;1283:4;;;;;4560:25;;;;;;-1:-1:-1;4560:25:61;;1613:177;-1:-1:-1;;;;;1127:7738:61;1769:21;;-1:-1:-1;1613:177:61;;;;:136;1127:7738;;-1:-1:-1;;;;;;1127:7738:61;;1693:25;;;;;;:55;;1613:136;;;;;;1693:55;1742:5;-1:-1:-1;;;;;1127:7738:61;1722:26;;;-1:-1:-1;1693:55:61;;;1614:57;1665:5;-1:-1:-1;;;;;1127:7738:61;1644:27;;;;-1:-1:-1;1614:57:61;;1127:7738;;;;;;-1:-1:-1;;1127:7738:61;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1127:7738:61;;;;;;;;;;;1635:4;-1:-1:-1;;;;;1127:7738:61;;;;;;1614:26;;;;;;:57;;1127:7738;1613:136;;;;1127:7738;1613:177;;;;;1127:7738;1596:297;;;1127:7738;;2786:1232;1127:7738;;;2786:1232;;:::i;:::-;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:177;-1:-1:-1;;;;;1127:7738:61;;1769:21;;-1:-1:-1;1613:177:61;;;:136;1127:7738;;-1:-1:-1;;;;;;1127:7738:61;;1693:25;;;;;;:55;;1613:136;;;;;;1693:55;1742:5;-1:-1:-1;;;;;1127:7738:61;1722:26;;;-1:-1:-1;1693:55:61;;;1614:57;1665:5;-1:-1:-1;;;;;1127:7738:61;1644:27;;;;-1:-1:-1;1614:57:61;;1127:7738;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;4895:1;1127:7738;;;;;;;;;4925:20;4907:38;;;:::i;:::-;1127:7738;4973:19;4955:37;;;:::i;:::-;1127:7738;;;4973:19;1127:7738;;;;5020:24;1127:7738;;;;;;5020:24;1127:7738;;;;4895:1;1127:7738;;;;;;;;;;;5124:21;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:20;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1127:7738:61;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1127:7738:61;;;;;5771:5;1127:7738;;-1:-1:-1;;1127:7738:61;5738:41;;;:::i;:::-;1127:7738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1127:7738:61;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;;;;-1:-1:-1;;;;;1127:7738:61;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;4925:20;1127:7738;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;2786:1232::-;;;;;;;3084:20;;:91;;;;2786:1232;3067:156;;4294:23;;;;;:::i;:::-;1127:7738;;;;;;;;;8580:22;;;;;:53;;2786:1232;8576:281;;;8675:9;;8649:54;8675:9;;:::i;:::-;1127:7738;8657:27;;8649:54;:::i;:::-;3498:9;1127:7738;;;;3521:22;;;3604:32;;;;:::i;:::-;1127:7738;;3517:236;3790:9;1127:7738;;;;;;;3762:13;;;1127:7738;-1:-1:-1;;;;;1127:7738:61;;;3851:4;1127:7738;;;3830:26;1127:7738;;;;-1:-1:-1;;;3871:34:61;;1283:4;3871:34;;;1127:7738;3762:13;1127:7738;3871:34;1127:7738;3871:5;-1:-1:-1;;;;;1127:7738:61;3871:34;;;;;;;3103:1;3871:34;;;3830:123;;;1127:7738;;;;;;:::i;:::-;;;1283:4;3762:13;3978:33;;1127:7738;;3964:11;;:47;2786:1232::o;3871:34::-;;;3762:13;3871:34;;3762:13;3871:34;;;;;;1283:4;3871:34;;;:::i;:::-;;;1283:4;;;;;3871:34;;;;;;-1:-1:-1;3871:34:61;;3830:123;1127:7738;;-1:-1:-1;;;3920:33:61;;1283:4;3920:33;;;1127:7738;3762:13;1127:7738;3920:33;1127:7738;3920:5;-1:-1:-1;;;;;1127:7738:61;3920:33;;;;;;;3103:1;3920:33;;;3830:123;;;;3920:33;;;3762:13;3920:33;;3762:13;3920:33;;;;;;1283:4;3920:33;;;:::i;:::-;;;1283:4;;;;;3920:33;;;;;;-1:-1:-1;3920:33:61;;1127:7738;;;;3103:1;1127:7738;;;;;3103:1;1127:7738;3517:236;3711:31;;;;:::i;:::-;1127:7738;;3517:236;;8576:281;1127:7738;8724:21;:52;;;8576:281;8720:137;;8576:281;;;;8720:137;8818:9;8792:54;8818:9;;:::i;8792:54::-;8720:137;;;8724:52;8767:9;;;;:::i;:::-;1127:7738;8749:27;;8724:52;;8580:53;8624:9;;;;:::i;:::-;1127:7738;8606:27;;8580:53;;3067:156;3200:12;-1:-1:-1;;;;;3200:12:61:o;3084:91::-;-1:-1:-1;;;;;;1127:7738:61;;;3146:4;1127:7738;;;3125:26;:49;;3084:91;3125:49;3155:19;3173:1;3155:19;;3084:91;;1520:390;1635:4;-1:-1:-1;;;;;1127:7738:61;;;;;1614:26;;;;;;;;:57;;1520:390;1613:136;;;;1520:390;1613:177;;;;;1520:390;1596:297;;;;1127:7738;;;;;;;:::i;:::-;4356:1;1127:7738;;;;;;;;4373:26;;;-1:-1:-1;;;;;4445:29:61;;;:::i;:::-;1127:7738;-1:-1:-1;;;;;4488:29:61;;;:::i;:::-;1127:7738;1520:390;:::o;4369:285::-;1127:7738;;-1:-1:-1;;;4560:25:61;;:5;-1:-1:-1;;;;;1127:7738:61;;;;4560:25;1127:7738;;4560:25;;;;;;;1127:7738;4560:25;;;4369:285;4548:37;;;;:::i;:::-;1127:7738;;4633:9;;;:::i;:::-;1127:7738;4611:32;1127:7738;;1283:4;;;;;;;4611:32;;4560:25;4611:32;;1127:7738;4611:32;;;;;;;1127:7738;4611:32;;;4369:285;4599:44;;;;:::i;4611:32::-;;;1127:7738;4611:32;;1127:7738;4611:32;;;;;;1283:4;4611:32;;;:::i;:::-;;;1283:4;;;;;4611:32;;;;;;-1:-1:-1;4611:32:61;;4560:25;;;1127:7738;4560:25;;1127:7738;4560:25;;;;;;1283:4;4560:25;;;:::i;:::-;;;1283:4;;;;;4560:25;;;;;;-1:-1:-1;4560:25:61;;1613:177;-1:-1:-1;;;;;1127:7738:61;1769:21;;-1:-1:-1;1613:177:61;;;;:136;1127:7738;;-1:-1:-1;;;;;;1127:7738:61;;1693:25;;;;;;:55;;1613:136;;;;;;1693:55;1742:5;-1:-1:-1;;;;;1127:7738:61;1722:26;;;-1:-1:-1;1693:55:61;;;1614:57;1665:5;-1:-1:-1;;;;;1127:7738:61;1644:27;;;;-1:-1:-1;1614:57:61;;1127:7738;;;;:::o;:::-;;;-1:-1:-1;;;1127:7738:61;;;;;;;;;;;;-1:-1:-1;;;1127:7738:61;;;;;;;6701:739;-1:-1:-1;;;;;6848:5:61;1127:7738;;;;6827:27;;;1127:7738;;;;-1:-1:-1;;;6889:29:61;;;;;1127:7738;;;;1283:4;1127:7738;6889:29;1127:7738;6889:29;;;;;;;;1127:7738;6889:29;;;6823:611;7004:4;;1127:7738;7004:4;7011:8;7054:49;7004:4;1283;7004;;6984:10;;7011:8;;:::i;:::-;1127:7738;;-1:-1:-1;;;7054:49:61;;6889:29;7054:49;;1127:7738;;;;6984:10;1127:7738;;;;7004:4;1127:7738;;;;;;;;;1283:4;1127:7738;;;;;;;7054:49;;;;;;;;;;1127:7738;7054:49;;;7047:56;;:::o;7054:49::-;;;1283:4;7054:49;;1283:4;7054:49;;;;;;1283:4;7054:49;;;:::i;:::-;;;1283:4;;;;;7047:56;:::o;7054:49::-;;;-1:-1:-1;7054:49:61;;6889:29;;;;;1283:4;6889:29;;1283:4;6889:29;;;;;;1283:4;6889:29;;;:::i;:::-;;;1283:4;;;;;;;1127:7738;6889:29;;;;;-1:-1:-1;6889:29:61;;6823:611;1127:7738;;-1:-1:-1;;;7153:25:61;;;;;1127:7738;;;;1283:4;1127:7738;7153:25;1127:7738;7153:25;;;;;;;;1127:7738;7153:25;;;6823:611;7264:4;;1127:7738;7264:4;7363:8;7264:4;;1283;7264;7271:8;7393:30;7264:4;;7244:10;7271:8;;:::i;:::-;7363;:::i;:::-;1127:7738;;-1:-1:-1;;;7393:30:61;;7153:25;7393:30;;1127:7738;;;;7244:10;1127:7738;;;;;;;;;1283:4;1127:7738;;;;;;;7153:25;;;;;1283:4;7153:25;;1283:4;7153:25;;;;;;1283:4;7153:25;;;:::i;:::-;;;1283:4;;;;;;;1127:7738;7153:25;;;;;-1:-1:-1;7153:25:61;;6005:468;1127:7738;;6261:47;;-1:-1:-1;;;;;1127:7738:61;;6190:6;6005:468;6183:4;6163:10;1127:7738;6190:6;:::i;:::-;6232:5;-1:-1:-1;;;;;1127:7738:61;;6211:27;;;1127:7738;;;;;;-1:-1:-1;;;6261:47:61;;;;;1127:7738;;;;6163:10;1127:7738;;;;6183:4;1127:7738;;;;;;;-1:-1:-1;1127:7738:61;;;;;;6261:47;1127:7738;6207:260;6395:6;;;6423:33;6395:6;;:::i;:::-;1127:7738;;-1:-1:-1;;;6423:33:61;;;;;1127:7738;;;;6163:10;1127:7738;;;;;;;;;1283:4;1127:7738;;;;;;;7727:439;7878:4;7727:439;1127:7738;;;;;:::i;:::-;-1:-1:-1;1127:7738:61;;;;;;;;;;7864:18;7878:4;;7913:1;7902:12;;7898:93;;1127:7738;;-1:-1:-1;;;8021:30:61;;;;;1127:7738;;;;1283:4;1127:7738;8021:30;1127:7738;8021:5;-1:-1:-1;;;;;1127:7738:61;8021:30;;;;;;;1127:7738;8021:30;;;7860:300;1127:7738;;;;;;;:::i;:::-;;;1283:4;8012:50;;1127:7738;8005:57;:::o;8021:30::-;;;;1283:4;8021:30;;1283:4;8021:30;;;;;;1283:4;8021:30;;;:::i;:::-;;;1283:4;;;;;8021:30;;;;;;;-1:-1:-1;8021:30:61;;7898:93;7934:42;1127:7738;;;;;7934:42;;1127:7738;7934:42;;;1127:7738;;;;;;;;;;;7934:42;7860:300;1127:7738;;-1:-1:-1;;;8109:29:61;;;;;1127:7738;;;;1283:4;1127:7738;8109:29;1127:7738;8109:5;-1:-1:-1;;;;;1127:7738:61;8109:29;;;;;;;1127:7738;8109:29;;;1127:7738;;;;;;;:::i;1702:188:32:-;1127:7738:61;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;1127:7738:61;;;1829:53:32;;;1127:7738:61;;;;;;;;;;;;;;;;;1829:53:32;;;;;;;1127:7738:61;1829:53:32;:::i;:::-;;:::i;:::-;1702:188::o;2081:225::-;1127:7738:61;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;1127:7738:61;-1:-1:-1;;;;;1127:7738:61;;;;;;;;;;;;;;;;;2200:39:32;1127:7738:61;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;;2081:225;1127:7738:61;;;;;;;;-1:-1:-1;1127:7738:61;;;3411:47:32;1127:7738:61;3411:47:32;;1283:4:61;;;;3411:47:32;;;1127:7738:61;3411:47:32;;1127:7738:61;2200:39:32;1127:7738:61;;;2200:39:32;3411:47;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;1127:7738:61;;;1283:4;;;;1127:7738;3561:43:32;;;1127:7738:61;3561:43:32;;1127:7738:61;-1:-1:-1;2200:39:32;1127:7738:61;;;2200:39:32;3561:43;;;3411:47;3561:43;;:::i;:::-;;;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;1127:7738:61;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;1127:7738:61;8104:30:32;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;;1127:7738:61;2200:39:32;;1127:7738:61;2200:39:32;;;;;;1283:4:61;2200:39:32;;;:::i;:::-;;;1283:4:61;;;;;2200:39:32;;;;;;;-1:-1:-1;2200:39:32;;1127:7738:61;;;;;;;;;;;;;;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;1127:7738:61;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;1127:7738:61;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;1127:7738:61;;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;1127:7738:61;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1127:7738:61;;;;;:::i;:::-;;;;-1:-1:-1;1127:7738:61;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;1127:7738:61;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;1127:7738:61;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;1127:7738:61;;;;4917:24:33;1127:7738:61;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"66921":[{"start":190,"length":32},{"start":972,"length":32},{"start":1024,"length":32},{"start":1341,"length":32},{"start":1649,"length":32},{"start":1701,"length":32},{"start":2046,"length":32},{"start":2098,"length":32},{"start":2450,"length":32},{"start":3014,"length":32},{"start":3193,"length":32},{"start":3655,"length":32},{"start":3945,"length":32},{"start":3997,"length":32},{"start":4118,"length":32},{"start":4598,"length":32},{"start":4822,"length":32},{"start":5051,"length":32}],"66924":[{"start":138,"length":32},{"start":463,"length":32},{"start":1117,"length":32},{"start":1864,"length":32},{"start":2940,"length":32},{"start":3438,"length":32},{"start":3491,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sFrax\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_frax\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Adapter for FraxV3 protocol, supports Frax --> sFrax and sFrax --> Frax\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"there is no hard capped limit\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Since FraxV3 is a single pool that supports FRAX and SFRAX, we return it directly\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"_prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"FraxV3SFraxAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfrax/FraxV3SFraxAdapter.sol\":\"FraxV3SFraxAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfrax/FraxV3SFraxAdapter.sol\":{\"keccak256\":\"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4\",\"dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_sFrax","type":"address"},{"internalType":"address","name":"_frax","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"there is no hard capped limit","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Since FraxV3 is a single pool that supports FRAX and SFRAX, we return it directly","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"_prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfrax/FraxV3SFraxAdapter.sol":"FraxV3SFraxAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfrax/FraxV3SFraxAdapter.sol":{"keccak256":"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077","urls":["bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4","dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw"],"license":"AGPL-3.0-or-later"}},"version":1},"id":61} \ No newline at end of file diff --git a/evm/out/FraxV3SFraxAdapter.sol/ISFrax.json b/evm/out/FraxV3SFraxAdapter.sol/ISFrax.json deleted file mode 100644 index 071838d..0000000 --- a/evm/out/FraxV3SFraxAdapter.sol/ISFrax.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewDistributeRewards","inputs":[],"outputs":[{"name":"_rewardToDistribute","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pricePerShare","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"storedTotalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"asset()":"38d52e0f","deposit(uint256,address)":"6e553f65","mint(uint256,address)":"94bf804d","previewDeposit(uint256)":"ef8b30f7","previewDistributeRewards()":"358245fc","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","pricePerShare()":"99530b06","redeem(uint256,address,address)":"ba087652","storedTotalAssets()":"61c1c5e9","totalAssets()":"01e1d114","totalSupply()":"18160ddd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previewDistributeRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardToDistribute\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pricePerShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storedTotalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/sfrax/FraxV3SFraxAdapter.sol\":\"ISFrax\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/sfrax/FraxV3SFraxAdapter.sol\":{\"keccak256\":\"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4\",\"dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previewDistributeRewards","outputs":[{"internalType":"uint256","name":"_rewardToDistribute","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pricePerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storedTotalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/sfrax/FraxV3SFraxAdapter.sol":"ISFrax"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/sfrax/FraxV3SFraxAdapter.sol":{"keccak256":"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077","urls":["bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4","dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw"],"license":"AGPL-3.0-or-later"}},"version":1},"id":61} \ No newline at end of file diff --git a/evm/out/FraxV3SFraxAdapter.t.sol/FraxV3SFraxAdapterTest.json b/evm/out/FraxV3SFraxAdapter.t.sol/FraxV3SFraxAdapterTest.json deleted file mode 100644 index 0298af5..0000000 --- a/evm/out/FraxV3SFraxAdapter.t.sol/FraxV3SFraxAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesFraxV3SFrax","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsFraxV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensFraxV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzFraxV3SFrax","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasingFraxV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzFraxV3WithFrax","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzFraxV3WithSFrax","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasingFraxV3","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f51602061aca15f395f51905f52915b600482106100f75760405161a96b90816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f51602061aca15f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610160806040526004361015610013575f80fd5b5f905f3560e01c9081630543ce85146150165750806308c4174514614fd95780630a9254e414614d5a5780631510ba6b146139a65780631ed7831c146139285780632ade3880146137695780633e5e3c23146136eb5780633f7286f41461366d5780634a9a720e14611ffe57806366d9a9a014611e505780636f6e799214611ae15780637b2fb7b914611a0357806385226c8114611971578063916a17c6146116e5578063a00872f114611679578063a930fe9214610735578063b5508aa91461069c578063ba414fa614610677578063d0a372591461050a578063d170c3cc146102d4578063e20c9f7114610246578063fa7626d4146102235763ff1100f61461011c575f80fd5b346101f057806003193601126101f05760205460405163549387df60e11b8152600481018390525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f52604482015282918290829060649082906001600160a01b03165afa9081156101f3578291610201575b50515f51602061a8b65f395f51905f523b156101fe576040519063260a5b1560e21b825260048201526002602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b816101e991615bee565b6101f05780f35b80fd5b6040513d84823e3d90fd5b50fd5b61021d91503d8084833e6102158183615bee565b810190615e97565b5f61018d565b50346101f057806003193601126101f057602060ff601e54166040519015158152f35b50346101f057806003193601126101f05760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106102b5576102b1856102a581870382615bee565b60405191829182615c0f565b0390f35b82546001600160a01b031684526020909301926001928301920161028e565b50346101f05760403660031901126101f0576004356001600160a01b03811680820361050657602435916001600160401b03831161050257366023840112156105025782600401359261032684615e80565b936103346040519586615bee565b8085526024602086019160051b830101913683116104fe57602401905b8282106104ee5750505061036483615f10565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156104e3576103a49186916104c1575b50616516565b1591845b84518110156104bd576103bb8186615f2d565b51906040519163ecbbc03360e01b83526004830152868260248183875af180156104b2578561048a916001948a91610490575b5061040986868060a01b0361040284615f10565b51166165ad565b61041c86868060a01b0361040284615f1d565b6104548261042a868c615f2d565b51878060a01b0361043a85615f10565b5116888060a01b0361044b86615f1d565b5116918b6166ef565b61045e848a615f2d565b5190858060a01b0361046f82615f1d565b511690610481878060a01b0391615f10565b511691886166ef565b016103a8565b6104ac91503d808c833e6104a48183615bee565b8101906163a3565b5f6103ee565b6040513d89823e3d90fd5b8580f35b6104dd91503d8088833e6104d58183615bee565b810190616285565b5f61039e565b6040513d87823e3d90fd5b8135815260209182019101610351565b8680fd5b8380fd5b8280fd5b50346101f057806003193601126101f05760205460405163ecbbc03360e01b81526004810183905282918290829060249082906001600160a01b03165afa9081156101f357829161065d575b506001600160a01b0361056882615f10565b51165f51602061a8b65f395f51905f523b1561065957604051906328a9b0fb60e11b825260048201525f51602061a8f65f395f51905f52602482015282816044815f51602061a8b65f395f51905f525afa90811561064e578391610639575b506001600160a01b03916105db9150615f1d565b51165f51602061a8b65f395f51905f523b156101fe57604051906328a9b0fb60e11b825260048201525f51602061a8d65f395f51905f52602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b8161064391615bee565b6101fe57815f6105c7565b6040513d85823e3d90fd5b5050fd5b61067191503d8084833e6104a48183615bee565b5f610556565b50346101f057806003193601126101f0576020610692616308565b6040519015158152f35b50346101f057806003193601126101f0576019546106b981615e80565b916106c76040519384615bee565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061070957604051806102b18782615d24565b600160208192604051610727816107208189615dff565b0382615bee565b8152019201920191906106f4565b50346101f05761074436615b99565b156116735760015b60205460405163549387df60e11b8152600481018590525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f526044820152908490829060649082906001600160a01b03165afa908115610ca8578491611659575b50600282101561164557836001831491825f14611180576107cc90615f1d565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f357611167575b508060405160208101906370a0823160e01b82523060248201526024815261083f604482615bee565b51905f51602061a8f65f395f51905f525afa5061086c61085d617d2f565b60208082518301019101615f59565b50610875616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016108c39301600e55615d83565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b601054906108e26180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061093481610926888886618099565b03601f198101835282615bee565b519020895260205260ff600360408a2001541615611145575b6001600160a01b0384165f908152600d602052604090209088526020526109266109866040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546109a98186616488565b611023578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697610fea575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491610fd1575b5050610a7e618269565b9015908115610fc5575b50610ee85750505050610a99618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f51602061a8f65f395f51905f525af180156104e357610eb9575b505b6040516370a0823160e01b8152306004820152926020846024815f51602061a8f65f395f51905f525afa9384156104e3578594610e85575b506040516370a0823160e01b8152306004820152916020836024815f51602061a8d65f395f51905f525afa928315610ce7578693610e51575b506040516278744560e21b81526020816004815f51602061a8d65f395f51905f525afa80156104b257610e1e575b50608082610bb49560018060a01b03602054169089604051809981958294638307c65560e01b84526004840161600f565b03925af1938415610ce7578694610ded575b508351610bd1578580f35b15610cf2576040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ce7578691610cb3575b50610c2192610c1b91616083565b9061642d565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ca8578491610c70575b50610c1b90610c6793616083565b5f808080808580f35b90506020813d602011610ca0575b81610c8b60209383615bee565b81010312610c9c5751610c67610c59565b5f80fd5b3d9150610c7e565b6040513d86823e3d90fd5b90506020813d602011610cdf575b81610cce60209383615bee565b81010312610c9c5751610c21610c0d565b3d9150610cc1565b6040513d88823e3d90fd5b6040516370a0823160e01b81523060048201529193916020816024815f51602061a8f65f395f51905f525afa908115610ce7578691610db9575b50610c1b90610d3a93616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ca8578491610d85575b50610d8092610c1b91616083565b610c67565b90506020813d602011610db1575b81610da060209383615bee565b81010312610c9c5751610d80610d72565b3d9150610d93565b90506020813d602011610de5575b81610dd460209383615bee565b81010312610c9c5751610d3a610d2c565b3d9150610dc7565b610e1091945060803d608011610e17575b610e088183615bee565b810190615f90565b925f610bc6565b503d610dfe565b936020853d602011610e49575b81610e3860209383615bee565b81010312610c9c5793506080610b83565b3d9150610e2b565b9092506020813d602011610e7d575b81610e6d60209383615bee565b81010312610c9c5751915f610b55565b3d9150610e60565b9093506020813d602011610eb1575b81610ea160209383615bee565b81010312610c9c5751925f610b1c565b3d9150610e94565b610eda9060203d602011610ee1575b610ed28183615bee565b810190615f41565b505f610ae2565b503d610ec8565b82945054905f51602061a8b65f395f51905f523b15610506576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061a8b65f395f51905f525af180156101f357610fb0575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610fbb828092615bee565b6101f05780610f4f565b5f19141590505f610a88565b81610fdb91615bee565b61050657825f610a74565b8580fd5b955095506020853d60201161101b575b8161100760209383615bee565b81010312610c9c57935194899490816109fa565b3d9150610ffa565b61102e849186616488565b6101000361010081116111315760ff81116111315760405163348051d760e11b8152600190911b600482015281816024815f51602061a8b65f395f51905f525afa9081156101f357606a602092846110e993611109969261110d575b506040519485925f51602061a9165f395f51905f52828501525f51602061a8965f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615bee565b60405162461bcd60e51b8152602060048201529182916024830190615c51565b0390fd5b61112a9192503d8084833e6111228183615bee565b810190616103565b908661108a565b634e487b7160e01b82526011600452602482fd5b61114d6184e3565b5061094d565b634e487b7160e01b85526041600452602485fd5b8161117191615bee565b61050257835f610816565b5080fd5b61118990615f10565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f357611630575b508060405160208101906370a0823160e01b8252306024820152602481526111fc604482615bee565b51905f51602061a8f65f395f51905f525afa5061121a61085d617d2f565b50611223616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016112589301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906112776180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906112bb81610926888886618099565b519020895260205260ff600360408a2001541615611622575b6001600160a01b0384165f908152600d6020526040902090885260205261092661130d6040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546113308186616488565b6114ee575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce75786976114b5575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca85784916114a0575b50508661140a618269565b919015918215611495575b5050610ee85750505050611427618da2565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f51602061a8f65f395f51905f525af180156104e357611476575b50610ae4565b61148e9060203d602011610ee157610ed28183615bee565b505f611470565b14159050875f611415565b816114aa91615bee565b61050657825f6113ff565b955095506020853d6020116114e6575b816114d260209383615bee565b81010312610c9c5793519489949081611382565b3d91506114c5565b909192506114fc8185616488565b61010003610100811161160e5760ff811161160e5760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a8b65f395f51905f525afa801561160357606a6115b4916020948d916115e9575b506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615bee565b8810156115c5575090879291611335565b60405162461bcd60e51b815260206004820152908190611109906024830190615c51565b6115fd91503d808f833e6111228183615bee565b5f611555565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61162a6184e3565b506112d4565b8161163a91615bee565b61050257835f6111d3565b634e487b7160e01b84526021600452602484fd5b61166d91503d8086833e6102158183615bee565b5f6107ac565b8161074c565b50346101f05760203660031901126101f057600435601f5481101561117c576116a190615daf565b9190916116d1576040516102b1906116bd816107208187615dff565b604051918291602083526020830190615c51565b634e487b7160e01b81526004819052602490fd5b50346101f057806003193601126101f057601c5461170281615e80565b906117106040519283615bee565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061175357604051806102b18782615c75565b60405161175f81615bb8565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106118d257846001979460029794602097946117ea9454918181106118b6575b81811061189a575b81811061187e575b818110611862575b818110611846575b81811061182a575b818110611810575b106117fc575b500382615bee565b8382015281520192019201919061173e565b6001600160e01b031916815286015f6117e2565b828a1b6001600160e01b0319168452928901928b016117dc565b604083901b6001600160e01b0319168452928901928b016117d4565b606083901b6001600160e01b0319168452928901928b016117cc565b608083901b6001600160e01b0319168452928901928b016117c4565b60a083901b6001600160e01b0319168452928901928b016117bc565b60c083901b6001600160e01b0319168452928901928b016117b4565b60e083901b6001600160e01b0319168452928901928b016117ac565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611787565b50346101f057806003193601126101f057601a5461198e81615e80565b9161199c6040519384615bee565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106119de57604051806102b18782615d24565b6001602081926040516119f5816107208189615dff565b8152019201920191906119c9565b50346101f057806003193601126101f0576020546040516348bd7dfd60e01b8152600481018390525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f52604482015282918290829060649082906001600160a01b03165afa9081156101f3578291611ac7575b50515f51602061a8b65f395f51905f523b156101fe576040519063260a5b1560e21b825260048201526005602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b611adb91503d8084833e6104d58183615bee565b5f611a75565b50346101f05760403660031901126101f057600435906024359160018060a01b03602054169060405163549387df60e11b81528360048201525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f5260448201528381606481865afa908115610ca8578491611e36575b50611b6081615f10565b5182105f51602061a8b65f395f51905f523b15611e325760405190632631f2b160e11b8252600482015284816024815f51602061a8b65f395f51905f525afa80156104e357908591611e1d575b50505f51602061a8b65f395f51905f523b1561050257604051632631f2b160e11b815260018311600482015284816024815f51602061a8b65f395f51905f525afa80156104e357908591611e08575b5050611c0790615f10565b5184105f51602061a8b65f395f51905f523b156105025760405190632631f2b160e11b8252600482015283816024815f51602061a8b65f395f51905f525afa8015610ca857908491611df3575b50505f51602061a8b65f395f51905f523b1561050657604051632631f2b160e11b815260018511600482015283816024815f51602061a8b65f395f51905f525afa8015610ca857908491611dde575b506040519194909290611cb7606084615bee565b6002835260208301956040368837611cce84615f10565b52611cd883615f1d565b5260405194859263155adc9160e31b845260848401908560048601525f51602061a8f65f395f51905f5260248601525f51602061a8d65f395f51905f526044860152608060648601525180915260a484019190855b818110611dc2575050508290039082905afa918215611db5578192611d91575b50805b8251811015611d8d5780611d70611d6960019386615f2d565b51516164c7565b611d876020611d7f8387615f2d565b5101516164c7565b01611d50565b5080f35b611dae9192503d8084833e611da68183615bee565b8101906161a7565b905f611d4d565b50604051903d90823e3d90fd5b8251845287965088955060209384019390920191600101611d2d565b81611de891615bee565b61050657825f611ca3565b81611dfd91615bee565b61050657825f611c54565b81611e1291615bee565b61050257835f611bfc565b81611e2791615bee565b61050257835f611bad565b8480fd5b611e4a91503d8086833e6102158183615bee565b5f611b56565b50346101f057806003193601126101f057601b54611e6d81615e80565b90611e7b6040519283615bee565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310611ebe57604051806102b18782615c75565b604051611eca81615bb8565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611f5f5784600197946002979460209794611f4d9454918181106118b65781811061189a5781811061187e57818110611862578181106118465781811061182a5781811061181057106117fc57500382615bee565b83820152815201920192019190611ea9565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611ef2565b50346101f057806003193601126101f0576001610ca06040516120218282615bee565b60648152601f1982019081366020830137845b6064811061361d5750836040519161204c8584615bee565b60648352865b848110613601575086915b612c8f575b505083805b612c4b575b5050826040519161207d8484615bee565b606483528036602085013785825b612bbe575b5061209e6040519485615bee565b6064845285825b612b99575b50509084915b612149575b50509080929181935b6120c6578280f35b6063841015612145576120d98482615f2d565b51519382810194858211612131579061212986612106869798946120fe889688615f2d565b515190617d5e565b6020612120816121168689615f2d565b5101519287615f2d565b51015190617d5e565b0193926120be565b634e487b7160e01b85526011600452602485fd5b8280f35b836064831015612b935750604051634b88b8ad60e11b815291602083600481895f51602061a8b65f395f51905f525af1928315610ce7578693612b60575b50851561267757858060405160208101906370a0823160e01b8252306024820152602481526121b7604482615bee565b51905f51602061a8f65f395f51905f525afa506121d561085d617d2f565b506121de616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612663576108aa81876122129301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906122316180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a20604051602081019061227581610926888886618099565b5190208b5260205260ff600360408c2001541615612655575b6001600160a01b0384165f908152600d60205260409020908a526020526109266122c760408b2093604051928391602083019586618099565b5190208852602052866040812091878301549260028101546122e98186616488565b61257d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697612545575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491612530575b50506123be618269565b9015908115612524575b50610ee857505050506123d9618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818a5f51602061a8f65f395f51905f525af180156104b257612508575b506020548690608090612460906001600160a01b03166124428587615f2d565b51604051948580948193638307c65560e01b83528d6004840161600f565b03925af19081156104b25787916124ea575b5061247d8286615f2d565b526124888185615f2d565b505b60405192631135fc2960e21b84526004840152602083602481895f51602061a8b65f395f51905f525af1908115610ce757859384926124cc575b5001916120b0565b6124e39060203d8111610ee157610ed28183615bee565b505f6124c4565b612502915060803d8111610e1757610e088183615bee565b5f612472565b61251f9060203d8111610ee157610ed28183615bee565b612422565b5f19141590505f6123c8565b8161253a91615bee565b61050657825f6123b4565b955095506020853d8211612575575b8161256160209383615bee565b81010312610c9c579351948b94908161233a565b3d9150612554565b89612589859287616488565b610100039061010082116126415760ff82116126415760405163348051d760e11b8152911b600482015281816024815f51602061a8b65f395f51905f525afa9081156101f357606a602092846110e993611109969261110d57506040519485925f51602061a9165f395f51905f52828501525f51602061a8965f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615bee565b634e487b7160e01b83526011600452602483fd5b61265d6184e3565b5061228e565b634e487b7160e01b87526041600452602487fd5b6126818183615f2d565b515f8060405160208101906370a0823160e01b8252306024820152602481526126ab604482615bee565b51905f51602061a8d65f395f51905f525afa506126c961085d617d2f565b506126d2616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612b4c576108aa81886127069301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906127256180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f20604051602081019061276981610926888886618099565b5190205f5260205260ff600360405f2001541615612b3e575b6001600160a01b0384165f908152600d60205260409020905f526020526109266127bb60405f2093604051928391602083019586618099565b5190205f5260205260405f20878101549260028201546127db8186616488565b612a42575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715612a04575f97612a0f575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201525f81606481835f51602061a8b65f395f51905f525af18015612a04576129eb575b50908992916128b4618269565b9190159182156129e0575b5050610ee857505050506128d1618da2565b6020805461291c91906001600160a01b03166128ed8486615f2d565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b03818a5f51602061a8d65f395f51905f525af180156104b2576129c4575b506020548690608090612978906001600160a01b031661295a8587615f2d565b51604051948580948193638307c65560e01b83528d60048401615fc9565b03925af19081156104b25787916129a6575b506129958286615f2d565b526129a08185615f2d565b5061248a565b6129be915060803d8111610e1757610e088183615bee565b5f61298a565b6129db9060203d8111610ee157610ed28183615bee565b61293a565b141590505f806128bf565b6129fa9193929a505f90615bee565b5f9890915f6128a7565b6040513d5f823e3d90fd5b9096506020813d8211612a3a575b81612a2a60209383615bee565b81010312610c9c5751958161282d565b3d9150612a1d565b612a4c8186616488565b610100036101008111612b2a5760ff8111612b2a5760405163348051d760e11b8152908b901b600482018190525f826024815f51602061a8b65f395f51905f525afa8015612a0457606a612b03916020945f91612b10575b506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101845283615bee565b8310156115c557506127e0565b612b2491503d805f833e6111228183615bee565b5f612aa4565b634e487b7160e01b5f52601160045260245ffd5b612b466184e3565b50612782565b634e487b7160e01b5f52604160045260245ffd5b9092506020813d8211612b8b575b81612b7b60209383615bee565b81010312610c9c5751915f612187565b3d9150612b6e565b506120b5565b81811015612bb957602090612bac616495565b82828801015201826120a5565b6120aa565b90916064821015612c44578101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c5785918291612c128287615f2d565b520181929161208b565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b88526011600452602488fd5b9190612090565b6063811015612c8a57612c5e8183615f2d565b515185820190818311612c305791612c828261210686956120fe8b98968997615f2d565b019091612067565b61206c565b8560648310156135fb5750604051634b88b8ad60e11b8152916020836004818b5f51602061a8b65f395f51905f525af19283156130305788936135c8575b50861561310757878060405160208101906370a0823160e01b825230602482015260248152612cfd604482615bee565b51905f51602061a8f65f395f51905f525afa50612d1b61085d617d2f565b50612d24616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156130f3576108aa8189612d589301600e55615d83565b905560018060a01b0360115416600f5460e01b896010549160ff60036040612d7e6180b0565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b169485825260205281812082516020810190612dc2816109268c8c86618099565b519020825260205220015416156130e5575b6001600160a01b0384165f908152600d60205260409020908c52602052610926612e0d60408d2093604051928391602083019586618099565b5190208a5260205288604081209189830154926002810154612e2f8186616488565b6130d9578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce75786976130a1575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161308c575b5050612f04618269565b9015908115613080575b50610ee85750505050612f1f618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818c5f51602061a8f65f395f51905f525af1801561305957613064575b50602054612fa6906080906001600160a01b0316612f868486615f2d565b51908a8c604051809681958294638307c65560e01b84526004840161600f565b03925af190811561305957899161303b575b50612fc38286615f2d565b52612fce8185615f2d565b505b60405192631135fc2960e21b845260048401526020836024818b5f51602061a8b65f395f51905f525af19081156130305787938492613012575b50019161205d565b6130299060203d8111610ee157610ed28183615bee565b505f61300a565b6040513d8a823e3d90fd5b613053915060803d8111610e1757610e088183615bee565b5f612fb8565b6040513d8b823e3d90fd5b61307b9060203d8111610ee157610ed28183615bee565b612f68565b5f19141590505f612f0e565b8161309691615bee565b61050657825f612efa565b955095506020853d82116130d1575b816130bd60209383615bee565b81010312610c9c579351948d949081612e80565b3d91506130b0565b8b612589859287616488565b6130ed6184e3565b50612dd4565b634e487b7160e01b89526041600452602489fd5b6131118183615f2d565b51888060405160208101906370a0823160e01b82523060248201526024815261313b604482615bee565b51905f51602061a8d65f395f51905f525afa5061315961085d617d2f565b50613162616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156135b4576108aa8161319492600e55615d83565b9055601154600f546010548b926001600160a01b03169160e01b6131b66180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906131fa81610926888886618099565b519020865260205260ff600360408720015416156135a6575b6001600160a01b0384165f908152600d6020526040902090855260205261092661324c6040862093604051928391602083019586618099565b519020835260205260408220805493600282015461326a8187616488565b613498575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a8b65f395f51905f525afa9788156104b2578798613460575b506001908201610100031b5f1901811b198716915f51602061a8b65f395f51905f523b156104fe576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a8b65f395f51905f525af19081156104e357859161344b575b5050613343618269565b919015918215613440575b5050610ee85750505050613360618da2565b6020805461337c91906001600160a01b03166128ed8486615f2d565b03818c5f51602061a8d65f395f51905f525af1801561305957613424575b5060205488906080906133d8906001600160a01b03166133ba8587615f2d565b51604051948580948193638307c65560e01b83528360048401615fc9565b03925af1908115613059578991613406575b506133f58286615f2d565b526134008185615f2d565b50612fd0565b61341e915060803d8111610e1757610e088183615bee565b5f6133ea565b61343b9060203d8111610ee157610ed28183615bee565b61339a565b141590505f8061334e565b8161345591615bee565b61050257835f613339565b965096506020863d8211613490575b8161347c60209383615bee565b81010312610c9c579451958e9590816132bc565b3d915061346f565b9b50919250906134a88b85616488565b6101000361010081116135925760ff1061357e57908b929160405163348051d760e11b815284600482015284816024815f51602061a8b65f395f51905f525afa80156104e357606a60209161355d938891613564575b506040519283915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018883820152030190601f1982018152615bee565b5f9b61326f565b61357891503d808a833e6111228183615bee565b5f6134fe565b634e487b7160e01b8c52601160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b6135ae6184e3565b50613213565b634e487b7160e01b8a52604160045260248afd5b9092506020813d82116135f3575b816135e360209383615bee565b81010312610c9c5751915f612ccd565b3d91506135d6565b50612062565b602091925061360e616495565b82828601015201908591612052565b848101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c579085916136668285615f2d565b5201612034565b50346101f057806003193601126101f05760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106136cc576102b1856102a581870382615bee565b82546001600160a01b03168452602090930192600192830192016136b5565b50346101f057806003193601126101f05760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061374a576102b1856102a581870382615bee565b82546001600160a01b0316845260209093019260019283019201613733565b50346101f057806003193601126101f057601d5461378681615e80565b6137936040519182615bee565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106138975786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106137ff5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061386c575050505050602080600192970193019301909286959492936137f2565b909192939460208061388a600193605f198782030189528951615c51565b9701950193929101613848565b6040516138a381615bb8565b82546001600160a01b031681526001830180546138bf81615e80565b916138cd6040519384615bee565b8183528a526020808b20908b9084015b8382106139035750505050600192826020928360029501528152019201920191906137c3565b60016020819260405161391a81610720818a615dff565b8152019301910190916138dd565b50346101f057806003193601126101f05760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110613987576102b1856102a581870382615bee565b82546001600160a01b0316845260209093019260019283019201613970565b50346101f057806003193601126101f0576001610ca06040516139c98282615bee565b60648152601f1982019081366020830137845b60648110614d0a575083604051916139f48584615bee565b60648352865b848110614cee575086915b614445575b505083805b614401575b50508260405191613a258484615bee565b606483528036602085013785825b61439c575b50613a466040519485615bee565b6064845285825b614377575b50509084915b613aae575b50509080929181935b613a6e578280f35b606384101561214557613a818482615f2d565b515193828101948582116121315790613aa686612106869798946120fe889688615f2d565b019392613a66565b8360648310156143715750604051634b88b8ad60e11b815291602083600481895f51602061a8b65f395f51905f525af1928315610ce757869361433e575b508515613ef057858060405160208101906370a0823160e01b825230602482015260248152613b1c604482615bee565b51905f51602061a8f65f395f51905f525afa50613b3a61085d617d2f565b50613b43616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612663576108aa8187613b779301600e55615d83565b905560018060a01b0360115416600f5460e01b60105490613b966180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a206040516020810190613bda81610926888886618099565b5190208b5260205260ff600360408c2001541615613ee2575b6001600160a01b0384165f908152600d60205260409020908a52602052610926613c2c60408b2093604051928391602083019586618099565b519020885260205286604081209187830154926002810154613c4e8186616488565b61257d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697613eaa575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491613e95575b5050613d23618269565b9015908115613e89575b50610ee85750505050613d3e618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818a5f51602061a8f65f395f51905f525af180156104b257613e6d575b506020548690608090613dc5906001600160a01b0316613da78587615f2d565b51604051948580948193638307c65560e01b8352836004840161600f565b03925af19081156104b2578791613e4f575b50613de28286615f2d565b52613ded8185615f2d565b505b60405192631135fc2960e21b84526004840152602083602481895f51602061a8b65f395f51905f525af1908115610ce75785938492613e31575b500191613a58565b613e489060203d8111610ee157610ed28183615bee565b505f613e29565b613e67915060803d8111610e1757610e088183615bee565b5f613dd7565b613e849060203d8111610ee157610ed28183615bee565b613d87565b5f19141590505f613d2d565b81613e9f91615bee565b61050657825f613d19565b955095506020853d8211613eda575b81613ec660209383615bee565b81010312610c9c579351948b949081613c9f565b3d9150613eb9565b613eea6184e3565b50613bf3565b613efa8183615f2d565b515f8060405160208101906370a0823160e01b825230602482015260248152613f24604482615bee565b51905f51602061a8d65f395f51905f525afa50613f4261085d617d2f565b50613f4b616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612b4c576108aa8188613f7f9301600e55615d83565b905560018060a01b0360115416600f5460e01b60105490613f9e6180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f206040516020810190613fe281610926888886618099565b5190205f5260205260ff600360405f2001541615614330575b6001600160a01b0384165f908152600d60205260409020905f5260205261092661403460405f2093604051928391602083019586618099565b5190205f5260205260405f20878101549260028201546140548186616488565b614263575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715612a04575f97614230575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201525f81606481835f51602061a8b65f395f51905f525af18015612a0457614217575b509089929161412d618269565b91901591821561420c575b5050610ee8575050505061414a618da2565b6020805461416691906001600160a01b03166128ed8486615f2d565b03818a5f51602061a8d65f395f51905f525af180156104b2576141f0575b5060205486906080906141a4906001600160a01b03166133ba8587615f2d565b03925af19081156104b25787916141d2575b506141c18286615f2d565b526141cc8185615f2d565b50613def565b6141ea915060803d8111610e1757610e088183615bee565b5f6141b6565b6142079060203d8111610ee157610ed28183615bee565b614184565b141590505f80614138565b6142269193929a505f90615bee565b5f9890915f614120565b9096506020813d821161425b575b8161424b60209383615bee565b81010312610c9c575195816140a6565b3d915061423e565b61426d8186616488565b610100036101008111612b2a5760ff8111612b2a5760405163348051d760e11b8152908b901b600482018190525f826024815f51602061a8b65f395f51905f525afa8015612a0457606a614323916020945f91612b1057506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101845283615bee565b8310156115c55750614059565b6143386184e3565b50613ffb565b9092506020813d8211614369575b8161435960209383615bee565b81010312610c9c5751915f613aec565b3d915061434c565b50613a5d565b818110156143975760209061438a616495565b8282880101520182613a4d565b613a52565b909160648210156143fa578101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c57859182916143f08287615f2d565b5201819291613a33565b9190613a38565b6063811015614440576144148183615f2d565b515185820190818311612c3057916144388261210686956120fe8b98968997615f2d565b019091613a0f565b613a14565b856064831015614ce85750604051634b88b8ad60e11b8152916020836004818b5f51602061a8b65f395f51905f525af1928315613030578893614cb5575b50861561486957878060405160208101906370a0823160e01b8252306024820152602481526144b3604482615bee565b51905f51602061a8f65f395f51905f525afa506144d161085d617d2f565b506144da616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156130f3576108aa818961450e9301600e55615d83565b905560018060a01b0360115416600f5460e01b896010549160ff600360406145346180b0565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b169485825260205281812082516020810190614578816109268c8c86618099565b5190208252602052200154161561485b575b6001600160a01b0384165f908152600d60205260409020908c526020526109266145c360408d2093604051928391602083019586618099565b5190208a52602052886040812091898301549260028101546145e58186616488565b6130d9578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697614823575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161480e575b50506146ba618269565b9015908115614802575b50610ee857505050506146d5618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818c5f51602061a8f65f395f51905f525af18015613059576147e6575b50602054889060809061473e906001600160a01b0316613da78587615f2d565b03925af19081156130595789916147c8575b5061475b8286615f2d565b526147668185615f2d565b505b60405192631135fc2960e21b845260048401526020836024818b5f51602061a8b65f395f51905f525af190811561303057879384926147aa575b500191613a05565b6147c19060203d8111610ee157610ed28183615bee565b505f6147a2565b6147e0915060803d8111610e1757610e088183615bee565b5f614750565b6147fd9060203d8111610ee157610ed28183615bee565b61471e565b5f19141590505f6146c4565b8161481891615bee565b61050657825f6146b0565b955095506020853d8211614853575b8161483f60209383615bee565b81010312610c9c579351948d949081614636565b3d9150614832565b6148636184e3565b5061458a565b6148738183615f2d565b51888060405160208101906370a0823160e01b82523060248201526024815261489d604482615bee565b51905f51602061a8d65f395f51905f525afa506148bb61085d617d2f565b506148c4616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156135b4576108aa816148f692600e55615d83565b9055601154600f546010548b926001600160a01b03169160e01b6149186180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061495c81610926888886618099565b519020865260205260ff60036040872001541615614ca7575b6001600160a01b0384165f908152600d602052604090209085526020526109266149ae6040862093604051928391602083019586618099565b51902083526020526040822080549360028201546149cc8187616488565b614bdc575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a8b65f395f51905f525afa9788156104b2578798614ba4575b506001908201610100031b5f1901811b198716915f51602061a8b65f395f51905f523b156104fe576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a8b65f395f51905f525af19081156104e3578591614b8f575b5050614aa5618269565b919015918215614b84575b5050610ee85750505050614ac2618da2565b60208054614ade91906001600160a01b03166128ed8486615f2d565b03818c5f51602061a8d65f395f51905f525af1801561305957614b68575b506020548890608090614b1c906001600160a01b03166133ba8587615f2d565b03925af1908115613059578991614b4a575b50614b398286615f2d565b52614b448185615f2d565b50614768565b614b62915060803d8111610e1757610e088183615bee565b5f614b2e565b614b7f9060203d8111610ee157610ed28183615bee565b614afc565b141590505f80614ab0565b81614b9991615bee565b61050257835f614a9b565b965096506020863d8211614bd4575b81614bc060209383615bee565b81010312610c9c579451958e959081614a1e565b3d9150614bb3565b9b5091925090614bec8b85616488565b6101000361010081116135925760ff1061357e57908b929160405163348051d760e11b815284600482015284816024815f51602061a8b65f395f51905f525afa80156104e357606a602091614ca093889161356457506040519283915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018883820152030190601f1982018152615bee565b5f9b6149d1565b614caf6184e3565b50614975565b9092506020813d8211614ce0575b81614cd060209383615bee565b81010312610c9c5751915f614483565b3d9150614cc3565b50613a0a565b6020919250614cfb616495565b828286010152019085916139fa565b848101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c57908591614d538285615f2d565b52016139dc565b50346101f057806003193601126101f05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b604482015281816064815f51602061a8b65f395f51905f525afa9081156101f357614de3916020918491614fbf575b50604051809381926371ee464d60e01b8352604060048401526044830190615c51565b6301260bd460248301520381855f51602061a8b65f395f51905f525af180156101f357614f90575b5060405161183e808201908282106001600160401b03831117614f7c57604091839161905883395f51602061a8d65f395f51905f5281525f51602061a8f65f395f51905f52602082015203019082f08015611db55760018060a01b03166bffffffffffffffffffffffff60a01b60205416176020555f51602061a8b65f395f51905f523b156101f057806040516318caf8e360e31b81525f51602061a8f65f395f51905f52600482015260406024820152600460448201526308ca482b60e31b60648201528181608481835f51602061a8b65f395f51905f525af180156101f357614f67575b50505f51602061a8b65f395f51905f523b156101f057806040516318caf8e360e31b81525f51602061a8d65f395f51905f5260048201526040602482015260056044820152640a68ca482b60db1b60648201528181608481835f51602061a8b65f395f51905f525af180156101f3576101df5750f35b81614f7191615bee565b6101f057805f614ef1565b634e487b7160e01b84526041600452602484fd5b6020813d602011614fb7575b81614fa960209383615bee565b81010312610c9c5751614e0b565b3d9150614f9c565b614fd391503d8086833e6111228183615bee565b5f614dc0565b50346101f05760403660031901126101f05750602061500e604051614ffd81615bb8565b6004358152602435838201526160ae565b604051908152f35b905034610c9c5761502636615b99565b90919015615b92576001905b60205463549387df60e11b82525f600483018190525f51602061a8d65f395f51905f5260248401525f51602061a8f65f395f51905f52604484015290829060649082906001600160a01b03165afa908115612a04575f91615b78575b506002821015615b6457836001831491825f146156fb576150ae90615f1d565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f3576156e6575b508060405160208101906370a0823160e01b825230602482015260248152615121604482615bee565b51905f51602061a8d65f395f51905f525afa5061513f61085d617d2f565b50615148616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa81600161517d9301600e55615d83565b905560018060a01b0360115416600f5460e01b6010549061519c6180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906151e081610926888886618099565b519020895260205260ff600360408a20015416156156d8575b6001600160a01b0384165f908152600d602052604090209088526020526109266152326040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546152558186616488565b611023578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce757869761569f575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161568a575b505061532a618269565b901590811561567e575b50610ee85750505050615345618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f51602061a8d65f395f51905f525af180156104e35761565f575b505b6040516370a0823160e01b8152306004820152926020846024815f51602061a8d65f395f51905f525afa9384156104e357859461562b575b506040516370a0823160e01b8152306004820152916020836024815f51602061a8f65f395f51905f525afa928315610ce75786936155f4575b506080826154329560018060a01b03602054169089604051809981958294638307c65560e01b845260048401615fc9565b03925af1938415610ce75786946155d3575b50835161544f578580f35b15615512576040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ce75786916154de575b5061549992610c1b91616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ca8578491610c705750610c1b90610c6793616083565b90506020813d60201161550a575b816154f960209383615bee565b81010312610c9c575161549961548b565b3d91506154ec565b6040516370a0823160e01b81523060048201529193916020816024815f51602061a8d65f395f51905f525afa908115610ce757869161559f575b50610c1b9061555a93616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ca8578491610d855750610d8092610c1b91616083565b90506020813d6020116155cb575b816155ba60209383615bee565b81010312610c9c575161555a61554c565b3d91506155ad565b6155ed91945060803d608011610e1757610e088183615bee565b925f615444565b9392506020843d602011615623575b8161561060209383615bee565b81010312610c9c57925191926080615401565b3d9150615603565b9093506020813d602011615657575b8161564760209383615bee565b81010312610c9c5751925f6153c8565b3d915061563a565b6156779060203d602011610ee157610ed28183615bee565b505f61538e565b5f19141590505f615334565b8161569491615bee565b61050657825f615320565b955095506020853d6020116156d0575b816156bc60209383615bee565b81010312610c9c57935194899490816152a6565b3d91506156af565b6156e06184e3565b506151f9565b816156f091615bee565b61050257835f6150f8565b6157059150615f10565b5183105f51602061a8b65f395f51905f523b15610c9c5760405190632631f2b160e11b825260048201525f816024815f51602061a8b65f395f51905f525afa8015612a0457615b4f575b50838060405160208101906370a0823160e01b825230602482015260248152615779604482615bee565b51905f51602061a8d65f395f51905f525afa5061579761085d617d2f565b506157a0616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016157d59301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906157f46180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061583881610926888886618099565b519020895260205260ff600360408a2001541615615b41575b6001600160a01b0384165f908152600d6020526040902090885260205261092661588a6040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546158ad8186616488565b615a6b575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697615a32575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491615a1d575b505086615987618269565b919015918215615a12575b5050610ee857505050506159a4618da2565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f51602061a8d65f395f51905f525af180156104e3576159f3575b50615390565b615a0b9060203d602011610ee157610ed28183615bee565b505f6159ed565b14159050875f615992565b81615a2791615bee565b61050657825f61597c565b955095506020853d602011615a63575b81615a4f60209383615bee565b81010312610c9c57935194899490816158ff565b3d9150615a42565b90919250615a798185616488565b61010003610100811161160e5760ff811161160e5760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a8b65f395f51905f525afa801561160357606a615b30916020948d916115e957506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615bee565b8810156115c55750908792916158b2565b615b496184e3565b50615851565b615b5c9194505f90615bee565b5f925f61574f565b634e487b7160e01b5f52602160045260245ffd5b615b8c91503d805f833e6102158183615bee565b5f61508e565b5f90615032565b6040906003190112610c9c57600435906024358015158103610c9c5790565b604081019081106001600160401b03821117612b4c57604052565b606081019081106001600160401b03821117612b4c57604052565b90601f801991011681019081106001600160401b03821117612b4c57604052565b60206040818301928281528451809452019201905f5b818110615c325750505090565b82516001600160a01b0316845260209384019390920191600101615c25565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310615ca757505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210615d015750505060208060019297019301930191939290615c98565b82516001600160e01b031916845260209384019390920191600190910190615ce2565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310615d5657505050505090565b9091929394602080615d74600193603f198682030187528951615c51565b97019301930191939290615d47565b600e54811015615d9b57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f54811015615d9b57601f5f5260205f2001905f90565b90600182811c92168015615df5575b6020831014615de157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615dd6565b5f9291815491615e0e83615dc7565b8083529260018116908115615e635750600114615e2a57505050565b5f9081526020812093945091925b838310615e49575060209250010190565b600181602092949394548385870101520191019190615e38565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b038111612b4c5760051b60200190565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151615eca81615e80565b92615ed86040519485615bee565b81845260208085019260051b820101928311610c9c57602001905b828210615f005750505090565b8151815260209182019101615ef3565b805115615d9b5760200190565b805160011015615d9b5760400190565b8051821015615d9b5760209160051b010190565b90816020910312610c9c57518015158103610c9c5790565b90816020910312610c9c575190565b9190826040910312610c9c57604051615f8081615bb8565b6020808294805184520151910152565b90608082820312610c9c57615fc1906040805193615fad85615bd3565b805185526020810151602086015201615f68565b604082015290565b92919060a08401935f81525f51602061a8d65f395f51905f5260208201525f51602061a8f65f395f51905f5260408201526002821015615b645760809160608201520152565b92919060a08401935f81525f51602061a8f65f395f51905f5260208201525f51602061a8d65f395f51905f5260408201526002821015615b645760809160608201520152565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b91908203918211612b2a57565b811561609a570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715612b2a5760206160e592015190616090565b90565b6001600160401b038111612b4c57601f01601f191660200190565b602081830312610c9c578051906001600160401b038211610c9c570181601f82011215610c9c57805190616136826160e8565b926161446040519485615bee565b82845260208383010111610c9c57815f9260208093018386015e8301015290565b601180546001600160a01b0319165f51602061a8d65f395f51905f52179055565b601180546001600160a01b0319165f51602061a8f65f395f51905f52179055565b602081830312610c9c578051906001600160401b038211610c9c570181601f82011215610c9c5780516161d981615e80565b926161e76040519485615bee565b81845260208085019260061b84010192818411610c9c57602001915b838310616211575050505090565b60206040916162208486615f68565b815201920191616203565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b81811061626f5750505090565b8251845260209384019390920191600101616262565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151906162b982615e80565b926162c76040519485615bee565b82845260208085019360051b820101918211610c9c57602001915b8183106162ef5750505090565b8251600a811015610c9c578152602092830192016162e2565b60085460ff1680156163175790565b50604051630667f9d760e41b81525f51602061a8b65f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a8b65f395f51905f525afa908115612a04575f91616371575b50151590565b90506020813d60201161639b575b8161638c60209383615bee565b81010312610c9c57515f61636b565b3d915061637f565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151906163d782615e80565b926163e56040519485615bee565b82845260208085019360051b820101918211610c9c57602001915b81831061640d5750505090565b82516001600160a01b0381168103610c9c57815260209283019201616400565b905f51602061a8b65f395f51905f523b15610c9c576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b5f61648691615bee565b565b91908201809211612b2a57565b604051906164a282615bd3565b815f81525f602082015260408051916164ba83615bb8565b5f83525f60208401520152565b5f51602061a8b65f395f51905f523b15610c9c5760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b5f5b815181101561654b5761652b8183615f2d565b51600a811015615b645760051461654457600101616518565b5050600190565b50505f90565b5f5b815181101561654b576165668183615f2d565b51600a811015615b645760091461654457600101616553565b5f5b815181101561654b576165948183615f2d565b51600a811015615b645760081461654457600101616581565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526165e5606484615bee565b82516001600160a01b038316915f91829182855af190616603617d2f565b82616663575b5081616658575b501561661b57505050565b616653616486936040519063095ea7b360e01b602083015260248201525f60448201526044815261664d606482615bee565b82617dad565b617dad565b90503b15155f616610565b8051919250811591821561667b575b5050905f616609565b61668e9250602080918301019101615f41565b5f80616672565b604051906166a4606083615bee565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af18015612a0457616758915f91617d15575b50615f10565b5161010052606060a08190526040516167b4916167759082615bee565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261010051617e70565b60a051505f8061683c61686a6040516167cf60a05182615bee565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190615c51565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af18015612a04576168d7915f91617cfb575b50616551565b90604051916168e760a084615bee565b60048352608036602085013715617cee575f5b61690383615f10565b526103e8610100510461691583615f1d565b52815160021015615d9b5760a05182016101005160011c9052815160031015615d9b5761010051608083015260405163155adc9160e31b8152935f858061696286868b8a6004860161622b565b0381836001600160a01b0386165af1948515612a04575f95617cd2575b5061699261698c86615f10565b516160ae565b85515f19810191908211612b2a576169b061698c616a0a9389615f2d565b60a05160405192906169c29084615bee565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152617ed7565b616a1661698c86615f10565b85515f198101908111612b2a57616ab1616aca5f93616a3961698c86958c615f2d565b60a051604051929190616a4c9084615bee565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190615c51565b916044840152606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa5060a051604051616b3091616af39082615bee565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617f0c565b616b82616b3c86615f10565b5151604060e081905280519190616b539083615bee565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152617e70565b616bd36020616b9087615f10565b51015160e05180519190616ba49083615bee565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152617e70565b616bdf61698c86615f10565b9460e05150616c1e8660e05151616bf860e05182615bee565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617f50565b616c26616495565b5083515f198101908111612b2a57616c3e9085615f2d565b516005818102048103612b2a575f8060e0515160208101906370a0823160e01b825230602482015260248152616c75604482615bee565b51908b5afa50616c8661085d617d2f565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e54600160401b811015612b4c576108aa816001616cd79301600e55615d83565b90556011546001600160a01b031661014052600f546010549060e01b616cfb6180b0565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e051516020810190616d4481610926888886618099565b5190205f5260205260ff600360e0515f2001541615617cc4575b610140516001600160a01b03165f908152600d60205260409020905f52602052610926616d9c60e0515f209360e05151928391602083019586618099565b5190205f5260205260e0515f206001810154916002820154616dbe8185616488565b617bae575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a8b65f395f51905f525afa958615617b6e575f96617b7a575b506001908201610100031b5f1901811b1985165f51602061a8b65f395f51905f523b15610c9c5760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a8b65f395f51905f525af18015617b6e57617b59575b50616e9a618269565b9015918215617b4b575b5050617a57575050616eb4618da2565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a8b65f395f51905f525af180156173ab5761012051608052617a24575b5060015b8451811015617478575f80616fa9616fcf616f0c85615daf565b50616f17868b615f2d565b51616fbb610720616f8360e0515194616f3260a05187615bee565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e0515192838092615dff565b60e05151635821efa160e01b602082015260a05160248201529586946084860190615c51565b84810360231901604486015290615c51565b90606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa50616ff161698c8284615f2d565b5f8061706661708a8c617004878c615f2d565b5160e051519161701660e05184615bee565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190615c51565b60448401929092526001600160a01b0316606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa508460808a896170ce6170b1878c615f2d565b5160e05151638307c65560e01b8152958694859460048601616055565b03816101205160018060a01b038a165af19081156173ab57610120519161745a575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156174405761713d617148916a084595161401484a000000617135878c615f2d565b519102616090565b9160e05101516160ae565b9161718c8260e0515161715d60e05182615bee565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617f50565b6171cf8160e051516171a060e05182615bee565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617f50565b6172128360e051516171e360e05182615bee565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617f50565b60c051156173ba5760a05160e05151617346946172eb93909261728192919061723b9083615bee565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617f93565b60a05160e0515191906172949083615bee565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283617ed7565b60a05160e0515191906172fe9083615bee565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289617ed7565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a8b65f395f51905f525af19182156173ab5760019261738d575b5001616ef2565b6173a49060203d8111610ee157610ed28183615bee565b505f617386565b60e051513d61012051823e3d90fd5b6173e3906173d461743b946173cd616695565b908d617f93565b6173dc616695565b908b617f93565b60e05151906173f460a05183615bee565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617f93565b617346565b634e487b7160e01b61012051526011600452602461012051fd5b617472915060803d8111610e1757610e088183615bee565b5f6170f0565b505091509193925060696101005102610100518104606914610100511517156174405760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af180156173ab576174fc916101205191617a07575b5061657f565b156178aa576175648460e0515161751560a05182615bee565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617f50565b60e051805194906175759086615bee565b6001855260e051601f190136602087013761758f85615f10565b5260e0515163155adc9160e31b81526101205181806175b48888878c6004860161622b565b03816101205160018060a01b0388165af1908161788f575b506178235760016175db617fc8565b6308c379a014617795575b6173ab576175f5608094615f10565b519461761860e0515196879586948594638307c65560e01b865260048601616055565b61012051919003926001600160a01b03165af19081617778575b50617716576001617641617fc8565b6308c379a014617693575b6173ab575b61648660e0515161766460e05182615bee565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617f0c565b61769b617fe3565b806176a7575b5061764c565b6101205160a05160e051519193506177109291906176c59082615bee565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152618055565b5f6176a1565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6177909060803d608011610e1757610e088183615bee565b617632565b61779d617fe3565b806177a9575b506175e6565b6101205160a05160e0515191935061781d9291906177c79082615bee565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152618055565b5f6177a3565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6178a5903d8061012051833e611da68183615bee565b6175cc565b60a05160e0515161790c918691906178c29082615bee565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617f50565b60e0518051949061791d9086615bee565b6001855260e051601f190136602087013761793785615f10565b5260e051519363155adc9160e31b855261012051858061795d8488878c6004860161622b565b03816101205160018060a01b0388165af19081156173ab57608095617986926179ec5750615f10565b51946179a960e0515196879586948594638307c65560e01b865260048601616055565b61012051919003926001600160a01b03165af180156173ab576179cd575b50617651565b6179e59060803d608011610e1757610e088183615bee565b505f6179c7565b617a02903d8061012051833e611da68183615bee565b616752565b617a1e91503d8061012051833e6104d58183615bee565b5f6174f6565b6020813d602011617a4f575b81617a3d60209383615bee565b81010312610c9c57516080525f616eee565b3d9150617a30565b545f51602061a8b65f395f51905f523b15617b445760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a8b65f395f51905f525af180156173ab57617b29575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61012051617b3691615bee565b61012051617b445780617ac7565b6101205180fd5b600502141590505f80616ea4565b5f617b6391615bee565b5f610120525f616e91565b60e051513d5f823e3d90fd5b9095506020813d602011617ba6575b81617b9660209383615bee565b81010312610c9c57519481616e14565b3d9150617b89565b617bb88185616488565b610100036101008111612b2a5760ff8111612b2a5760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a8b65f395f51905f525afa918215617b6e57617c74606a6020946001945f91617caa575b5060e051519586915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615bee565b1b836005021015617c855750616dc3565b60e0515162461bcd60e51b815260206004820152908190611109906024830190615c51565b617cbe91503d805f833e6111228183615bee565b5f617c12565b617ccc6184e3565b50616d5e565b617ce79195503d805f833e611da68183615bee565b935f61697f565b61271061010051046168fa565b617d0f91503d805f833e6104d58183615bee565b5f6168d1565b617d2991503d805f833e6102158183615bee565b5f616752565b3d15617d59573d90617d40826160e8565b91617d4e6040519384615bee565b82523d5f602084013e565b606090565b905f51602061a8b65f395f51905f523b15610c9c5760405191638466f41560e01b8352600483015260248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b8151617dd8926001600160a01b03909216915f91829160200182855af1617dd2617d2f565b91618428565b80519081617de4575050565b602080617df5938301019101615f41565b15617dfc57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6160e59392606092825260208201528160408201520190615c51565b5f51602061a8b65f395f51905f523b15610c9c57617eb8915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190615c51565b03815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b905f51602061a8b65f395f51905f523b15610c9c575f91617eb86040519485938493636cd1e26960e11b855260048501617e54565b5f610926617f39829360405192839163104c13eb60e21b6020840152602060248401526044830190615c51565b6020815191016a636f6e736f6c652e6c6f675afa50565b617f7f617f395f93928493604051938492632d839cb360e21b6020850152604060248501526064840190615c51565b90604483015203601f198101835282615bee565b905f51602061a8b65f395f51905f523b15610c9c575f91617eb86040519485938493630389490b60e61b855260048501617e54565b5f9060033d11617fd457565b905060045f803e5f5160e01c90565b5f60443d106160e5576040513d600319016004823e8051913d60248401116001600160401b0384111761804f57828201928351916001600160401b038311618047573d8401600319018584016020011161804757506160e592910160200190615bee565b949350505050565b92915050565b618087617f395f93926109268594604051948593634b5c427760e01b6020860152604060248601526064850190615c51565b83810360231901604485015290615c51565b60209291908391805192839101825e019081520190565b6180bb601454615dc7565b618178576040519081826020600e549283815201600e5f5260205f20925f5b81811061815f5750506180ef92500383615bee565b81518060051b9080820460201490151715612b2a5761810d816160e8565b9061811b6040519283615bee565b80825261812a601f19916160e8565b013660208301375f5b835181101561815a578061814960019286615f2d565b5160208260051b8501015201618133565b509150565b84548352600194850194879450602090930192016180da565b6040516160e581610720816014615dff565b60078101906181998254615dc7565b61825557600191500190604051808360208295549384815201905f5260205f20925f5b81811061823c5750506181d192500383615bee565b81518060051b9080820460201490151715612b2a576181ef816160e8565b906181fd6040519283615bee565b80825261820c601f19916160e8565b013660208301375f5b835181101561815a578061822b60019286615f2d565b5160208260051b8501015201618215565b84548352600194850194879450602090930192016181bc565b506160e56107209160405192838092615dff565b5f806020600f5460e01b6182b76024618282600d61818a565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615bee565b6011549151916001600160a01b03165afa906182d1617d2f565b601054909290600581901b906001600160fb1b03811603612b2a575f938051602081115f1461835c57506020905b5f925b82841061831157505050509190565b9091929561831f8783616488565b8351811015615d9b57830160200151600388901b91906001600160f81b031916881560088a8504141715612b2a576001921c179601929190618302565b906182ff565b905f806020600285015460e01b61837d60246182828861818a565b60048601549151916001600160a01b03165afa600361839a617d2f565b930154600581901b906001600160fb1b03811603612b2a575f938051602081115f1461842257506020905b5f925b8284106183d757505050509190565b909192956183e58783616488565b8351811015615d9b57830160200151600388901b91906001600160f81b031916881560088a8504141715612b2a576001921c1796019291906183c8565b906183c5565b9061844c575080511561843d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061847d575b61845d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15618455565b9080601f83011215610c9c57815161849d81615e80565b926184ab6040519485615bee565b81845260208085019260051b820101928311610c9c57602001905b8282106184d35750505090565b81518152602091820191016184c6565b601154600f546010546001600160a01b03909216915f9160e01b618507600d61818a565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061854081610926888886618099565b5190205f5260205260ff600360405f20015416618d61575f51602061a8b65f395f51905f523b15610c9c5760405163266cf10960e01b81525f81600481835f51602061a8b65f395f51905f525af18015612a0457618d4c575b506185a4600d618362565b90506040516365bc948160e01b81528660048201528581602481835f51602061a8b65f395f51905f525af1908115610ce7578691618ce4575b50805161864e57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618cdc578160206186698361869a95615f2d565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a8b65f395f51905f525afa928315613030578893618ca9575b508215618c51575b6186cc8282615f2d565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a8b65f395f51905f525afa908115618c46578b91618c15575b50618727600d618362565b91909382155f14618c0e575f19905b5f51602061a8b65f395f51905f523b15618bf5576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a8b65f395f51905f525af18015618b7a57908d91618bf9575b50506187a7600d618362565b601154909491506001600160a01b03165f51602061a8b65f395f51905f523b15618bf5576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a8b65f395f51905f525af18015618bea57908c91618bd1575b505082618bc6575b505015618bbc578793889360ff60135416618a41575b6001868601610100031b5f1901851b16841c8103618a335750906188c1917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896109266188968d604051928391602083019586618099565b5190206188a38686615f2d565b51906040519283528a602084015260408301526060820152a1615f2d565b51906040519060808201928284106001600160401b03851117612b4c5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019061892a816109268d8d86618099565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019061898581610926888886618099565b519020855260205260ff600360408620015416156189d6576040948452600d6020528484209084526020526109266189ca858520938651928391602083019586618099565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01618650565b9450618a8c9350618a528383615f2d565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a8b65f395f51905f525afa948515611603578a95618b89575b50618ab886600d618ebb565b959096618ac681600d618f94565b60115490939192906001600160a01b03165f51602061a8b65f395f51905f523b15618b85576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a8b65f395f51905f525af18015618b7a57908d91618b61575b505087618b59575b50949561883b575093509150600190618a3b565b96505f618b45565b81618b6b91615bee565b618b76578b5f618b3d565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211618bb4575b81618ba460209383615bee565b81010312610c9c5751935f618aac565b3d9150618b97565b9150600190618a3b565b141590505f80618825565b81618bdb91615bee565b618be6578a5f61881d565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81618c0391615bee565b618b76578b5f61879b565b8c90618736565b90506020813d8211618c3e575b81618c2f60209383615bee565b81010312610c9c57515f61871c565b3d9150618c22565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5618ca1618c7f8484615f2d565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a16186c2565b9092506020813d8211618cd4575b81618cc460209383615bee565b81010312610c9c5751915f6186ba565b3d9150618cb7565b505050618958565b90503d8087833e618cf58183615bee565b81016040828203126104fe5781516001600160401b038111618d485781618d1d918401618486565b916020810151906001600160401b038211618d4457618d3d929101618486565b505f6185dd565b8880fd5b8780fd5b618d599194505f90615bee565b5f925f618599565b91939092505f52600d60205260405f20905f52602052610926618d9360405f2093604051928391602083019586618099565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580618e79575b505f60105560ff1960135416601355618ded601454615dc7565b80618df55750565b601f8111600114618e0757505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110618e6e57505060145f525f602081208160145555565b5f8155600101618e55565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618eb05750618dd3565b5f8155600101618ea3565b91905f5b6101008110618ed257505090505f905f90565b8060ff0360ff8111612b2a576004850154600190911b906001600160a01b03165f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a8b65f395f51905f525af18015612a0457618f84575b50618f5e84618362565b81618f7a575b50618f7157600101618ebf565b92505060019190565b905015155f618f64565b5f618f8e91615bee565b5f618f54565b91905f5b6101008110618fab57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a8b65f395f51905f525af18015612a0457619047575b5061902a84618362565b8161903d575b50618f7157600101618f98565b905015155f619030565b5f61905191615bee565b5f61902056fe60c03461012457601f61183e38819003918201601f19168301916001600160401b0383118484101761012857808492604094855283398101031261012457610052602061004b8361013c565b920161013c565b6001600160a01b039182166080521660a0526040516116ed9081610151823960805181818160be015281816103cc015281816104000152818161053d01528181610671015281816106a5015281816107fe015281816108320152818161099201528181610bc601528181610c7901528181610e4701528181610f6901528181610f9d01528181611016015281816111f6015281816112d601526113bb015260a051818181608a015281816101cf0152818161045d0152818161074801528181610b7c01528181610d6e0152610da30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101245756fe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461096057806348bd7dfd146108785780638307c655146106d7578063a9270fbe14610442578063aad6e4881461013f5763ecbbc0331461005b575f80fd5b3461013b57602036600319011261013b5760405161007a606082610a8e565b60028152602081019060403683377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100bb82610ac8565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ef82610ad5565b52604051918291602083019060208452518091526040830191905f5b818110610119575050500390f35b82516001600160a01b031684528594506020938401939092019160010161010b565b5f80fd5b3461013b57608036600319011261013b57610158610a0c565b610160610a22565b6064359067ffffffffffffffff821161013b573660238301121561013b5781600401359161018d83610ab0565b9261019b6040519485610a8e565b8084526024602085019160051b8301019136831161013b57602401905b828210610432575050506001600160a01b038381167f00000000000000000000000000000000000000000000000000000000000000009091168181149291831591826103fe575b82156103aa575b508115610397575b5061033b5782519361021f85610ab0565b9461022d6040519687610a8e565b80865261023c601f1991610ab0565b015f5b8181106103185750509061025291610da1565b915f5b81518110156102c7578061026b60019284610ae5565b5161027586610ac8565b518111156102c1576102919061028a87610ac8565b5111610fcf565b6102a561029e8285610ae5565b5185611291565b6102af8288610ae5565b526102ba8187610ae5565b5001610255565b50610291565b846040518091602082016020835281518091526020604084019201905f5b8181106102f3575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102e5565b60209060405161032781610a72565b5f81525f8382015282828a0101520161023f565b60405163643c60f360e01b815260206004820152602d60248201527f546869732061646170746572206f6e6c7920737570706f72747320465241583c60448201526c2d3e534652415820737761707360981b6064820152608490fd5b6001600160a01b0383161490508561020e565b9091506001600160a01b0383169081141590816103ca575b509086610206565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866103c2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682141592506101ff565b81358152602091820191016101b8565b3461013b5761045036610a38565b6001600160a01b039182167f000000000000000000000000000000000000000000000000000000000000000090921682811493508315929190836106a3575b831561064f575b50821561063c575b505061033b57604051906104b3606083610a8e565b60028252602082019060403683371561052e576001600160801b036104d783610ac8565b526001600160801b036104e983610ad5565b52905b604051918291602083019060208452518091526040830191905f5b818110610515575050500390f35b8251845285945060209384019390920191600101610507565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f9161060a575b5061058784610ad5565b52602061059384610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f916105cd575b506105c683610ac8565b52906104ec565b90506020813d6020116105f7575b816105e860209383610a8e565b8101031261013b5751836105bc565b3d91506105db565b6040513d5f823e3d90fd5b90506020813d602011610634575b8161062560209383610a8e565b8101031261013b57518461057d565b3d9150610618565b6001600160a01b0316149050828061049e565b9092506001600160a01b03831690811415908161066f575b509184610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905084610667565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316831415935061048f565b3461013b5760a036600319011261013b576106f0610a0c565b6106f8610a22565b90606435600281101561013b57604051906060820182811067ffffffffffffffff821117610864576040525f82525f602083015260405161073881610a72565b5f808252602082015260408301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416818114159182610830575b82156107dc575b5081156107c9575b5061033b576080936107a49360843593610af9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b6001600160a01b0386161490508561078f565b9091506001600160a01b0386169081141590816107fc575b509086610787565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866107f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168214159250610780565b634e487b7160e01b5f52604160045260245ffd5b3461013b5761088636610a38565b50505060405161089760c082610a8e565b600581526020810160a036823760016108af83610ac8565b5260026108bb83610ad5565b5281516002101561094c576003606083015281516003101561094c576005608083015281516004101561094c57600860a0830152604051906020820192602083525180935260408201905f935b8085106109155783830384f35b9091825190600a8210156109385760208160019382935201930194019390610908565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461013b57604036600319011261013b5760408051906109808183610a8e565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166109cc84610ac8565b52815192839260208401916020855251809252830191905f5b8181106109f3575050500390f35b82518452859450602093840193909201916001016109e5565b602435906001600160a01b038216820361013b57565b604435906001600160a01b038216820361013b57565b606090600319011261013b57600435906024356001600160a01b038116810361013b57906044356001600160a01b038116810361013b5790565b6040810190811067ffffffffffffffff82111761086457604052565b90601f8019910116810190811067ffffffffffffffff82111761086457604052565b67ffffffffffffffff81116108645760051b60200190565b80511561094c5760200190565b80516001101561094c5760400190565b805182101561094c5760209160051b010190565b94939092918582158015610d60575b610d585750610b179084610da1565b9160028110928315610938578115918280610d46575b15610d0e5750610b3f610b4791610ac8565b518310610fcf565b5a92156109385715610cfd57610b5d90836111d9565b84525b5a8103908111610ce95760208401526001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911603610c565760405163ef8b30f760e01b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610c24575b505b60405190610c0d82610a72565b8152670de0b6b3a764000060208201526040830152565b90506020813d602011610c4e575b81610c3f60209383610a8e565b8101031261013b57515f610bfe565b3d9150610c32565b60405163266d6a8360e11b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610cb7575b50610c00565b90506020813d602011610ce1575b81610cd260209383610a8e565b8101031261013b57515f610cb1565b3d9150610cc5565b634e487b7160e01b5f52601160045260245ffd5b610d07908361100c565b8452610b60565b60011480610d34575b610d22575b50610b47565b610b3f610d2e91610ad5565b5f610d1c565b50610d3e81610ad5565b518311610d17565b50610d5082610ac8565b518411610b2d565b955050505050565b506001600160a01b038581167f0000000000000000000000000000000000000000000000000000000000000000909116148015610b08575060028310610b08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691168181149283159283610f9b575b8315610f47575b508215610f34575b505061033b5760405190610e00606083610a8e565b60028252604036602084013715610e38576001600160801b03610e2282610ac8565b526001600160801b03610e3482610ad5565b5290565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f91610f02575b50610e9183610ad5565b526020610e9d83610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f91610ed0575b50610e3482610ac8565b90506020813d602011610efa575b81610eeb60209383610a8e565b8101031261013b57515f610ec6565b3d9150610ede565b90506020813d602011610f2c575b81610f1d60209383610a8e565b8101031261013b57515f610e87565b3d9150610f10565b6001600160a01b03161490505f80610deb565b9092506001600160a01b038316908114159081610f67575b50915f610de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610f5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610ddc565b15610fd657565b60405162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b6044820152606490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911680820361112d57604051630a28a47760e01b81526004810184905290602082602481865afa9182156105ff575f926110f7575b50915f936110836110b39360209530903390611400565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af19081156105ff575f916110c8575090565b90506020813d6020116110ef575b816110e360209383610a8e565b8101031261013b575190565b3d91506110d6565b929091506020833d602011611125575b8161111460209383610a8e565b8101031261013b579151905f61106c565b3d9150611107565b60405163b3d7f6b960e01b81526004810184905290602082602481865afa9182156105ff575f926111a3575b50915f9361117983836020966111746110b397303384611400565b61144b565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b929091506020833d6020116111d1575b816111c060209383610a8e565b8101031261013b579151905f611159565b3d91506111b3565b5f916020916001600160a01b0316906111f481303385611400565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690828214851461125957604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481016110b3565b61126781836110b39561144b565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b6001906040516112a081610a72565b5f80825260209091015215150361139e576002811061135a5760405163ef8b30f760e01b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f92611326575b506040519161131c83610a72565b8252602082015290565b9091506020813d602011611352575b8161134260209383610a8e565b8101031261013b5751905f61130e565b3d9150611335565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e7420496e206d7573742062652067726561746572207468616e20316044820152fd5b60405163266d6a8360e11b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f9261132657506040519161131c83610a72565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261144991611444608483610a8e565b6115af565b565b604051636eb1769f60e11b81523060048201526001600160a01b0392831660248201819052939092821690602084604481855afa9384156105ff575f94611563575b508301809311610ce9575f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526114c6606487610a8e565b85519082855af1906114d661161a565b82611531575b5081611526575b50156114ee57505050565b611444611449936040519063095ea7b360e01b602083015260248201525f604482015260448152611520606482610a8e565b826115af565b90503b15155f6114e3565b80519192508115918215611549575b5050905f6114dc565b61155c9250602080918301019101611597565b5f80611540565b9093506020813d60201161158f575b8161157f60209383610a8e565b8101031261013b5751925f61148d565b3d9150611572565b9081602091031261013b5751801515810361013b5790565b5f806115d79260018060a01b03169360208151910182865af16115d061161a565b9083611659565b80519081151591826115ff575b50506115ed5750565b635274afe760e01b5f5260045260245ffd5b6116129250602080918301019101611597565b155f806115e4565b3d15611654573d9067ffffffffffffffff82116108645760405191611649601f8201601f191660200184610a8e565b82523d5f602084013e565b606090565b9061167d575080511561166e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806116ae575b61168e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561168656fea264697066735822122067f54ef465d21af621c8dd49b39e0406a28ba995a2dfce93f120df14a9a875d164736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a663b02cf0a4b149d2ad41910cb81e23e1c41c32000000000000000000000000853d955acef822db058eb8505911ed77f175b99e73746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220d45ad83531160355d9201b068ea13f477a68f6bf65085117ad53d514b7e0860d64736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"604:8022:73:-:0;;;;;;3166:4:2;604:8022:73;;3166:4:2;604:8022:73;;;3166:4:2;604:8022:73;3166:4:2;604:8022:73;;1038:4:12;604:8022:73;;;1038:4:12;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;604:8022:73;;;;;;;;;:::i;:::-;564:29:65;604:8022:73;;-1:-1:-1;;;604:8022:73;;;;;564:29:65;;604:8022:73;;;;:::i;:::-;;;;-1:-1:-1;;;604:8022:73;;;;;564:29:65;;604:8022:73;;;;:::i;:::-;564:29:65;604:8022:73;;-1:-1:-1;;;604:8022:73;;;;564:29:65;;;604:8022:73;;;564:29:65;604:8022:73;;;564:29:65;604:8022:73;;;-1:-1:-1;;604:8022:73;;;;;-1:-1:-1;;;;;;;;;;;604:8022:73;;564:29:65;604:8022:73;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;604:8022:73;;;;;;;;;;;-1:-1:-1;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;;;;564:29:65;604:8022:73;;;;;;;;-1:-1:-1;;;;;;;;;;;604:8022:73;;;;;;;;;;;;;;3166:4:2;604:8022:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610160806040526004361015610013575f80fd5b5f905f3560e01c9081630543ce85146150165750806308c4174514614fd95780630a9254e414614d5a5780631510ba6b146139a65780631ed7831c146139285780632ade3880146137695780633e5e3c23146136eb5780633f7286f41461366d5780634a9a720e14611ffe57806366d9a9a014611e505780636f6e799214611ae15780637b2fb7b914611a0357806385226c8114611971578063916a17c6146116e5578063a00872f114611679578063a930fe9214610735578063b5508aa91461069c578063ba414fa614610677578063d0a372591461050a578063d170c3cc146102d4578063e20c9f7114610246578063fa7626d4146102235763ff1100f61461011c575f80fd5b346101f057806003193601126101f05760205460405163549387df60e11b8152600481018390525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f52604482015282918290829060649082906001600160a01b03165afa9081156101f3578291610201575b50515f51602061a8b65f395f51905f523b156101fe576040519063260a5b1560e21b825260048201526002602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b816101e991615bee565b6101f05780f35b80fd5b6040513d84823e3d90fd5b50fd5b61021d91503d8084833e6102158183615bee565b810190615e97565b5f61018d565b50346101f057806003193601126101f057602060ff601e54166040519015158152f35b50346101f057806003193601126101f05760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106102b5576102b1856102a581870382615bee565b60405191829182615c0f565b0390f35b82546001600160a01b031684526020909301926001928301920161028e565b50346101f05760403660031901126101f0576004356001600160a01b03811680820361050657602435916001600160401b03831161050257366023840112156105025782600401359261032684615e80565b936103346040519586615bee565b8085526024602086019160051b830101913683116104fe57602401905b8282106104ee5750505061036483615f10565b51604051906348bd7dfd60e01b82526004820152846024820152846044820152848160648183875af180156104e3576103a49186916104c1575b50616516565b1591845b84518110156104bd576103bb8186615f2d565b51906040519163ecbbc03360e01b83526004830152868260248183875af180156104b2578561048a916001948a91610490575b5061040986868060a01b0361040284615f10565b51166165ad565b61041c86868060a01b0361040284615f1d565b6104548261042a868c615f2d565b51878060a01b0361043a85615f10565b5116888060a01b0361044b86615f1d565b5116918b6166ef565b61045e848a615f2d565b5190858060a01b0361046f82615f1d565b511690610481878060a01b0391615f10565b511691886166ef565b016103a8565b6104ac91503d808c833e6104a48183615bee565b8101906163a3565b5f6103ee565b6040513d89823e3d90fd5b8580f35b6104dd91503d8088833e6104d58183615bee565b810190616285565b5f61039e565b6040513d87823e3d90fd5b8135815260209182019101610351565b8680fd5b8380fd5b8280fd5b50346101f057806003193601126101f05760205460405163ecbbc03360e01b81526004810183905282918290829060249082906001600160a01b03165afa9081156101f357829161065d575b506001600160a01b0361056882615f10565b51165f51602061a8b65f395f51905f523b1561065957604051906328a9b0fb60e11b825260048201525f51602061a8f65f395f51905f52602482015282816044815f51602061a8b65f395f51905f525afa90811561064e578391610639575b506001600160a01b03916105db9150615f1d565b51165f51602061a8b65f395f51905f523b156101fe57604051906328a9b0fb60e11b825260048201525f51602061a8d65f395f51905f52602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b8161064391615bee565b6101fe57815f6105c7565b6040513d85823e3d90fd5b5050fd5b61067191503d8084833e6104a48183615bee565b5f610556565b50346101f057806003193601126101f0576020610692616308565b6040519015158152f35b50346101f057806003193601126101f0576019546106b981615e80565b916106c76040519384615bee565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061070957604051806102b18782615d24565b600160208192604051610727816107208189615dff565b0382615bee565b8152019201920191906106f4565b50346101f05761074436615b99565b156116735760015b60205460405163549387df60e11b8152600481018590525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f526044820152908490829060649082906001600160a01b03165afa908115610ca8578491611659575b50600282101561164557836001831491825f14611180576107cc90615f1d565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f357611167575b508060405160208101906370a0823160e01b82523060248201526024815261083f604482615bee565b51905f51602061a8f65f395f51905f525afa5061086c61085d617d2f565b60208082518301019101615f59565b50610875616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016108c39301600e55615d83565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b601054906108e26180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061093481610926888886618099565b03601f198101835282615bee565b519020895260205260ff600360408a2001541615611145575b6001600160a01b0384165f908152600d602052604090209088526020526109266109866040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546109a98186616488565b611023578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697610fea575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491610fd1575b5050610a7e618269565b9015908115610fc5575b50610ee85750505050610a99618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f51602061a8f65f395f51905f525af180156104e357610eb9575b505b6040516370a0823160e01b8152306004820152926020846024815f51602061a8f65f395f51905f525afa9384156104e3578594610e85575b506040516370a0823160e01b8152306004820152916020836024815f51602061a8d65f395f51905f525afa928315610ce7578693610e51575b506040516278744560e21b81526020816004815f51602061a8d65f395f51905f525afa80156104b257610e1e575b50608082610bb49560018060a01b03602054169089604051809981958294638307c65560e01b84526004840161600f565b03925af1938415610ce7578694610ded575b508351610bd1578580f35b15610cf2576040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ce7578691610cb3575b50610c2192610c1b91616083565b9061642d565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ca8578491610c70575b50610c1b90610c6793616083565b5f808080808580f35b90506020813d602011610ca0575b81610c8b60209383615bee565b81010312610c9c5751610c67610c59565b5f80fd5b3d9150610c7e565b6040513d86823e3d90fd5b90506020813d602011610cdf575b81610cce60209383615bee565b81010312610c9c5751610c21610c0d565b3d9150610cc1565b6040513d88823e3d90fd5b6040516370a0823160e01b81523060048201529193916020816024815f51602061a8f65f395f51905f525afa908115610ce7578691610db9575b50610c1b90610d3a93616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ca8578491610d85575b50610d8092610c1b91616083565b610c67565b90506020813d602011610db1575b81610da060209383615bee565b81010312610c9c5751610d80610d72565b3d9150610d93565b90506020813d602011610de5575b81610dd460209383615bee565b81010312610c9c5751610d3a610d2c565b3d9150610dc7565b610e1091945060803d608011610e17575b610e088183615bee565b810190615f90565b925f610bc6565b503d610dfe565b936020853d602011610e49575b81610e3860209383615bee565b81010312610c9c5793506080610b83565b3d9150610e2b565b9092506020813d602011610e7d575b81610e6d60209383615bee565b81010312610c9c5751915f610b55565b3d9150610e60565b9093506020813d602011610eb1575b81610ea160209383615bee565b81010312610c9c5751925f610b1c565b3d9150610e94565b610eda9060203d602011610ee1575b610ed28183615bee565b810190615f41565b505f610ae2565b503d610ec8565b82945054905f51602061a8b65f395f51905f523b15610506576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f51602061a8b65f395f51905f525af180156101f357610fb0575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610fbb828092615bee565b6101f05780610f4f565b5f19141590505f610a88565b81610fdb91615bee565b61050657825f610a74565b8580fd5b955095506020853d60201161101b575b8161100760209383615bee565b81010312610c9c57935194899490816109fa565b3d9150610ffa565b61102e849186616488565b6101000361010081116111315760ff81116111315760405163348051d760e11b8152600190911b600482015281816024815f51602061a8b65f395f51905f525afa9081156101f357606a602092846110e993611109969261110d575b506040519485925f51602061a9165f395f51905f52828501525f51602061a8965f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615bee565b60405162461bcd60e51b8152602060048201529182916024830190615c51565b0390fd5b61112a9192503d8084833e6111228183615bee565b810190616103565b908661108a565b634e487b7160e01b82526011600452602482fd5b61114d6184e3565b5061094d565b634e487b7160e01b85526041600452602485fd5b8161117191615bee565b61050257835f610816565b5080fd5b61118990615f10565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f357611630575b508060405160208101906370a0823160e01b8252306024820152602481526111fc604482615bee565b51905f51602061a8f65f395f51905f525afa5061121a61085d617d2f565b50611223616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016112589301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906112776180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906112bb81610926888886618099565b519020895260205260ff600360408a2001541615611622575b6001600160a01b0384165f908152600d6020526040902090885260205261092661130d6040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546113308186616488565b6114ee575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce75786976114b5575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca85784916114a0575b50508661140a618269565b919015918215611495575b5050610ee85750505050611427618da2565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f51602061a8f65f395f51905f525af180156104e357611476575b50610ae4565b61148e9060203d602011610ee157610ed28183615bee565b505f611470565b14159050875f611415565b816114aa91615bee565b61050657825f6113ff565b955095506020853d6020116114e6575b816114d260209383615bee565b81010312610c9c5793519489949081611382565b3d91506114c5565b909192506114fc8185616488565b61010003610100811161160e5760ff811161160e5760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a8b65f395f51905f525afa801561160357606a6115b4916020948d916115e9575b506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615bee565b8810156115c5575090879291611335565b60405162461bcd60e51b815260206004820152908190611109906024830190615c51565b6115fd91503d808f833e6111228183615bee565b5f611555565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b61162a6184e3565b506112d4565b8161163a91615bee565b61050257835f6111d3565b634e487b7160e01b84526021600452602484fd5b61166d91503d8086833e6102158183615bee565b5f6107ac565b8161074c565b50346101f05760203660031901126101f057600435601f5481101561117c576116a190615daf565b9190916116d1576040516102b1906116bd816107208187615dff565b604051918291602083526020830190615c51565b634e487b7160e01b81526004819052602490fd5b50346101f057806003193601126101f057601c5461170281615e80565b906117106040519283615bee565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061175357604051806102b18782615c75565b60405161175f81615bb8565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106118d257846001979460029794602097946117ea9454918181106118b6575b81811061189a575b81811061187e575b818110611862575b818110611846575b81811061182a575b818110611810575b106117fc575b500382615bee565b8382015281520192019201919061173e565b6001600160e01b031916815286015f6117e2565b828a1b6001600160e01b0319168452928901928b016117dc565b604083901b6001600160e01b0319168452928901928b016117d4565b606083901b6001600160e01b0319168452928901928b016117cc565b608083901b6001600160e01b0319168452928901928b016117c4565b60a083901b6001600160e01b0319168452928901928b016117bc565b60c083901b6001600160e01b0319168452928901928b016117b4565b60e083901b6001600160e01b0319168452928901928b016117ac565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611787565b50346101f057806003193601126101f057601a5461198e81615e80565b9161199c6040519384615bee565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106119de57604051806102b18782615d24565b6001602081926040516119f5816107208189615dff565b8152019201920191906119c9565b50346101f057806003193601126101f0576020546040516348bd7dfd60e01b8152600481018390525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f52604482015282918290829060649082906001600160a01b03165afa9081156101f3578291611ac7575b50515f51602061a8b65f395f51905f523b156101fe576040519063260a5b1560e21b825260048201526005602482015281816044815f51602061a8b65f395f51905f525afa80156101f3576101df5750f35b611adb91503d8084833e6104d58183615bee565b5f611a75565b50346101f05760403660031901126101f057600435906024359160018060a01b03602054169060405163549387df60e11b81528360048201525f51602061a8f65f395f51905f5260248201525f51602061a8d65f395f51905f5260448201528381606481865afa908115610ca8578491611e36575b50611b6081615f10565b5182105f51602061a8b65f395f51905f523b15611e325760405190632631f2b160e11b8252600482015284816024815f51602061a8b65f395f51905f525afa80156104e357908591611e1d575b50505f51602061a8b65f395f51905f523b1561050257604051632631f2b160e11b815260018311600482015284816024815f51602061a8b65f395f51905f525afa80156104e357908591611e08575b5050611c0790615f10565b5184105f51602061a8b65f395f51905f523b156105025760405190632631f2b160e11b8252600482015283816024815f51602061a8b65f395f51905f525afa8015610ca857908491611df3575b50505f51602061a8b65f395f51905f523b1561050657604051632631f2b160e11b815260018511600482015283816024815f51602061a8b65f395f51905f525afa8015610ca857908491611dde575b506040519194909290611cb7606084615bee565b6002835260208301956040368837611cce84615f10565b52611cd883615f1d565b5260405194859263155adc9160e31b845260848401908560048601525f51602061a8f65f395f51905f5260248601525f51602061a8d65f395f51905f526044860152608060648601525180915260a484019190855b818110611dc2575050508290039082905afa918215611db5578192611d91575b50805b8251811015611d8d5780611d70611d6960019386615f2d565b51516164c7565b611d876020611d7f8387615f2d565b5101516164c7565b01611d50565b5080f35b611dae9192503d8084833e611da68183615bee565b8101906161a7565b905f611d4d565b50604051903d90823e3d90fd5b8251845287965088955060209384019390920191600101611d2d565b81611de891615bee565b61050657825f611ca3565b81611dfd91615bee565b61050657825f611c54565b81611e1291615bee565b61050257835f611bfc565b81611e2791615bee565b61050257835f611bad565b8480fd5b611e4a91503d8086833e6102158183615bee565b5f611b56565b50346101f057806003193601126101f057601b54611e6d81615e80565b90611e7b6040519283615bee565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310611ebe57604051806102b18782615c75565b604051611eca81615bb8565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611f5f5784600197946002979460209794611f4d9454918181106118b65781811061189a5781811061187e57818110611862578181106118465781811061182a5781811061181057106117fc57500382615bee565b83820152815201920192019190611ea9565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191611ef2565b50346101f057806003193601126101f0576001610ca06040516120218282615bee565b60648152601f1982019081366020830137845b6064811061361d5750836040519161204c8584615bee565b60648352865b848110613601575086915b612c8f575b505083805b612c4b575b5050826040519161207d8484615bee565b606483528036602085013785825b612bbe575b5061209e6040519485615bee565b6064845285825b612b99575b50509084915b612149575b50509080929181935b6120c6578280f35b6063841015612145576120d98482615f2d565b51519382810194858211612131579061212986612106869798946120fe889688615f2d565b515190617d5e565b6020612120816121168689615f2d565b5101519287615f2d565b51015190617d5e565b0193926120be565b634e487b7160e01b85526011600452602485fd5b8280f35b836064831015612b935750604051634b88b8ad60e11b815291602083600481895f51602061a8b65f395f51905f525af1928315610ce7578693612b60575b50851561267757858060405160208101906370a0823160e01b8252306024820152602481526121b7604482615bee565b51905f51602061a8f65f395f51905f525afa506121d561085d617d2f565b506121de616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612663576108aa81876122129301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906122316180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a20604051602081019061227581610926888886618099565b5190208b5260205260ff600360408c2001541615612655575b6001600160a01b0384165f908152600d60205260409020908a526020526109266122c760408b2093604051928391602083019586618099565b5190208852602052866040812091878301549260028101546122e98186616488565b61257d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697612545575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491612530575b50506123be618269565b9015908115612524575b50610ee857505050506123d9618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818a5f51602061a8f65f395f51905f525af180156104b257612508575b506020548690608090612460906001600160a01b03166124428587615f2d565b51604051948580948193638307c65560e01b83528d6004840161600f565b03925af19081156104b25787916124ea575b5061247d8286615f2d565b526124888185615f2d565b505b60405192631135fc2960e21b84526004840152602083602481895f51602061a8b65f395f51905f525af1908115610ce757859384926124cc575b5001916120b0565b6124e39060203d8111610ee157610ed28183615bee565b505f6124c4565b612502915060803d8111610e1757610e088183615bee565b5f612472565b61251f9060203d8111610ee157610ed28183615bee565b612422565b5f19141590505f6123c8565b8161253a91615bee565b61050657825f6123b4565b955095506020853d8211612575575b8161256160209383615bee565b81010312610c9c579351948b94908161233a565b3d9150612554565b89612589859287616488565b610100039061010082116126415760ff82116126415760405163348051d760e11b8152911b600482015281816024815f51602061a8b65f395f51905f525afa9081156101f357606a602092846110e993611109969261110d57506040519485925f51602061a9165f395f51905f52828501525f51602061a8965f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615bee565b634e487b7160e01b83526011600452602483fd5b61265d6184e3565b5061228e565b634e487b7160e01b87526041600452602487fd5b6126818183615f2d565b515f8060405160208101906370a0823160e01b8252306024820152602481526126ab604482615bee565b51905f51602061a8d65f395f51905f525afa506126c961085d617d2f565b506126d2616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612b4c576108aa81886127069301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906127256180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f20604051602081019061276981610926888886618099565b5190205f5260205260ff600360405f2001541615612b3e575b6001600160a01b0384165f908152600d60205260409020905f526020526109266127bb60405f2093604051928391602083019586618099565b5190205f5260205260405f20878101549260028201546127db8186616488565b612a42575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715612a04575f97612a0f575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201525f81606481835f51602061a8b65f395f51905f525af18015612a04576129eb575b50908992916128b4618269565b9190159182156129e0575b5050610ee857505050506128d1618da2565b6020805461291c91906001600160a01b03166128ed8486615f2d565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b03818a5f51602061a8d65f395f51905f525af180156104b2576129c4575b506020548690608090612978906001600160a01b031661295a8587615f2d565b51604051948580948193638307c65560e01b83528d60048401615fc9565b03925af19081156104b25787916129a6575b506129958286615f2d565b526129a08185615f2d565b5061248a565b6129be915060803d8111610e1757610e088183615bee565b5f61298a565b6129db9060203d8111610ee157610ed28183615bee565b61293a565b141590505f806128bf565b6129fa9193929a505f90615bee565b5f9890915f6128a7565b6040513d5f823e3d90fd5b9096506020813d8211612a3a575b81612a2a60209383615bee565b81010312610c9c5751958161282d565b3d9150612a1d565b612a4c8186616488565b610100036101008111612b2a5760ff8111612b2a5760405163348051d760e11b8152908b901b600482018190525f826024815f51602061a8b65f395f51905f525afa8015612a0457606a612b03916020945f91612b10575b506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101845283615bee565b8310156115c557506127e0565b612b2491503d805f833e6111228183615bee565b5f612aa4565b634e487b7160e01b5f52601160045260245ffd5b612b466184e3565b50612782565b634e487b7160e01b5f52604160045260245ffd5b9092506020813d8211612b8b575b81612b7b60209383615bee565b81010312610c9c5751915f612187565b3d9150612b6e565b506120b5565b81811015612bb957602090612bac616495565b82828801015201826120a5565b6120aa565b90916064821015612c44578101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c5785918291612c128287615f2d565b520181929161208b565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b88526011600452602488fd5b9190612090565b6063811015612c8a57612c5e8183615f2d565b515185820190818311612c305791612c828261210686956120fe8b98968997615f2d565b019091612067565b61206c565b8560648310156135fb5750604051634b88b8ad60e11b8152916020836004818b5f51602061a8b65f395f51905f525af19283156130305788936135c8575b50861561310757878060405160208101906370a0823160e01b825230602482015260248152612cfd604482615bee565b51905f51602061a8f65f395f51905f525afa50612d1b61085d617d2f565b50612d24616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156130f3576108aa8189612d589301600e55615d83565b905560018060a01b0360115416600f5460e01b896010549160ff60036040612d7e6180b0565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b169485825260205281812082516020810190612dc2816109268c8c86618099565b519020825260205220015416156130e5575b6001600160a01b0384165f908152600d60205260409020908c52602052610926612e0d60408d2093604051928391602083019586618099565b5190208a5260205288604081209189830154926002810154612e2f8186616488565b6130d9578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce75786976130a1575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161308c575b5050612f04618269565b9015908115613080575b50610ee85750505050612f1f618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818c5f51602061a8f65f395f51905f525af1801561305957613064575b50602054612fa6906080906001600160a01b0316612f868486615f2d565b51908a8c604051809681958294638307c65560e01b84526004840161600f565b03925af190811561305957899161303b575b50612fc38286615f2d565b52612fce8185615f2d565b505b60405192631135fc2960e21b845260048401526020836024818b5f51602061a8b65f395f51905f525af19081156130305787938492613012575b50019161205d565b6130299060203d8111610ee157610ed28183615bee565b505f61300a565b6040513d8a823e3d90fd5b613053915060803d8111610e1757610e088183615bee565b5f612fb8565b6040513d8b823e3d90fd5b61307b9060203d8111610ee157610ed28183615bee565b612f68565b5f19141590505f612f0e565b8161309691615bee565b61050657825f612efa565b955095506020853d82116130d1575b816130bd60209383615bee565b81010312610c9c579351948d949081612e80565b3d91506130b0565b8b612589859287616488565b6130ed6184e3565b50612dd4565b634e487b7160e01b89526041600452602489fd5b6131118183615f2d565b51888060405160208101906370a0823160e01b82523060248201526024815261313b604482615bee565b51905f51602061a8d65f395f51905f525afa5061315961085d617d2f565b50613162616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156135b4576108aa8161319492600e55615d83565b9055601154600f546010548b926001600160a01b03169160e01b6131b66180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906131fa81610926888886618099565b519020865260205260ff600360408720015416156135a6575b6001600160a01b0384165f908152600d6020526040902090855260205261092661324c6040862093604051928391602083019586618099565b519020835260205260408220805493600282015461326a8187616488565b613498575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a8b65f395f51905f525afa9788156104b2578798613460575b506001908201610100031b5f1901811b198716915f51602061a8b65f395f51905f523b156104fe576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a8b65f395f51905f525af19081156104e357859161344b575b5050613343618269565b919015918215613440575b5050610ee85750505050613360618da2565b6020805461337c91906001600160a01b03166128ed8486615f2d565b03818c5f51602061a8d65f395f51905f525af1801561305957613424575b5060205488906080906133d8906001600160a01b03166133ba8587615f2d565b51604051948580948193638307c65560e01b83528360048401615fc9565b03925af1908115613059578991613406575b506133f58286615f2d565b526134008185615f2d565b50612fd0565b61341e915060803d8111610e1757610e088183615bee565b5f6133ea565b61343b9060203d8111610ee157610ed28183615bee565b61339a565b141590505f8061334e565b8161345591615bee565b61050257835f613339565b965096506020863d8211613490575b8161347c60209383615bee565b81010312610c9c579451958e9590816132bc565b3d915061346f565b9b50919250906134a88b85616488565b6101000361010081116135925760ff1061357e57908b929160405163348051d760e11b815284600482015284816024815f51602061a8b65f395f51905f525afa80156104e357606a60209161355d938891613564575b506040519283915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018883820152030190601f1982018152615bee565b5f9b61326f565b61357891503d808a833e6111228183615bee565b5f6134fe565b634e487b7160e01b8c52601160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b6135ae6184e3565b50613213565b634e487b7160e01b8a52604160045260248afd5b9092506020813d82116135f3575b816135e360209383615bee565b81010312610c9c5751915f612ccd565b3d91506135d6565b50612062565b602091925061360e616495565b82828601015201908591612052565b848101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c579085916136668285615f2d565b5201612034565b50346101f057806003193601126101f05760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106136cc576102b1856102a581870382615bee565b82546001600160a01b03168452602090930192600192830192016136b5565b50346101f057806003193601126101f05760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061374a576102b1856102a581870382615bee565b82546001600160a01b0316845260209093019260019283019201613733565b50346101f057806003193601126101f057601d5461378681615e80565b6137936040519182615bee565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106138975786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106137ff5786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061386c575050505050602080600192970193019301909286959492936137f2565b909192939460208061388a600193605f198782030189528951615c51565b9701950193929101613848565b6040516138a381615bb8565b82546001600160a01b031681526001830180546138bf81615e80565b916138cd6040519384615bee565b8183528a526020808b20908b9084015b8382106139035750505050600192826020928360029501528152019201920191906137c3565b60016020819260405161391a81610720818a615dff565b8152019301910190916138dd565b50346101f057806003193601126101f05760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110613987576102b1856102a581870382615bee565b82546001600160a01b0316845260209093019260019283019201613970565b50346101f057806003193601126101f0576001610ca06040516139c98282615bee565b60648152601f1982019081366020830137845b60648110614d0a575083604051916139f48584615bee565b60648352865b848110614cee575086915b614445575b505083805b614401575b50508260405191613a258484615bee565b606483528036602085013785825b61439c575b50613a466040519485615bee565b6064845285825b614377575b50509084915b613aae575b50509080929181935b613a6e578280f35b606384101561214557613a818482615f2d565b515193828101948582116121315790613aa686612106869798946120fe889688615f2d565b019392613a66565b8360648310156143715750604051634b88b8ad60e11b815291602083600481895f51602061a8b65f395f51905f525af1928315610ce757869361433e575b508515613ef057858060405160208101906370a0823160e01b825230602482015260248152613b1c604482615bee565b51905f51602061a8f65f395f51905f525afa50613b3a61085d617d2f565b50613b43616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612663576108aa8187613b779301600e55615d83565b905560018060a01b0360115416600f5460e01b60105490613b966180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818b5260205260408a206040516020810190613bda81610926888886618099565b5190208b5260205260ff600360408c2001541615613ee2575b6001600160a01b0384165f908152600d60205260409020908a52602052610926613c2c60408b2093604051928391602083019586618099565b519020885260205286604081209187830154926002810154613c4e8186616488565b61257d578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697613eaa575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491613e95575b5050613d23618269565b9015908115613e89575b50610ee85750505050613d3e618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818a5f51602061a8f65f395f51905f525af180156104b257613e6d575b506020548690608090613dc5906001600160a01b0316613da78587615f2d565b51604051948580948193638307c65560e01b8352836004840161600f565b03925af19081156104b2578791613e4f575b50613de28286615f2d565b52613ded8185615f2d565b505b60405192631135fc2960e21b84526004840152602083602481895f51602061a8b65f395f51905f525af1908115610ce75785938492613e31575b500191613a58565b613e489060203d8111610ee157610ed28183615bee565b505f613e29565b613e67915060803d8111610e1757610e088183615bee565b5f613dd7565b613e849060203d8111610ee157610ed28183615bee565b613d87565b5f19141590505f613d2d565b81613e9f91615bee565b61050657825f613d19565b955095506020853d8211613eda575b81613ec660209383615bee565b81010312610c9c579351948b949081613c9f565b3d9150613eb9565b613eea6184e3565b50613bf3565b613efa8183615f2d565b515f8060405160208101906370a0823160e01b825230602482015260248152613f24604482615bee565b51905f51602061a8d65f395f51905f525afa50613f4261085d617d2f565b50613f4b616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612b4c576108aa8188613f7f9301600e55615d83565b905560018060a01b0360115416600f5460e01b60105490613f9e6180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260405f206040516020810190613fe281610926888886618099565b5190205f5260205260ff600360405f2001541615614330575b6001600160a01b0384165f908152600d60205260409020905f5260205261092661403460405f2093604051928391602083019586618099565b5190205f5260205260405f20878101549260028201546140548186616488565b614263575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715612a04575f97614230575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201525f81606481835f51602061a8b65f395f51905f525af18015612a0457614217575b509089929161412d618269565b91901591821561420c575b5050610ee8575050505061414a618da2565b6020805461416691906001600160a01b03166128ed8486615f2d565b03818a5f51602061a8d65f395f51905f525af180156104b2576141f0575b5060205486906080906141a4906001600160a01b03166133ba8587615f2d565b03925af19081156104b25787916141d2575b506141c18286615f2d565b526141cc8185615f2d565b50613def565b6141ea915060803d8111610e1757610e088183615bee565b5f6141b6565b6142079060203d8111610ee157610ed28183615bee565b614184565b141590505f80614138565b6142269193929a505f90615bee565b5f9890915f614120565b9096506020813d821161425b575b8161424b60209383615bee565b81010312610c9c575195816140a6565b3d915061423e565b61426d8186616488565b610100036101008111612b2a5760ff8111612b2a5760405163348051d760e11b8152908b901b600482018190525f826024815f51602061a8b65f395f51905f525afa8015612a0457606a614323916020945f91612b1057506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81015f838201520301601f198101845283615bee565b8310156115c55750614059565b6143386184e3565b50613ffb565b9092506020813d8211614369575b8161435960209383615bee565b81010312610c9c5751915f613aec565b3d915061434c565b50613a5d565b818110156143975760209061438a616495565b8282880101520182613a4d565b613a52565b909160648210156143fa578101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c57859182916143f08287615f2d565b5201819291613a33565b9190613a38565b6063811015614440576144148183615f2d565b515185820190818311612c3057916144388261210686956120fe8b98968997615f2d565b019091613a0f565b613a14565b856064831015614ce85750604051634b88b8ad60e11b8152916020836004818b5f51602061a8b65f395f51905f525af1928315613030578893614cb5575b50861561486957878060405160208101906370a0823160e01b8252306024820152602481526144b3604482615bee565b51905f51602061a8f65f395f51905f525afa506144d161085d617d2f565b506144da616186565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156130f3576108aa818961450e9301600e55615d83565b905560018060a01b0360115416600f5460e01b896010549160ff600360406145346180b0565b6001600160a01b0388165f908152600d602052604090209095909463ffffffff60e01b169485825260205281812082516020810190614578816109268c8c86618099565b5190208252602052200154161561485b575b6001600160a01b0384165f908152600d60205260409020908c526020526109266145c360408d2093604051928391602083019586618099565b5190208a52602052886040812091898301549260028101546145e58186616488565b6130d9578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697614823575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161480e575b50506146ba618269565b9015908115614802575b50610ee857505050506146d5618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015290816044818c5f51602061a8f65f395f51905f525af18015613059576147e6575b50602054889060809061473e906001600160a01b0316613da78587615f2d565b03925af19081156130595789916147c8575b5061475b8286615f2d565b526147668185615f2d565b505b60405192631135fc2960e21b845260048401526020836024818b5f51602061a8b65f395f51905f525af190811561303057879384926147aa575b500191613a05565b6147c19060203d8111610ee157610ed28183615bee565b505f6147a2565b6147e0915060803d8111610e1757610e088183615bee565b5f614750565b6147fd9060203d8111610ee157610ed28183615bee565b61471e565b5f19141590505f6146c4565b8161481891615bee565b61050657825f6146b0565b955095506020853d8211614853575b8161483f60209383615bee565b81010312610c9c579351948d949081614636565b3d9150614832565b6148636184e3565b5061458a565b6148738183615f2d565b51888060405160208101906370a0823160e01b82523060248201526024815261489d604482615bee565b51905f51602061a8d65f395f51905f525afa506148bb61085d617d2f565b506148c4616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156135b4576108aa816148f692600e55615d83565b9055601154600f546010548b926001600160a01b03169160e01b6149186180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061495c81610926888886618099565b519020865260205260ff60036040872001541615614ca7575b6001600160a01b0384165f908152600d602052604090209085526020526109266149ae6040862093604051928391602083019586618099565b51902083526020526040822080549360028201546149cc8187616488565b614bdc575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f51602061a8b65f395f51905f525afa9788156104b2578798614ba4575b506001908201610100031b5f1901811b198716915f51602061a8b65f395f51905f523b156104fe576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f51602061a8b65f395f51905f525af19081156104e3578591614b8f575b5050614aa5618269565b919015918215614b84575b5050610ee85750505050614ac2618da2565b60208054614ade91906001600160a01b03166128ed8486615f2d565b03818c5f51602061a8d65f395f51905f525af1801561305957614b68575b506020548890608090614b1c906001600160a01b03166133ba8587615f2d565b03925af1908115613059578991614b4a575b50614b398286615f2d565b52614b448185615f2d565b50614768565b614b62915060803d8111610e1757610e088183615bee565b5f614b2e565b614b7f9060203d8111610ee157610ed28183615bee565b614afc565b141590505f80614ab0565b81614b9991615bee565b61050257835f614a9b565b965096506020863d8211614bd4575b81614bc060209383615bee565b81010312610c9c579451958e959081614a1e565b3d9150614bb3565b9b5091925090614bec8b85616488565b6101000361010081116135925760ff1061357e57908b929160405163348051d760e11b815284600482015284816024815f51602061a8b65f395f51905f525afa80156104e357606a602091614ca093889161356457506040519283915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018883820152030190601f1982018152615bee565b5f9b6149d1565b614caf6184e3565b50614975565b9092506020813d8211614ce0575b81614cd060209383615bee565b81010312610c9c5751915f614483565b3d9150614cc3565b50613a0a565b6020919250614cfb616495565b828286010152019085916139fa565b848101808211612c1c57806103e802906103e882048103612c3057683635c9adc5dea000000290808204670de0b6b3a76400001490151715612c1c57908591614d538285615f2d565b52016139dc565b50346101f057806003193601126101f05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b604482015281816064815f51602061a8b65f395f51905f525afa9081156101f357614de3916020918491614fbf575b50604051809381926371ee464d60e01b8352604060048401526044830190615c51565b6301260bd460248301520381855f51602061a8b65f395f51905f525af180156101f357614f90575b5060405161183e808201908282106001600160401b03831117614f7c57604091839161905883395f51602061a8d65f395f51905f5281525f51602061a8f65f395f51905f52602082015203019082f08015611db55760018060a01b03166bffffffffffffffffffffffff60a01b60205416176020555f51602061a8b65f395f51905f523b156101f057806040516318caf8e360e31b81525f51602061a8f65f395f51905f52600482015260406024820152600460448201526308ca482b60e31b60648201528181608481835f51602061a8b65f395f51905f525af180156101f357614f67575b50505f51602061a8b65f395f51905f523b156101f057806040516318caf8e360e31b81525f51602061a8d65f395f51905f5260048201526040602482015260056044820152640a68ca482b60db1b60648201528181608481835f51602061a8b65f395f51905f525af180156101f3576101df5750f35b81614f7191615bee565b6101f057805f614ef1565b634e487b7160e01b84526041600452602484fd5b6020813d602011614fb7575b81614fa960209383615bee565b81010312610c9c5751614e0b565b3d9150614f9c565b614fd391503d8086833e6111228183615bee565b5f614dc0565b50346101f05760403660031901126101f05750602061500e604051614ffd81615bb8565b6004358152602435838201526160ae565b604051908152f35b905034610c9c5761502636615b99565b90919015615b92576001905b60205463549387df60e11b82525f600483018190525f51602061a8d65f395f51905f5260248401525f51602061a8f65f395f51905f52604484015290829060649082906001600160a01b03165afa908115612a04575f91615b78575b506002821015615b6457836001831491825f146156fb576150ae90615f1d565b5184105f51602061a8b65f395f51905f523b1561117c5760405190632631f2b160e11b8252600482015281816024815f51602061a8b65f395f51905f525afa80156101f3576156e6575b508060405160208101906370a0823160e01b825230602482015260248152615121604482615bee565b51905f51602061a8d65f395f51905f525afa5061513f61085d617d2f565b50615148616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa81600161517d9301600e55615d83565b905560018060a01b0360115416600f5460e01b6010549061519c6180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908189526020526040882060405160208101906151e081610926888886618099565b519020895260205260ff600360408a20015416156156d8575b6001600160a01b0384165f908152600d602052604090209088526020526109266152326040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546152558186616488565b611023578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce757869761569f575b506001908201610100031b5f1901811b1986165f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca857849161568a575b505061532a618269565b901590811561567e575b50610ee85750505050615345618da2565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f51602061a8d65f395f51905f525af180156104e35761565f575b505b6040516370a0823160e01b8152306004820152926020846024815f51602061a8d65f395f51905f525afa9384156104e357859461562b575b506040516370a0823160e01b8152306004820152916020836024815f51602061a8f65f395f51905f525afa928315610ce75786936155f4575b506080826154329560018060a01b03602054169089604051809981958294638307c65560e01b845260048401615fc9565b03925af1938415610ce75786946155d3575b50835161544f578580f35b15615512576040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ce75786916154de575b5061549992610c1b91616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8d65f395f51905f525afa908115610ca8578491610c705750610c1b90610c6793616083565b90506020813d60201161550a575b816154f960209383615bee565b81010312610c9c575161549961548b565b3d91506154ec565b6040516370a0823160e01b81523060048201529193916020816024815f51602061a8d65f395f51905f525afa908115610ce757869161559f575b50610c1b9061555a93616083565b516040516370a0823160e01b81523060048201526020816024815f51602061a8f65f395f51905f525afa908115610ca8578491610d855750610d8092610c1b91616083565b90506020813d6020116155cb575b816155ba60209383615bee565b81010312610c9c575161555a61554c565b3d91506155ad565b6155ed91945060803d608011610e1757610e088183615bee565b925f615444565b9392506020843d602011615623575b8161561060209383615bee565b81010312610c9c57925191926080615401565b3d9150615603565b9093506020813d602011615657575b8161564760209383615bee565b81010312610c9c5751925f6153c8565b3d915061563a565b6156779060203d602011610ee157610ed28183615bee565b505f61538e565b5f19141590505f615334565b8161569491615bee565b61050657825f615320565b955095506020853d6020116156d0575b816156bc60209383615bee565b81010312610c9c57935194899490816152a6565b3d91506156af565b6156e06184e3565b506151f9565b816156f091615bee565b61050257835f6150f8565b6157059150615f10565b5183105f51602061a8b65f395f51905f523b15610c9c5760405190632631f2b160e11b825260048201525f816024815f51602061a8b65f395f51905f525afa8015612a0457615b4f575b50838060405160208101906370a0823160e01b825230602482015260248152615779604482615bee565b51905f51602061a8d65f395f51905f525afa5061579761085d617d2f565b506157a0616165565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611153576108aa8160016157d59301600e55615d83565b905560018060a01b0360115416600f5460e01b601054906157f46180b0565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061583881610926888886618099565b519020895260205260ff600360408a2001541615615b41575b6001600160a01b0384165f908152600d6020526040902090885260205261092661588a6040892093604051928391602083019586618099565b519020865260205284604081209160018301549260028101546158ad8186616488565b615a6b575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a8b65f395f51905f525afa968715610ce7578697615a32575b506001908201610100031b5f1901811b198616915f51602061a8b65f395f51905f523b15610fe6576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f51602061a8b65f395f51905f525af1908115610ca8578491615a1d575b505086615987618269565b919015918215615a12575b5050610ee857505050506159a4618da2565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f51602061a8d65f395f51905f525af180156104e3576159f3575b50615390565b615a0b9060203d602011610ee157610ed28183615bee565b505f6159ed565b14159050875f615992565b81615a2791615bee565b61050657825f61597c565b955095506020853d602011615a63575b81615a4f60209383615bee565b81010312610c9c57935194899490816158ff565b3d9150615a42565b90919250615a798185616488565b61010003610100811161160e5760ff811161160e5760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a8b65f395f51905f525afa801561160357606a615b30916020948d916115e957506040519485915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615bee565b8810156115c55750908792916158b2565b615b496184e3565b50615851565b615b5c9194505f90615bee565b5f925f61574f565b634e487b7160e01b5f52602160045260245ffd5b615b8c91503d805f833e6102158183615bee565b5f61508e565b5f90615032565b6040906003190112610c9c57600435906024358015158103610c9c5790565b604081019081106001600160401b03821117612b4c57604052565b606081019081106001600160401b03821117612b4c57604052565b90601f801991011681019081106001600160401b03821117612b4c57604052565b60206040818301928281528451809452019201905f5b818110615c325750505090565b82516001600160a01b0316845260209384019390920191600101615c25565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310615ca757505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210615d015750505060208060019297019301930191939290615c98565b82516001600160e01b031916845260209384019390920191600190910190615ce2565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310615d5657505050505090565b9091929394602080615d74600193603f198682030187528951615c51565b97019301930191939290615d47565b600e54811015615d9b57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f54811015615d9b57601f5f5260205f2001905f90565b90600182811c92168015615df5575b6020831014615de157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615dd6565b5f9291815491615e0e83615dc7565b8083529260018116908115615e635750600114615e2a57505050565b5f9081526020812093945091925b838310615e49575060209250010190565b600181602092949394548385870101520191019190615e38565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b038111612b4c5760051b60200190565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151615eca81615e80565b92615ed86040519485615bee565b81845260208085019260051b820101928311610c9c57602001905b828210615f005750505090565b8151815260209182019101615ef3565b805115615d9b5760200190565b805160011015615d9b5760400190565b8051821015615d9b5760209160051b010190565b90816020910312610c9c57518015158103610c9c5790565b90816020910312610c9c575190565b9190826040910312610c9c57604051615f8081615bb8565b6020808294805184520151910152565b90608082820312610c9c57615fc1906040805193615fad85615bd3565b805185526020810151602086015201615f68565b604082015290565b92919060a08401935f81525f51602061a8d65f395f51905f5260208201525f51602061a8f65f395f51905f5260408201526002821015615b645760809160608201520152565b92919060a08401935f81525f51602061a8f65f395f51905f5260208201525f51602061a8d65f395f51905f5260408201526002821015615b645760809160608201520152565b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b91908203918211612b2a57565b811561609a570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715612b2a5760206160e592015190616090565b90565b6001600160401b038111612b4c57601f01601f191660200190565b602081830312610c9c578051906001600160401b038211610c9c570181601f82011215610c9c57805190616136826160e8565b926161446040519485615bee565b82845260208383010111610c9c57815f9260208093018386015e8301015290565b601180546001600160a01b0319165f51602061a8d65f395f51905f52179055565b601180546001600160a01b0319165f51602061a8f65f395f51905f52179055565b602081830312610c9c578051906001600160401b038211610c9c570181601f82011215610c9c5780516161d981615e80565b926161e76040519485615bee565b81845260208085019260061b84010192818411610c9c57602001915b838310616211575050505090565b60206040916162208486615f68565b815201920191616203565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b81811061626f5750505090565b8251845260209384019390920191600101616262565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151906162b982615e80565b926162c76040519485615bee565b82845260208085019360051b820101918211610c9c57602001915b8183106162ef5750505090565b8251600a811015610c9c578152602092830192016162e2565b60085460ff1680156163175790565b50604051630667f9d760e41b81525f51602061a8b65f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a8b65f395f51905f525afa908115612a04575f91616371575b50151590565b90506020813d60201161639b575b8161638c60209383615bee565b81010312610c9c57515f61636b565b3d915061637f565b602081830312610c9c578051906001600160401b038211610c9c57019080601f83011215610c9c578151906163d782615e80565b926163e56040519485615bee565b82845260208085019360051b820101918211610c9c57602001915b81831061640d5750505090565b82516001600160a01b0381168103610c9c57815260209283019201616400565b905f51602061a8b65f395f51905f523b15610c9c576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b5f61648691615bee565b565b91908201809211612b2a57565b604051906164a282615bd3565b815f81525f602082015260408051916164ba83615bb8565b5f83525f60208401520152565b5f51602061a8b65f395f51905f523b15610c9c5760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b5f5b815181101561654b5761652b8183615f2d565b51600a811015615b645760051461654457600101616518565b5050600190565b50505f90565b5f5b815181101561654b576165668183615f2d565b51600a811015615b645760091461654457600101616553565b5f5b815181101561654b576165948183615f2d565b51600a811015615b645760081461654457600101616581565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f196044840152604483526165e5606484615bee565b82516001600160a01b038316915f91829182855af190616603617d2f565b82616663575b5081616658575b501561661b57505050565b616653616486936040519063095ea7b360e01b602083015260248201525f60448201526044815261664d606482615bee565b82617dad565b617dad565b90503b15155f616610565b8051919250811591821561667b575b5050905f616609565b61668e9250602080918301019101615f41565b5f80616672565b604051906166a4606083615bee565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af18015612a0457616758915f91617d15575b50615f10565b5161010052606060a08190526040516167b4916167759082615bee565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261010051617e70565b60a051505f8061683c61686a6040516167cf60a05182615bee565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190615c51565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af18015612a04576168d7915f91617cfb575b50616551565b90604051916168e760a084615bee565b60048352608036602085013715617cee575f5b61690383615f10565b526103e8610100510461691583615f1d565b52815160021015615d9b5760a05182016101005160011c9052815160031015615d9b5761010051608083015260405163155adc9160e31b8152935f858061696286868b8a6004860161622b565b0381836001600160a01b0386165af1948515612a04575f95617cd2575b5061699261698c86615f10565b516160ae565b85515f19810191908211612b2a576169b061698c616a0a9389615f2d565b60a05160405192906169c29084615bee565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b6040840152617ed7565b616a1661698c86615f10565b85515f198101908111612b2a57616ab1616aca5f93616a3961698c86958c615f2d565b60a051604051929190616a4c9084615bee565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190615c51565b916044840152606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa5060a051604051616b3091616af39082615bee565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617f0c565b616b82616b3c86615f10565b5151604060e081905280519190616b539083615bee565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152617e70565b616bd36020616b9087615f10565b51015160e05180519190616ba49083615bee565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152617e70565b616bdf61698c86615f10565b9460e05150616c1e8660e05151616bf860e05182615bee565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617f50565b616c26616495565b5083515f198101908111612b2a57616c3e9085615f2d565b516005818102048103612b2a575f8060e0515160208101906370a0823160e01b825230602482015260248152616c75604482615bee565b51908b5afa50616c8661085d617d2f565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e54600160401b811015612b4c576108aa816001616cd79301600e55615d83565b90556011546001600160a01b031661014052600f546010549060e01b616cfb6180b0565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e051516020810190616d4481610926888886618099565b5190205f5260205260ff600360e0515f2001541615617cc4575b610140516001600160a01b03165f908152600d60205260409020905f52602052610926616d9c60e0515f209360e05151928391602083019586618099565b5190205f5260205260e0515f206001810154916002820154616dbe8185616488565b617bae575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a8b65f395f51905f525afa958615617b6e575f96617b7a575b506001908201610100031b5f1901811b1985165f51602061a8b65f395f51905f523b15610c9c5760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a8b65f395f51905f525af18015617b6e57617b59575b50616e9a618269565b9015918215617b4b575b5050617a57575050616eb4618da2565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a8b65f395f51905f525af180156173ab5761012051608052617a24575b5060015b8451811015617478575f80616fa9616fcf616f0c85615daf565b50616f17868b615f2d565b51616fbb610720616f8360e0515194616f3260a05187615bee565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e0515192838092615dff565b60e05151635821efa160e01b602082015260a05160248201529586946084860190615c51565b84810360231901604486015290615c51565b90606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa50616ff161698c8284615f2d565b5f8061706661708a8c617004878c615f2d565b5160e051519161701660e05184615bee565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190615c51565b60448401929092526001600160a01b0316606483015203601f198101835282615bee565b6020815191016a636f6e736f6c652e6c6f675afa508460808a896170ce6170b1878c615f2d565b5160e05151638307c65560e01b8152958694859460048601616055565b03816101205160018060a01b038a165af19081156173ab57610120519161745a575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156174405761713d617148916a084595161401484a000000617135878c615f2d565b519102616090565b9160e05101516160ae565b9161718c8260e0515161715d60e05182615bee565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617f50565b6171cf8160e051516171a060e05182615bee565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617f50565b6172128360e051516171e360e05182615bee565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617f50565b60c051156173ba5760a05160e05151617346946172eb93909261728192919061723b9083615bee565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617f93565b60a05160e0515191906172949083615bee565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e05183015283617ed7565b60a05160e0515191906172fe9083615bee565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e05183015289617ed7565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a8b65f395f51905f525af19182156173ab5760019261738d575b5001616ef2565b6173a49060203d8111610ee157610ed28183615bee565b505f617386565b60e051513d61012051823e3d90fd5b6173e3906173d461743b946173cd616695565b908d617f93565b6173dc616695565b908b617f93565b60e05151906173f460a05183615bee565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617f93565b617346565b634e487b7160e01b61012051526011600452602461012051fd5b617472915060803d8111610e1757610e088183615bee565b5f6170f0565b505091509193925060696101005102610100518104606914610100511517156174405760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af180156173ab576174fc916101205191617a07575b5061657f565b156178aa576175648460e0515161751560a05182615bee565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617f50565b60e051805194906175759086615bee565b6001855260e051601f190136602087013761758f85615f10565b5260e0515163155adc9160e31b81526101205181806175b48888878c6004860161622b565b03816101205160018060a01b0388165af1908161788f575b506178235760016175db617fc8565b6308c379a014617795575b6173ab576175f5608094615f10565b519461761860e0515196879586948594638307c65560e01b865260048601616055565b61012051919003926001600160a01b03165af19081617778575b50617716576001617641617fc8565b6308c379a014617693575b6173ab575b61648660e0515161766460e05182615bee565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617f0c565b61769b617fe3565b806176a7575b5061764c565b6101205160a05160e051519193506177109291906176c59082615bee565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152618055565b5f6176a1565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6177909060803d608011610e1757610e088183615bee565b617632565b61779d617fe3565b806177a9575b506175e6565b6101205160a05160e0515191935061781d9291906177c79082615bee565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152618055565b5f6177a3565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b6178a5903d8061012051833e611da68183615bee565b6175cc565b60a05160e0515161790c918691906178c29082615bee565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617f50565b60e0518051949061791d9086615bee565b6001855260e051601f190136602087013761793785615f10565b5260e051519363155adc9160e31b855261012051858061795d8488878c6004860161622b565b03816101205160018060a01b0388165af19081156173ab57608095617986926179ec5750615f10565b51946179a960e0515196879586948594638307c65560e01b865260048601616055565b61012051919003926001600160a01b03165af180156173ab576179cd575b50617651565b6179e59060803d608011610e1757610e088183615bee565b505f6179c7565b617a02903d8061012051833e611da68183615bee565b616752565b617a1e91503d8061012051833e6104d58183615bee565b5f6174f6565b6020813d602011617a4f575b81617a3d60209383615bee565b81010312610c9c57516080525f616eee565b3d9150617a30565b545f51602061a8b65f395f51905f523b15617b445760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a8b65f395f51905f525af180156173ab57617b29575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61012051617b3691615bee565b61012051617b445780617ac7565b6101205180fd5b600502141590505f80616ea4565b5f617b6391615bee565b5f610120525f616e91565b60e051513d5f823e3d90fd5b9095506020813d602011617ba6575b81617b9660209383615bee565b81010312610c9c57519481616e14565b3d9150617b89565b617bb88185616488565b610100036101008111612b2a5760ff8111612b2a5760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a8b65f395f51905f525afa918215617b6e57617c74606a6020946001945f91617caa575b5060e051519586915f51602061a9165f395f51905f52828401525f51602061a8965f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615bee565b1b836005021015617c855750616dc3565b60e0515162461bcd60e51b815260206004820152908190611109906024830190615c51565b617cbe91503d805f833e6111228183615bee565b5f617c12565b617ccc6184e3565b50616d5e565b617ce79195503d805f833e611da68183615bee565b935f61697f565b61271061010051046168fa565b617d0f91503d805f833e6104d58183615bee565b5f6168d1565b617d2991503d805f833e6102158183615bee565b5f616752565b3d15617d59573d90617d40826160e8565b91617d4e6040519384615bee565b82523d5f602084013e565b606090565b905f51602061a8b65f395f51905f523b15610c9c5760405191638466f41560e01b8352600483015260248201525f816044815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b8151617dd8926001600160a01b03909216915f91829160200182855af1617dd2617d2f565b91618428565b80519081617de4575050565b602080617df5938301019101615f41565b15617dfc57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6160e59392606092825260208201528160408201520190615c51565b5f51602061a8b65f395f51905f523b15610c9c57617eb8915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190615c51565b03815f51602061a8b65f395f51905f525afa8015612a045761647c5750565b905f51602061a8b65f395f51905f523b15610c9c575f91617eb86040519485938493636cd1e26960e11b855260048501617e54565b5f610926617f39829360405192839163104c13eb60e21b6020840152602060248401526044830190615c51565b6020815191016a636f6e736f6c652e6c6f675afa50565b617f7f617f395f93928493604051938492632d839cb360e21b6020850152604060248501526064840190615c51565b90604483015203601f198101835282615bee565b905f51602061a8b65f395f51905f523b15610c9c575f91617eb86040519485938493630389490b60e61b855260048501617e54565b5f9060033d11617fd457565b905060045f803e5f5160e01c90565b5f60443d106160e5576040513d600319016004823e8051913d60248401116001600160401b0384111761804f57828201928351916001600160401b038311618047573d8401600319018584016020011161804757506160e592910160200190615bee565b949350505050565b92915050565b618087617f395f93926109268594604051948593634b5c427760e01b6020860152604060248601526064850190615c51565b83810360231901604485015290615c51565b60209291908391805192839101825e019081520190565b6180bb601454615dc7565b618178576040519081826020600e549283815201600e5f5260205f20925f5b81811061815f5750506180ef92500383615bee565b81518060051b9080820460201490151715612b2a5761810d816160e8565b9061811b6040519283615bee565b80825261812a601f19916160e8565b013660208301375f5b835181101561815a578061814960019286615f2d565b5160208260051b8501015201618133565b509150565b84548352600194850194879450602090930192016180da565b6040516160e581610720816014615dff565b60078101906181998254615dc7565b61825557600191500190604051808360208295549384815201905f5260205f20925f5b81811061823c5750506181d192500383615bee565b81518060051b9080820460201490151715612b2a576181ef816160e8565b906181fd6040519283615bee565b80825261820c601f19916160e8565b013660208301375f5b835181101561815a578061822b60019286615f2d565b5160208260051b8501015201618215565b84548352600194850194879450602090930192016181bc565b506160e56107209160405192838092615dff565b5f806020600f5460e01b6182b76024618282600d61818a565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615bee565b6011549151916001600160a01b03165afa906182d1617d2f565b601054909290600581901b906001600160fb1b03811603612b2a575f938051602081115f1461835c57506020905b5f925b82841061831157505050509190565b9091929561831f8783616488565b8351811015615d9b57830160200151600388901b91906001600160f81b031916881560088a8504141715612b2a576001921c179601929190618302565b906182ff565b905f806020600285015460e01b61837d60246182828861818a565b60048601549151916001600160a01b03165afa600361839a617d2f565b930154600581901b906001600160fb1b03811603612b2a575f938051602081115f1461842257506020905b5f925b8284106183d757505050509190565b909192956183e58783616488565b8351811015615d9b57830160200151600388901b91906001600160f81b031916881560088a8504141715612b2a576001921c1796019291906183c8565b906183c5565b9061844c575080511561843d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061847d575b61845d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15618455565b9080601f83011215610c9c57815161849d81615e80565b926184ab6040519485615bee565b81845260208085019260051b820101928311610c9c57602001905b8282106184d35750505090565b81518152602091820191016184c6565b601154600f546010546001600160a01b03909216915f9160e01b618507600d61818a565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061854081610926888886618099565b5190205f5260205260ff600360405f20015416618d61575f51602061a8b65f395f51905f523b15610c9c5760405163266cf10960e01b81525f81600481835f51602061a8b65f395f51905f525af18015612a0457618d4c575b506185a4600d618362565b90506040516365bc948160e01b81528660048201528581602481835f51602061a8b65f395f51905f525af1908115610ce7578691618ce4575b50805161864e57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618cdc578160206186698361869a95615f2d565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a8b65f395f51905f525afa928315613030578893618ca9575b508215618c51575b6186cc8282615f2d565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a8b65f395f51905f525afa908115618c46578b91618c15575b50618727600d618362565b91909382155f14618c0e575f19905b5f51602061a8b65f395f51905f523b15618bf5576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a8b65f395f51905f525af18015618b7a57908d91618bf9575b50506187a7600d618362565b601154909491506001600160a01b03165f51602061a8b65f395f51905f523b15618bf5576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a8b65f395f51905f525af18015618bea57908c91618bd1575b505082618bc6575b505015618bbc578793889360ff60135416618a41575b6001868601610100031b5f1901851b16841c8103618a335750906188c1917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896109266188968d604051928391602083019586618099565b5190206188a38686615f2d565b51906040519283528a602084015260408301526060820152a1615f2d565b51906040519060808201928284106001600160401b03851117612b4c5760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a5260205260408920604051602081019061892a816109268d8d86618099565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019061898581610926888886618099565b519020855260205260ff600360408620015416156189d6576040948452600d6020528484209084526020526109266189ca858520938651928391602083019586618099565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01618650565b9450618a8c9350618a528383615f2d565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a8b65f395f51905f525afa948515611603578a95618b89575b50618ab886600d618ebb565b959096618ac681600d618f94565b60115490939192906001600160a01b03165f51602061a8b65f395f51905f523b15618b85576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a8b65f395f51905f525af18015618b7a57908d91618b61575b505087618b59575b50949561883b575093509150600190618a3b565b96505f618b45565b81618b6b91615bee565b618b76578b5f618b3d565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211618bb4575b81618ba460209383615bee565b81010312610c9c5751935f618aac565b3d9150618b97565b9150600190618a3b565b141590505f80618825565b81618bdb91615bee565b618be6578a5f61881d565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81618c0391615bee565b618b76578b5f61879b565b8c90618736565b90506020813d8211618c3e575b81618c2f60209383615bee565b81010312610c9c57515f61871c565b3d9150618c22565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5618ca1618c7f8484615f2d565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a16186c2565b9092506020813d8211618cd4575b81618cc460209383615bee565b81010312610c9c5751915f6186ba565b3d9150618cb7565b505050618958565b90503d8087833e618cf58183615bee565b81016040828203126104fe5781516001600160401b038111618d485781618d1d918401618486565b916020810151906001600160401b038211618d4457618d3d929101618486565b505f6185dd565b8880fd5b8780fd5b618d599194505f90615bee565b5f925f618599565b91939092505f52600d60205260405f20905f52602052610926618d9360405f2093604051928391602083019586618099565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580618e79575b505f60105560ff1960135416601355618ded601454615dc7565b80618df55750565b601f8111600114618e0757505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110618e6e57505060145f525f602081208160145555565b5f8155600101618e55565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618eb05750618dd3565b5f8155600101618ea3565b91905f5b6101008110618ed257505090505f905f90565b8060ff0360ff8111612b2a576004850154600190911b906001600160a01b03165f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a8b65f395f51905f525af18015612a0457618f84575b50618f5e84618362565b81618f7a575b50618f7157600101618ebf565b92505060019190565b905015155f618f64565b5f618f8e91615bee565b5f618f54565b91905f5b6101008110618fab57505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a8b65f395f51905f523b15610c9c576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a8b65f395f51905f525af18015612a0457619047575b5061902a84618362565b8161903d575b50618f7157600101618f98565b905015155f619030565b5f61905191615bee565b5f61902056fe60c03461012457601f61183e38819003918201601f19168301916001600160401b0383118484101761012857808492604094855283398101031261012457610052602061004b8361013c565b920161013c565b6001600160a01b039182166080521660a0526040516116ed9081610151823960805181818160be015281816103cc015281816104000152818161053d01528181610671015281816106a5015281816107fe015281816108320152818161099201528181610bc601528181610c7901528181610e4701528181610f6901528181610f9d01528181611016015281816111f6015281816112d601526113bb015260a051818181608a015281816101cf0152818161045d0152818161074801528181610b7c01528181610d6e0152610da30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101245756fe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461096057806348bd7dfd146108785780638307c655146106d7578063a9270fbe14610442578063aad6e4881461013f5763ecbbc0331461005b575f80fd5b3461013b57602036600319011261013b5760405161007a606082610a8e565b60028152602081019060403683377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100bb82610ac8565b527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166100ef82610ad5565b52604051918291602083019060208452518091526040830191905f5b818110610119575050500390f35b82516001600160a01b031684528594506020938401939092019160010161010b565b5f80fd5b3461013b57608036600319011261013b57610158610a0c565b610160610a22565b6064359067ffffffffffffffff821161013b573660238301121561013b5781600401359161018d83610ab0565b9261019b6040519485610a8e565b8084526024602085019160051b8301019136831161013b57602401905b828210610432575050506001600160a01b038381167f00000000000000000000000000000000000000000000000000000000000000009091168181149291831591826103fe575b82156103aa575b508115610397575b5061033b5782519361021f85610ab0565b9461022d6040519687610a8e565b80865261023c601f1991610ab0565b015f5b8181106103185750509061025291610da1565b915f5b81518110156102c7578061026b60019284610ae5565b5161027586610ac8565b518111156102c1576102919061028a87610ac8565b5111610fcf565b6102a561029e8285610ae5565b5185611291565b6102af8288610ae5565b526102ba8187610ae5565b5001610255565b50610291565b846040518091602082016020835281518091526020604084019201905f5b8181106102f3575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102e5565b60209060405161032781610a72565b5f81525f8382015282828a0101520161023f565b60405163643c60f360e01b815260206004820152602d60248201527f546869732061646170746572206f6e6c7920737570706f72747320465241583c60448201526c2d3e534652415820737761707360981b6064820152608490fd5b6001600160a01b0383161490508561020e565b9091506001600160a01b0383169081141590816103ca575b509086610206565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866103c2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682141592506101ff565b81358152602091820191016101b8565b3461013b5761045036610a38565b6001600160a01b039182167f000000000000000000000000000000000000000000000000000000000000000090921682811493508315929190836106a3575b831561064f575b50821561063c575b505061033b57604051906104b3606083610a8e565b60028252602082019060403683371561052e576001600160801b036104d783610ac8565b526001600160801b036104e983610ad5565b52905b604051918291602083019060208452518091526040830191905f5b818110610515575050500390f35b8251845285945060209384019390920191600101610507565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f9161060a575b5061058784610ad5565b52602061059384610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f916105cd575b506105c683610ac8565b52906104ec565b90506020813d6020116105f7575b816105e860209383610a8e565b8101031261013b5751836105bc565b3d91506105db565b6040513d5f823e3d90fd5b90506020813d602011610634575b8161062560209383610a8e565b8101031261013b57518461057d565b3d9150610618565b6001600160a01b0316149050828061049e565b9092506001600160a01b03831690811415908161066f575b509184610496565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415905084610667565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316831415935061048f565b3461013b5760a036600319011261013b576106f0610a0c565b6106f8610a22565b90606435600281101561013b57604051906060820182811067ffffffffffffffff821117610864576040525f82525f602083015260405161073881610a72565b5f808252602082015260408301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416818114159182610830575b82156107dc575b5081156107c9575b5061033b576080936107a49360843593610af9565b6020604080519280518452828101518385015201518051604084015201516060820152f35b6001600160a01b0386161490508561078f565b9091506001600160a01b0386169081141590816107fc575b509086610787565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614159050866107f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168214159250610780565b634e487b7160e01b5f52604160045260245ffd5b3461013b5761088636610a38565b50505060405161089760c082610a8e565b600581526020810160a036823760016108af83610ac8565b5260026108bb83610ad5565b5281516002101561094c576003606083015281516003101561094c576005608083015281516004101561094c57600860a0830152604051906020820192602083525180935260408201905f935b8085106109155783830384f35b9091825190600a8210156109385760208160019382935201930194019390610908565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b3461013b57604036600319011261013b5760408051906109808183610a8e565b6001825260208201601f1982013682377f000000000000000000000000000000000000000000000000000000000000000060601b6bffffffffffffffffffffffff19166109cc84610ac8565b52815192839260208401916020855251809252830191905f5b8181106109f3575050500390f35b82518452859450602093840193909201916001016109e5565b602435906001600160a01b038216820361013b57565b604435906001600160a01b038216820361013b57565b606090600319011261013b57600435906024356001600160a01b038116810361013b57906044356001600160a01b038116810361013b5790565b6040810190811067ffffffffffffffff82111761086457604052565b90601f8019910116810190811067ffffffffffffffff82111761086457604052565b67ffffffffffffffff81116108645760051b60200190565b80511561094c5760200190565b80516001101561094c5760400190565b805182101561094c5760209160051b010190565b94939092918582158015610d60575b610d585750610b179084610da1565b9160028110928315610938578115918280610d46575b15610d0e5750610b3f610b4791610ac8565b518310610fcf565b5a92156109385715610cfd57610b5d90836111d9565b84525b5a8103908111610ce95760208401526001600160a01b039081167f000000000000000000000000000000000000000000000000000000000000000090911603610c565760405163ef8b30f760e01b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610c24575b505b60405190610c0d82610a72565b8152670de0b6b3a764000060208201526040830152565b90506020813d602011610c4e575b81610c3f60209383610a8e565b8101031261013b57515f610bfe565b3d9150610c32565b60405163266d6a8360e11b8152670de0b6b3a764000060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105ff575f91610cb7575b50610c00565b90506020813d602011610ce1575b81610cd260209383610a8e565b8101031261013b57515f610cb1565b3d9150610cc5565b634e487b7160e01b5f52601160045260245ffd5b610d07908361100c565b8452610b60565b60011480610d34575b610d22575b50610b47565b610b3f610d2e91610ad5565b5f610d1c565b50610d3e81610ad5565b518311610d17565b50610d5082610ac8565b518411610b2d565b955050505050565b506001600160a01b038581167f0000000000000000000000000000000000000000000000000000000000000000909116148015610b08575060028310610b08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691168181149283159283610f9b575b8315610f47575b508215610f34575b505061033b5760405190610e00606083610a8e565b60028252604036602084013715610e38576001600160801b03610e2282610ac8565b526001600160801b03610e3482610ad5565b5290565b6040516361c1c5e960e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156105ff575f91610f02575b50610e9183610ad5565b526020610e9d83610ad5565b51602460405180948193630a28a47760e01b835260048301525afa9081156105ff575f91610ed0575b50610e3482610ac8565b90506020813d602011610efa575b81610eeb60209383610a8e565b8101031261013b57515f610ec6565b3d9150610ede565b90506020813d602011610f2c575b81610f1d60209383610a8e565b8101031261013b57515f610e87565b3d9150610f10565b6001600160a01b03161490505f80610deb565b9092506001600160a01b038316908114159081610f67575b50915f610de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141590505f610f5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168314159350610ddc565b15610fd657565b60405162461bcd60e51b815260206004820152600e60248201526d131a5b5a5d08195e18d95959195960921b6044820152606490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911680820361112d57604051630a28a47760e01b81526004810184905290602082602481865afa9182156105ff575f926110f7575b50915f936110836110b39360209530903390611400565b604051632d182be560e21b8152600481019190915233602482015230604482015293849283919082906064820190565b03925af19081156105ff575f916110c8575090565b90506020813d6020116110ef575b816110e360209383610a8e565b8101031261013b575190565b3d91506110d6565b929091506020833d602011611125575b8161111460209383610a8e565b8101031261013b579151905f61106c565b3d9150611107565b60405163b3d7f6b960e01b81526004810184905290602082602481865afa9182156105ff575f926111a3575b50915f9361117983836020966111746110b397303384611400565b61144b565b6040516394bf804d60e01b8152600481019190915233602482015293849283919082906044820190565b929091506020833d6020116111d1575b816111c060209383610a8e565b8101031261013b579151905f611159565b3d91506111b3565b5f916020916001600160a01b0316906111f481303385611400565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690828214851461125957604051635d043b2960e11b8152600481019190915233602482015230604482015293849250829081606481016110b3565b61126781836110b39561144b565b604051636e553f6560e01b8152600481019190915233602482015293849283919082906044820190565b6001906040516112a081610a72565b5f80825260209091015215150361139e576002811061135a5760405163ef8b30f760e01b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f92611326575b506040519161131c83610a72565b8252602082015290565b9091506020813d602011611352575b8161134260209383610a8e565b8101031261013b5751905f61130e565b3d9150611335565b606460405162461bcd60e51b815260206004820152602060248201527f416d6f756e7420496e206d7573742062652067726561746572207468616e20316044820152fd5b60405163266d6a8360e11b815260048101829052906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156105ff575f9261132657506040519161131c83610a72565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261144991611444608483610a8e565b6115af565b565b604051636eb1769f60e11b81523060048201526001600160a01b0392831660248201819052939092821690602084604481855afa9384156105ff575f94611563575b508301809311610ce9575f8060405194602086019063095ea7b360e01b82528760248801526044870152604486526114c6606487610a8e565b85519082855af1906114d661161a565b82611531575b5081611526575b50156114ee57505050565b611444611449936040519063095ea7b360e01b602083015260248201525f604482015260448152611520606482610a8e565b826115af565b90503b15155f6114e3565b80519192508115918215611549575b5050905f6114dc565b61155c9250602080918301019101611597565b5f80611540565b9093506020813d60201161158f575b8161157f60209383610a8e565b8101031261013b5751925f61148d565b3d9150611572565b9081602091031261013b5751801515810361013b5790565b5f806115d79260018060a01b03169360208151910182865af16115d061161a565b9083611659565b80519081151591826115ff575b50506115ed5750565b635274afe760e01b5f5260045260245ffd5b6116129250602080918301019101611597565b155f806115e4565b3d15611654573d9067ffffffffffffffff82116108645760405191611649601f8201601f191660200184610a8e565b82523d5f602084013e565b606090565b9061167d575080511561166e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806116ae575b61168e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561168656fea264697066735822122067f54ef465d21af621c8dd49b39e0406a28ba995a2dfce93f120df14a9a875d164736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a663b02cf0a4b149d2ad41910cb81e23e1c41c32000000000000000000000000853d955acef822db058eb8505911ed77f175b99e73746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220d45ad83531160355d9201b068ea13f477a68f6bf65085117ad53d514b7e0860d64736f6c634300081b0033","sourceMap":"604:8022:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7798:7;604:8022;;;-1:-1:-1;;;7798:58:73;;604:8022;7798:58;;604:8022;;;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;;;;;;;7798:58;;604:8022;;-1:-1:-1;;;;;604:8022:73;7798:58;;;;;;;;;;;604:8022;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;604:8022:73;;943:13;;;;2349:24:1;;604:8022:73;2349:24:1;;604:8022:73;7890:1;943:13;604:8022;;;2349:24:1;;943:13:73;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;604:8022:73;;2349:24:1;;;;;:::i;:::-;604:8022:73;;2349:24:1;604:8022:73;;;;2349:24:1;604:8022:73;;943:13;604:8022;;943:13;;;;2349:24:1;604:8022:73;;7798:58;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;604:8022;;;;;;;;;;;;;;;1016:26:12;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;604:8022:73;;;;;;;2421:18:5;604:8022:73;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;604:8022:73;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1126:10:65;;;;;;:::i;:::-;1590:14:0;604:8022:73;;943:13;;;;1102:59:65;;604:8022:73;1102:59:65;;604:8022:73;943:13;604:8022;943:13;;604:8022;943:13;;;;604:8022;1102:59:65;;;;;;;;;;;;1075:134;1102:59;;;;;604:8022:73;1075:134:65;;:::i;:::-;1074:135;1224:13;;1259:3;604:8022:73;;1239:18:65;;;;;1322:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;943:13;;;;1304:29:65;;604:8022:73;1304:29:65;;604:8022:73;1304:29:65;;604:8022:73;1304:29:65;;;;;;;;;;1708:14;1304:29;1442:1;1304:29;;;;;1259:3;604:8022:73;1396:17:65;604:8022:73;;;;;;1354:9:65;;;:::i;:::-;604:8022:73;;1396:17:65;:::i;:::-;1477;604:8022:73;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;1566:9:65;;;:::i;:::-;604:8022:73;;;;;;;1577:9:65;;;:::i;:::-;604:8022:73;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;;1686:9:65;;;:::i;:::-;604:8022:73;;;1697:9:65;604:8022:73;;;;;1697:9:65;;:::i;:::-;604:8022:73;;1708:14:65;;;:::i;:::-;604:8022:73;1224:13:65;;1304:29;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;604:8022:73;;943:13;604:8022;;943:13;;;;1239:18:65;;604:8022:73;;1102:59:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;604:8022:73;;943:13;604:8022;;943:13;;;;604:8022;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7979:7;604:8022;;;-1:-1:-1;;;7979:29:73;;604:8022;7979:29;;604:8022;;;;;;;;;7979:29;;604:8022;;-1:-1:-1;;;;;604:8022:73;7979:29;;;;;;;;;;;604:8022;-1:-1:-1;;;;;;8028:9:73;;;:::i;:::-;604:8022;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;604:8022:73;;943:13;;;;3533:24:1;;604:8022:73;3533:24:1;;604:8022:73;-1:-1:-1;;;;;;;;;;;7979:29:73;604:8022;;;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;;;;604:8022:73;-1:-1:-1;;;;;;604:8022:73;8071:9;;-1:-1:-1;8071:9:73;:::i;:::-;604:8022;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;604:8022:73;;943:13;;;;3533:24:1;;604:8022:73;3533:24:1;;604:8022:73;-1:-1:-1;;;;;;;;;;;7979:29:73;604:8022;;;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;604:8022:73;;3533:24:1;;;;;:::i;:::-;604:8022:73;;3533:24:1;;;;;604:8022:73;;943:13;604:8022;;943:13;;;;3533:24:1;604:8022:73;;;7979:29;;;;;;;;;;;;;:::i;:::-;;;;604:8022;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;604:8022:73;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;604:8022:73;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;2372:38;;;2380:13;2372:38;2494:7;604:8022;;;-1:-1:-1;;;2494:52:73;;604:8022;2494:52;;604:8022;;;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;;;;;;2494:52;;604:8022;;-1:-1:-1;;;;;604:8022:73;2494:52;;;;;;;;;;;2372:38;943:13;;;;;;;2561:21;2569:13;2561:21;;2557:417;;;2561:21;;;2626:9;;;:::i;:::-;1590:14:0;2608:27:73;;-1:-1:-1;;;;;;;;;;;2598:38:73;;;;604:8022;;943:13;;;;2598:38;;604:8022;2598:38;;604:8022;2598:38;;943:13;2598:38;-1:-1:-1;;;;;;;;;;;2598:38:73;;;;;;;;2557:417;604:8022;;;;2494:7;27501:38:3;;943:13:73;;;;27501:38:3;;2679:4:73;943:13;27501:38:3;;604:8022:73;943:13;27501:38:3;;;943:13:73;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;2494:7:73;604:8022;;;27568:30:3;;;;;;:::i;:::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;2569:13;604:8022;;;7505:10:8;604:8022:73;;:::i;:::-;2679:4;;;;604:8022;;;;;;;;;4548:17;;;604:8022;;;;;;;;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;2494:7;604:8022;;;;;;2494:7;15735:37:8;;;;;;;;;;:::i;:::-;;27501:38:3;;15735:37:8;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;2494:7;604:8022;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;2557:417:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;2494:7;604:8022;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;2494:7:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;2494:7;604:8022;;;;;15943:15:8;2569:13:73;15943:15:8;;604:8022:73;15961:16:8;943:13:73;15961:16:8;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;2494:7;604:8022;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2557:417:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2557:417:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;2557:417:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;2494:7:73;604:8022;;;;-1:-1:-1;;;2718:49:73;;-1:-1:-1;;;;;604:8022:73;;;;2718:49;;604:8022;-1:-1:-1;;943:13:73;1590:14:0;;604:8022:73;;;943:13;604:8022;2718:49;-1:-1:-1;;;;;;;;;;;2718:49:73;;;;;;;;2557:417;;;604:8022;;-1:-1:-1;;;3007:29:73;;3030:4;604:8022;3007:29;;604:8022;;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3007:29:73;;;;;;;;;;;2557:417;-1:-1:-1;604:8022:73;;-1:-1:-1;;;3070:46:73;;3030:4;604:8022;3070:46;;604:8022;;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3070:46:73;;;;;;;;;;;2557:417;-1:-1:-1;604:8022:73;;-1:-1:-1;;;3127:35:73;;2494:7;604:8022;;;-1:-1:-1;;;;;;;;;;;3127:35:73;;;;;;;;2557:417;604:8022;3194:92;604:8022;3194:92;604:8022;;;;;;2494:7;604:8022;;;;;;943:13;;;;;;;;;3194:92;;604:8022;3194:92;;;:::i;:::-;;;;;;;;;;;;;;2557:417;1590:14:0;;;3297:805:73;;604:8022;;;3297:805;3347:21;;;604:8022;;-1:-1:-1;;;3455:46:73;;3030:4;604:8022;3455:46;;604:8022;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3455:46:73;;;;;;;;;;;3343:749;3455:86;;;;;;:::i;:::-;;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;3666:29:73;;3030:4;604:8022;3666:29;;604:8022;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3666:29:73;;;;;;;;;;;3343:749;3651:44;;;;;;:::i;:::-;3297:805;;;;;604:8022;;;3666:29;;;2494:7;3666:29;;2494:7;3666:29;;;;;;1590:14:0;3666:29:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3651:44;3666:29;;1590:14:0;-1:-1:-1;604:8022:73;;3666:29;;;-1:-1:-1;3666:29:73;;;604:8022;;943:13;604:8022;;943:13;;;;3455:46;;;2494:7;3455:46;;2494:7;3455:46;;;;;;1590:14:0;3455:46:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3455:86;:46;;;;;-1:-1:-1;3455:46:73;;;604:8022;;943:13;604:8022;;943:13;;;;3343:749;604:8022;;-1:-1:-1;;;3834:29:73;;3030:4;604:8022;3834:29;;604:8022;;;;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3834:29:73;;;;;;;;;;;3343:749;3819:44;;;;;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;3973:46:73;;3030:4;604:8022;3973:46;;604:8022;2494:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;3973:46:73;;;;;;;;;;;3343:749;3973:86;;;;;;:::i;:::-;3343:749;;3973:46;;;2494:7;3973:46;;2494:7;3973:46;;;;;;1590:14:0;3973:46:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3973:86;:46;;;;;-1:-1:-1;3973:46:73;;3834:29;;;2494:7;3834:29;;2494:7;3834:29;;;;;;1590:14:0;3834:29:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3819:44;3834:29;;;;;-1:-1:-1;3834:29:73;;3194:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3127:35;;2494:7;3127:35;;2494:7;3127:35;;;;;;1590:14:0;3127:35:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;-1:-1:-1;3194:92:73;3127:35;;;;;-1:-1:-1;3127:35:73;;3070:46;;;;2494:7;3070:46;;2494:7;3070:46;;;;;;1590:14:0;3070:46:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3070:46;;;;;;;-1:-1:-1;3070:46:73;;3007:29;;;;2494:7;3007:29;;2494:7;3007:29;;;;;;1590:14:0;3007:29:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3007:29;;;;;;;-1:-1:-1;3007:29:73;;2718:49;;;2494:7;2718:49;2494:7;2718:49;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;16720:176:8;604:8022:73;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;604:8022:73;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;604:8022:73;;;;;16769:41:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;12810:59:8;;;604:8022:73;;;;;12810:59:8;604:8022:73;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;604:8022:73;;-1:-1:-1;;;16824:61:8;;2494:7:73;604:8022;16824:61:8;;12810:59;;943:13:73;12810:59:8;;604:8022:73;12810:59:8;943:13:73;604:8022;;12810:59:8;-1:-1:-1;;;2494:52:73;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;604:8022:73;;16769:41:8;;;16724:29;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;;604:8022:73;;;16424:32:8;;;;;2494:7:73;16424:32:8;;2494:7:73;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;2569:13:73;604:8022;;;;16314:19:8;;604:8022:73;16314:19:8;604:8022:73;943:13;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;2494:7:73;16314:19:8;;16170:185;16314:19;604:8022:73;16314:19:8;;;;15938:460;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;943:13:73;12810:59:8;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;604:8022:73;;-1:-1:-1;;;12810:59:8;;2494:7:73;604:8022;12810:59:8;;604:8022:73;;;;943:13;604:8022;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;604:8022:73;-1:-1:-1;;;1590:14:0;;6854:12:8;604:8022:73;1590:14:0;943:13:73;;1590:14:0;15698:126:8;13208:33;;:::i;:::-;;15698:126;;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;943:13;;604:8022;2598:38;;;;;:::i;:::-;604:8022;;2598:38;;;;;604:8022;;;2557:417;2826:9;;;:::i;:::-;1590:14:0;2808:27:73;;-1:-1:-1;;;;;;;;;;;2798:38:73;;;;604:8022;;943:13;;;;2798:38;;604:8022;2798:38;;604:8022;2798:38;;943:13;2798:38;-1:-1:-1;;;;;;;;;;;2798:38:73;;;;;;;;2557:417;604:8022;;;;2494:7;27501:38:3;;943:13:73;;;;27501:38:3;;2879:4:73;943:13;27501:38:3;;604:8022:73;943:13;27501:38:3;;;943:13:73;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;2569:13;604:8022;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;2494:7;604:8022;;;;;;2494:7;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;2494:7;604:8022;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;2557:417:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;2494:7;604:8022;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;2494:7:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;2494:7;604:8022;;;;;15943:15:8;2569:13:73;15943:15:8;;604:8022:73;15961:16:8;943:13:73;15961:16:8;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;2557:417:73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;2494:7;604:8022;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2557:417:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2557:417:73;16678:31:8;;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;2557:417:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;2494:7:73;604:8022;;;;-1:-1:-1;;;2916:47:73;;-1:-1:-1;;;;;604:8022:73;;;;2916:47;;604:8022;1590:14:0;;;604:8022:73;;;;;1590:14:0;604:8022:73;2916:47;-1:-1:-1;;;;;;;;;;;2916:47:73;;;;;;;;2557:417;;;;2916:47;;;2494:7;2916:47;2494:7;2916:47;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;2494:7:73;16424:32:8;;2494:7:73;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;2569:13:73;604:8022;;;;16314:19:8;;604:8022:73;;;16314:19:8;604:8022:73;943:13;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;2494:7:73;16314:19:8;;;;;15938:460;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;943:13:73;12810:59:8;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;12810:59;604:8022:73;;-1:-1:-1;;;12810:59:8;;2494:7:73;604:8022;12810:59:8;;604:8022:73;;;;;;943:13;604:8022;;;;:::i;16314:19:8:-;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;604:8022:73;;943:13;604:8022;;943:13;;;;604:8022;-1:-1:-1;;;1590:14:0;;6854:12:8;604:8022:73;1590:14:0;943:13:73;;1590:14:0;15698:126:8;13208:33;;:::i;:::-;;15698:126;;2798:38:73;;;;;:::i;:::-;604:8022;;2798:38;;;;943:13;-1:-1:-1;;;943:13:73;;;604:8022;943:13;;;;2494:52;;;;;;;;;;;;;:::i;:::-;;;;2372:38;;;;604:8022;;;;;;;-1:-1:-1;;604:8022:73;;;;;;534:59:65;604:8022:73;534:59:65;;;;;;;;:::i;:::-;604:8022:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;3190:18:5;604:8022:73;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3190:18:5;604:8022:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;943:13:73;604:8022;;;;;;;;;;;;943:13;;;-1:-1:-1;;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;943:13;604:8022;943:13;604:8022;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:5;604:8022:73;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;604:8022:73;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8206:7;604:8022;;;-1:-1:-1;;;8206:64:73;;604:8022;8206:64;;604:8022;;;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;;;;;;;8206:64;;604:8022;;-1:-1:-1;;;;;604:8022:73;8206:64;;;;;;;;;;;604:8022;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;604:8022:73;;943:13;;;;2349:24:1;;604:8022:73;2349:24:1;;604:8022:73;8302:1;943:13;604:8022;;;2349:24:1;;943:13:73;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;604:8022:73;;8206:64;;;;;;;;;;;;;:::i;:::-;;;;604:8022;;;;;;;-1:-1:-1;;604:8022:73;;;;;;;;;;;;;;;;;;;;;943:13;;;1652:58;;;604:8022;1652:58;;604:8022;-1:-1:-1;;;;;;;;;;;604:8022:73;943:13;;604:8022;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;1652:58;;;;;;;;;;;;;;;;604:8022;1740:9;;;;:::i;:::-;1590:14:0;1730:19:73;;-1:-1:-1;;;;;;;;;;;1720:30:73;;;;604:8022;;943:13;;;;1720:30;;604:8022;1720:30;;604:8022;1720:30;;604:8022;1720:30;-1:-1:-1;;;;;;;;;;;1720:30:73;;;;;;;;;;;604:8022;1760:22;;-1:-1:-1;;;;;;;;;;;1760:22:73;;;;604:8022;;-1:-1:-1;;;1760:22:73;;604:8022;1770:11;;604:8022;1760:22;;604:8022;1760:22;604:8022;;;-1:-1:-1;;;;;;;;;;;1760:22:73;;;;;;;;;;;604:8022;1812:9;;;;;:::i;:::-;1590:14:0;1802:19:73;;-1:-1:-1;;;;;;;;;;;1792:30:73;;;;604:8022;;943:13;;;;1792:30;;604:8022;1792:30;;604:8022;1792:30;;604:8022;1792:30;-1:-1:-1;;;;;;;;;;;1792:30:73;;;;;;;;;;;604:8022;1832:22;;-1:-1:-1;;;;;;;;;;;1832:22:73;;;;604:8022;;-1:-1:-1;;;1832:22:73;;604:8022;1842:11;;604:8022;1832:22;;604:8022;1832:22;604:8022;;;-1:-1:-1;;;;;;;;;;;1832:22:73;;;;;;;;;;;604:8022;-1:-1:-1;604:8022:73;;;;;;;;;;;:::i;:::-;1906:1;604:8022;;;;;;;;;;1918:20;;;:::i;:::-;604:8022;1948:20;;;:::i;:::-;604:8022;;;943:13;;;;;;2018:63;;604:8022;;;2018:63;;604:8022;2018:63;;604:8022;-1:-1:-1;;;;;;;;;;;604:8022:73;;;;-1:-1:-1;;;;;;;;;;;943:13:73;604:8022;;;;1652:58;604:8022;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2018:63:73;;;;604:8022;;2018:63;;;;;;;;;;;604:8022;2097:13;;2131:3;604:8022;;2112:17;;;;;2159:9;2150:32;2159:9;604:8022;2159:9;;;:::i;:::-;;1590:14:0;2150:32:73;:::i;:::-;2196:34;604:8022;2205:9;;;;:::i;:::-;;:21;1590:14:0;2196:34:73;:::i;:::-;604:8022;2097:13;;2112:17;;604:8022;;2018:63;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;604:8022;;;943:13;;;;;;;;604:8022;;;;;;;-1:-1:-1;604:8022:73;;-1:-1:-1;604:8022:73;;;;;;;;;;;;;1832:22;;;;;:::i;:::-;604:8022;;1832:22;;;;1792:30;;;;;:::i;:::-;604:8022;;1792:30;;;;1760:22;;;;;:::i;:::-;604:8022;;1760:22;;;;1720:30;;;;;:::i;:::-;604:8022;;1720:30;;;;;604:8022;;;1652:58;;;;;;;;;;;;;:::i;:::-;;;;604:8022;;;;;;;;;;;;;2883:26:5;604:8022:73;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2883:26:5;604:8022:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;943:13;604:8022;943:13;604:8022;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;943:13;;604:8022;;;;;;;943:13;604:8022;;;;;;;;;;;;;;;;;;;;;;;;;6239:13;604:8022;;;;;;;:::i;:::-;1051:3;604:8022;;-1:-1:-1;;604:8022:73;;;;;;;;;6538:13;6553:19;1051:3;6553:19;;;;604:8022;;;;;;;;;:::i;:::-;1051:3;604:8022;;1051:3;;;;;;;6747:13;;6742:741;6618:1;;;6742:741;7498:13;;;;6618:1;;;7493:207;604:8022;;;;;;;;;;:::i;:::-;1051:3;604:8022;;;;;;;;6538:13;;6239;;;6533:109;604:8022;;;;;;;:::i;:::-;1051:3;604:8022;;1051:3;;6239:13;;;1051:3;6747:13;;;;6742:741;6239:13;;;6742:741;7498:13;;;;;;;7493:207;6239:13;;;604:8022;;;7538:3;1590:14:0;7513:23:73;;;;;7566:9;;;;:::i;:::-;;1590:14:0;1051:3:73;;;;;;;;;;7594:13;7667:21;7594:13;:30;:13;;;;;;;;;:::i;:::-;;1590:14:0;7594:30:73;;:::i;:::-;604:8022;7667:13;7648:9;;;;;:::i;:::-;;:17;1590:14:0;1051:3:73;7667:13;;:::i;:::-;;:21;1590:14:0;7667:21:73;;:::i;:::-;604:8022;7498:13;;;;1051:3;-1:-1:-1;;;1590:14:0;;;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;7513:23:73;604:8022;;;6783:3;6762:19;1051:3;6762:19;;;;;-1:-1:-1;604:8022:73;;-1:-1:-1;;;6815:13:73;;604:8022;;;;;6815:13;-1:-1:-1;;;;;;;;;;;6815:13:73;;;;;;;;;;;6783:3;-1:-1:-1;6843:592:73;;;;604:8022;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;6900:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;15943:15:8;;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;;;-1:-1:-1;;;6943:49:73;;-1:-1:-1;;;;;604:8022:73;;;;6943:49;;604:8022;-1:-1:-1;;7449:23:73;1590:14:0;;604:8022:73;;;27501:38:3;604:8022:73;6943:49;-1:-1:-1;;;;;;;;;;;6943:49:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7022:103;;;;-1:-1:-1;;;;;604:8022:73;7097:10;;;;:::i;:::-;1590:14:0;604:8022:73;;943:13;;;;;;;;;7022:103;;;604:8022;7022:103;;;:::i;:::-;;;;;;;;;;;;;;6843:592;7010:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;604:8022;;943:13;;;;7449:23;;604:8022;7449:23;;604:8022;;7449:23;;;;-1:-1:-1;;;;;;;;;;;7449:23:73;;;;;;;;;;;;;6843:592;6783:3;604:8022;6747:13;;;7449:23;;;604:8022;7449:23;;;;;;;;;:::i;:::-;;;;;7022:103;;;;;;;;;;;;;;:::i;:::-;;;;6943:49;;;604:8022;6943:49;;;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;:::i;:::-;16021:3;1590:14:0;;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;604:8022:73;;;16314:19:8;;604:8022:73;16314:19:8;604:8022:73;7449:23;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;604:8022:73;16314:19:8;;16170:185;16314:19;604:8022:73;16314:19:8;;;;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;12810:59:8;;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;604:8022:73:-;-1:-1:-1;;;1590:14:0;;6854:12:8;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;15698:126:8;13208:33;;:::i;:::-;;15698:126;;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;7449:23;943:13;604:8022;6843:592;7199:10;;;;:::i;:::-;1590:14:0;6843:592:73;604:8022;;;;27501:38:3;;943:13:73;;;;27501:38:3;;7192:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;6843:592;604:8022;;;;6843:592;604:8022;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;6843:592:73;604:8022;;;;15610:11:8;604:8022:73;6843:592;604:8022;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;6843:592;604:8022;;;15889:37:8;;604:8022:73;6843:592;604:8022;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;6843:592:73;604:8022;;;;6843:592;604:8022;15943:15:8;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;6843:592:73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;6843:592:73;16424:32:8;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;-1:-1:-1;604:8022:73;12810:59:8;604:8022:73;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;6843:592:73;16678:31:8;;;;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;7228:59;;604:8022;-1:-1:-1;;;;;604:8022:73;7276:10;;;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;7228:59:73;;-1:-1:-1;;;;;604:8022:73;;;;7228:59;;604:8022;1590:14:0;;;604:8022:73;;;;;;1590:14:0;;;;;7228:59:73;;;;-1:-1:-1;;;;;;;;;;;7228:59:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7317:103;;;;-1:-1:-1;;;;;604:8022:73;7392:10;;;;:::i;:::-;1590:14:0;604:8022:73;;943:13;;;;;;;;;7317:103;;;604:8022;7317:103;;;:::i;:::-;;;;;;;;;;;;;;6843:592;7305:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;;7317:103;;;;;;;;;;;;;;:::i;:::-;;;;7228:59;;;604:8022;7228:59;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;;;6843:592:73;16587:43:8;;:::i;:::-;6843:592:73;16587:43:8;;;;;;;604:8022:73;;943:13;6843:592;943:13;;;;;16424:32:8;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;604:8022:73;;;;;16314:19:8;;604:8022:73;;;-1:-1:-1;604:8022:73;7449:23;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;604:8022:73;16314:19:8;6843:592:73;16314:19:8;;;15938:460;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;12810:59:8;;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;6843:592;604:8022;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;16314:19;;;;;;6843:592:73;16314:19:8;;;;;;:::i;:::-;;;;604:8022:73;943:13;;;6843:592;1590:14:0;6854:12:8;604:8022:73;1590:14:0;7449:23:73;6843:592;1590:14:0;15698:126:8;13208:33;;:::i;:::-;;15698:126;;604:8022:73;943:13;;;6843:592;604:8022;;;;7449:23;6843:592;604:8022;6815:13;;;;604:8022;6815:13;;;;;;;;;1590:14:0;6815:13:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;6815;;;;;;;-1:-1:-1;6815:13:73;;6762:19;;;;1051:3;;;;;;;604:8022;1051:3;;;:::i;:::-;;;;;;;;;;;;;;6574;6553:19;;1051:3;6553:19;;;;;1051:3;;;;;;;523:5:65;6606:4:73;523:5:65;;6606:4:73;523:5:65;;;;;;;;;;;;6623:8:73;523:5:65;;;;;;;6593:38:73;;;;;;;;:::i;:::-;604:8022;;6538:13;;;;;523:5:65;-1:-1:-1;;;1590:14:0;;;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;523:5:65;-1:-1:-1;;;1590:14:0;;;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;6553:19:73;;;;;7538:3;1590:14:0;7513:23:73;;;;;7566:9;;;;:::i;:::-;;1590:14:0;1051:3:73;;;;;;;;;7594:13;7667:21;7594:13;:30;:13;;;;;;;;;:::i;7667:21::-;604:8022;7498:13;;;;7513:23;;;6783:3;6762:19;1051:3;6762:19;;;;;-1:-1:-1;604:8022:73;;-1:-1:-1;;;6815:13:73;;604:8022;;;;;6815:13;-1:-1:-1;;;;;;;;;;;6815:13:73;;;;;;;;;;;6783:3;-1:-1:-1;6843:592:73;;;;604:8022;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;6900:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;604:8022;15610:11:8;604:8022:73;15653:34:8;604:8022:73;15610:11:8;604:8022:73;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;;604:8022:73;;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;15943:15:8;;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;;;-1:-1:-1;;;6943:49:73;;-1:-1:-1;;;;;604:8022:73;;;;6943:49;;604:8022;-1:-1:-1;;7449:23:73;1590:14:0;;604:8022:73;;;27501:38:3;604:8022:73;6943:49;-1:-1:-1;;;;;;;;;;;6943:49:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;7022:103;;;;-1:-1:-1;;;;;604:8022:73;7097:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;943:13;;;;;;;;;7022:103;;604:8022;7022:103;;;:::i;:::-;;;;;;;;;;;;;;6843:592;7010:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;604:8022;;943:13;;;;7449:23;;604:8022;7449:23;;604:8022;;7449:23;;;;-1:-1:-1;;;;;;;;;;;7449:23:73;;;;;;;;;;;;;6843:592;6783:3;604:8022;6747:13;;;7449:23;;;604:8022;7449:23;;;;;;;;;:::i;:::-;;;;;;604:8022;;943:13;604:8022;;943:13;;;;7022:103;;;;;;;;;;;;;;:::i;:::-;;;;;604:8022;;943:13;604:8022;;943:13;;;;6943:49;;;604:8022;6943:49;;;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;:::i;15698:126::-;13208:33;;:::i;:::-;;15698:126;;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;7449:23;943:13;604:8022;6843:592;7199:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;7192:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;6854:12:8;604:8022:73;7009:9:8;604:8022:73;15610:11:8;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;943:13;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;6843:592:73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;7228:59;;604:8022;-1:-1:-1;;;;;604:8022:73;7276:10;;;;:::i;7228:59::-;;;;-1:-1:-1;;;;;;;;;;;7228:59:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7317:103;;;;-1:-1:-1;;;;;604:8022:73;7392:10;;;;:::i;:::-;1590:14:0;604:8022:73;;943:13;;;;;;;;;7317:103;;;604:8022;7317:103;;;:::i;:::-;;;;;;;;;;;;;;6843:592;7305:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;;7317:103;;;;;;;;;;;;;;:::i;:::-;;;;7228:59;;;604:8022;7228:59;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;-1:-1:-1;16028:34:8;;-1:-1:-1;16028:34:8;;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;-1:-1:-1;604:8022:73;;;;;;;;943:13;;;16314:19:8;;;604:8022:73;16314:19:8;;604:8022:73;16314:19:8;;7449:23:73;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;604:8022:73;16314:19:8;16170:185;16314:19;;;;;15938:460;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;12810:59:8;;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;;16170:185:8;;;;;:::i;:::-;6843:592:73;15938:460:8;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;604:8022:73;-1:-1:-1;;;1590:14:0;;6854:12:8;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;;-1:-1:-1;;;1590:14:0;;6854:12:8;604:8022:73;1590:14:0;7449:23:73;943:13;1590:14:0;15698:126:8;13208:33;;:::i;:::-;;15698:126;;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;7449:23;943:13;604:8022;6815:13;;;;604:8022;6815:13;;;;;;;;;1590:14:0;6815:13:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;6815;;;;;;;-1:-1:-1;6815:13:73;;6762:19;;;;1051:3;604:8022;1051:3;;;;;:::i;:::-;;;;;;;;;;;;;6574;1051;;;;;;;;523:5:65;6606:4:73;523:5:65;;6606:4:73;523:5:65;;;;;;;;;;;;6623:8:73;523:5:65;;;;;;;6593:38:73;;;;;;;:::i;:::-;604:8022;;6538:13;;604:8022;;;;;;;;;;;;;;;;;;3038:18:5;604:8022:73;;;;;;;3038:18:5;604:8022:73;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;604:8022:73;;;;;;;3331:16:5;604:8022:73;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3485:19:5;604:8022:73;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3485:19:5;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:5;604:8022:73;;;;;;;2563:16:5;604:8022:73;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6075:4;604:8022;;;;;;;:::i;:::-;1051:3;604:8022;;-1:-1:-1;;604:8022:73;;;;;;;;;6538:13;6553:19;1051:3;6553:19;;;;604:8022;;;;;;;;;:::i;:::-;1051:3;604:8022;;1051:3;;;;;;;6747:13;;6742:741;6618:1;;;6742:741;7498:13;;;;6618:1;;;7493:207;604:8022;;;;;;;;;;:::i;:::-;1051:3;604:8022;;;;;;;;6538:13;;6618:1;;;6533:109;604:8022;;;;;;;:::i;:::-;1051:3;604:8022;;1051:3;;6618:1;;;1051:3;6747:13;;;;6742:741;6618:1;;;6742:741;7498:13;;;;;;;7493:207;6618:1;;;604:8022;;;7538:3;1590:14:0;7513:23:73;;;;;7566:9;;;;:::i;:::-;;1590:14:0;1051:3:73;;;;;;;;;;7594:13;7667:21;7594:13;:30;:13;;;;;;;;;:::i;7667:21::-;604:8022;7498:13;;;;6783:3;6762:19;1051:3;6762:19;;;;;-1:-1:-1;604:8022:73;;-1:-1:-1;;;6815:13:73;;604:8022;;;;;6815:13;-1:-1:-1;;;;;;;;;;;6815:13:73;;;;;;;;;;;6783:3;-1:-1:-1;6843:592:73;;;;604:8022;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;6900:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;15943:15:8;;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;;;-1:-1:-1;;;6943:49:73;;-1:-1:-1;;;;;604:8022:73;;;;6943:49;;604:8022;-1:-1:-1;;7449:23:73;1590:14:0;;604:8022:73;;;27501:38:3;604:8022:73;6943:49;-1:-1:-1;;;;;;;;;;;6943:49:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7022:103;;;;-1:-1:-1;;;;;604:8022:73;7097:10;;;;:::i;:::-;1590:14:0;604:8022:73;;943:13;;;;;;;;;7022:103;;;604:8022;7022:103;;;:::i;:::-;;;;;;;;;;;;;;6843:592;7010:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;604:8022;;943:13;;;;7449:23;;604:8022;7449:23;;604:8022;;7449:23;;;;-1:-1:-1;;;;;;;;;;;7449:23:73;;;;;;;;;;;;;6843:592;6783:3;604:8022;6747:13;;;7449:23;;;604:8022;7449:23;;;;;;;;;:::i;:::-;;;;;7022:103;;;;;;;;;;;;;;:::i;:::-;;;;6943:49;;;604:8022;6943:49;;;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;6843:592:73;7199:10;;;;:::i;:::-;1590:14:0;6843:592:73;604:8022;;;;27501:38:3;;943:13:73;;;;27501:38:3;;7192:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;6843:592;604:8022;;;;6843:592;604:8022;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;6843:592:73;604:8022;;;;15610:11:8;604:8022:73;6843:592;604:8022;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;6843:592;604:8022;;;15889:37:8;;604:8022:73;6843:592;604:8022;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;6843:592:73;604:8022;;;;6843:592;604:8022;15943:15:8;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;6843:592:73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;6843:592:73;16424:32:8;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;-1:-1:-1;604:8022:73;12810:59:8;604:8022:73;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;6843:592:73;16678:31:8;;;;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;7228:59;;604:8022;-1:-1:-1;;;;;604:8022:73;7276:10;;;;:::i;7228:59::-;;;;-1:-1:-1;;;;;;;;;;;7228:59:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7317:103;;;;-1:-1:-1;;;;;604:8022:73;7392:10;;;;:::i;7317:103::-;;;;;;;;;;;;;;6843:592;7305:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;;7317:103;;;;;;;;;;;;;;:::i;:::-;;;;7228:59;;;604:8022;7228:59;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;;;6843:592:73;16587:43:8;;:::i;:::-;6843:592:73;16587:43:8;;;;;;16424:32;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;604:8022:73;;;;;16314:19:8;;604:8022:73;;;-1:-1:-1;604:8022:73;7449:23;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;604:8022:73;16314:19:8;6843:592:73;16314:19:8;;;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;12810:59:8;;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;6843:592;604:8022;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;15698:126;13208:33;;:::i;:::-;;15698:126;;6815:13:73;;;;604:8022;6815:13;;;;;;;;;1590:14:0;6815:13:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;6815;;;;;;;-1:-1:-1;6815:13:73;;6762:19;;;;1051:3;;;;;;;604:8022;1051:3;;;:::i;:::-;;;;;;;;;;;;;;6574;6553:19;;1051:3;6553:19;;;;;1051:3;;;;;;;523:5:65;6606:4:73;523:5:65;;6606:4:73;523:5:65;;;;;;;;;;;;6623:8:73;523:5:65;;;;;;;6593:38:73;;;;;;;;:::i;:::-;604:8022;;6538:13;;;;;6553:19;;;;;7538:3;1590:14:0;7513:23:73;;;;;7566:9;;;;:::i;:::-;;1590:14:0;1051:3:73;;;;;;;;;7594:13;7667:21;7594:13;:30;:13;;;;;;;;;:::i;7667:21::-;604:8022;7498:13;;;;7513:23;;;6783:3;6762:19;1051:3;6762:19;;;;;-1:-1:-1;604:8022:73;;-1:-1:-1;;;6815:13:73;;604:8022;;;;;6815:13;-1:-1:-1;;;;;;;;;;;6815:13:73;;;;;;;;;;;6783:3;-1:-1:-1;6843:592:73;;;;604:8022;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;6900:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;604:8022;15610:11:8;604:8022:73;15653:34:8;604:8022:73;15610:11:8;604:8022:73;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;;604:8022:73;;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;15943:15:8;;;;604:8022:73;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;;;-1:-1:-1;;;6943:49:73;;-1:-1:-1;;;;;604:8022:73;;;;6943:49;;604:8022;-1:-1:-1;;7449:23:73;1590:14:0;;604:8022:73;;;27501:38:3;604:8022:73;6943:49;-1:-1:-1;;;;;;;;;;;6943:49:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7022:103;;;;-1:-1:-1;;;;;604:8022:73;7097:10;;;;:::i;7022:103::-;;;;;;;;;;;;;;6843:592;7010:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;604:8022;;943:13;;;;7449:23;;604:8022;7449:23;;604:8022;;7449:23;;;;-1:-1:-1;;;;;;;;;;;7449:23:73;;;;;;;;;;;;;6843:592;6783:3;604:8022;6747:13;;;7449:23;;;604:8022;7449:23;;;;;;;;;:::i;:::-;;;;;7022:103;;;;;;;;;;;;;;:::i;:::-;;;;6943:49;;;604:8022;6943:49;;;;;;;;;:::i;:::-;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;6843:592:73;7199:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;7192:4:73;7449:23;27501:38:3;;604:8022:73;7449:23;27501:38:3;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;;;7505:10:8;604:8022:73;;:::i;:::-;;;6854:12:8;604:8022:73;7009:9:8;604:8022:73;15610:11:8;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;943:13;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;;;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;6843:592:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;;;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;;;;;;;;15961:16:8;7009:9;15961:16;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;6843:592:73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;6843:592:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;6843:592:73;16678:31:8;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;6843:592:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;604:8022:73;;;7228:59;;604:8022;-1:-1:-1;;;;;604:8022:73;7276:10;;;;:::i;7228:59::-;;;;-1:-1:-1;;;;;;;;;;;7228:59:73;;;;;;;;6843:592;-1:-1:-1;604:8022:73;;;;7317:103;;;;-1:-1:-1;;;;;604:8022:73;7392:10;;;;:::i;7317:103::-;;;;;;;;;;;;;;6843:592;7305:115;;;;;:::i;:::-;;;;;;:::i;:::-;;6843:592;;7317:103;;;;;;;;;;;;;;:::i;:::-;;;;7228:59;;;604:8022;7228:59;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;604:8022:73;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;-1:-1:-1;16028:34:8;;-1:-1:-1;16028:34:8;;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;-1:-1:-1;604:8022:73;;;;;;;;943:13;;;16314:19:8;;;604:8022:73;16314:19:8;;604:8022:73;16314:19:8;;7449:23:73;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;604:8022:73;16314:19:8;16170:185;16314:19;;;;;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;12810:59:8;;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;;16170:185:8;;;;;:::i;:::-;6843:592:73;15938:460:8;;;15698:126;13208:33;;:::i;:::-;;15698:126;;6815:13:73;;;;604:8022;6815:13;;;;;;;;;1590:14:0;6815:13:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;6815;;;;;;;-1:-1:-1;6815:13:73;;6762:19;;;;1051:3;604:8022;1051:3;;;;;:::i;:::-;;;;;;;;;;;;;6574;1051;;;;;;;;523:5:65;6606:4:73;523:5:65;;6606:4:73;523:5:65;;;;;;;;;;;;6623:8:73;523:5:65;;;;;;;6593:38:73;;;;;;;:::i;:::-;604:8022;;6538:13;;604:8022;;;;;;;;;;;;;;;-1:-1:-1;;;1205:20:73;;604:8022;;1205:20;;604:8022;;;;;;-1:-1:-1;;;604:8022:73;;;;1205:20;604:8022;1205:20;604:8022;-1:-1:-1;;;;;;;;;;;1205:20:73;;;;;;;604:8022;1205:20;604:8022;1205:20;;;;;604:8022;;;;943:13;;;;;;;1185:52;;604:8022;;1185:52;;604:8022;;;;;;:::i;:::-;1167:8;604:8022;;;;1185:52;;;-1:-1:-1;;;;;;;;;;;1185:52:73;;;;;;;;604:8022;;;;1258:51;;;;;;;;-1:-1:-1;;;;;1258:51:73;;;;;604:8022;1258:51;;;;;;-1:-1:-1;;;;;;;;;;;604:8022:73;;-1:-1:-1;;;;;;;;;;;604:8022:73;;;;1258:51;;;;;;;;;604:8022;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1319:31:73;;;;604:8022;;;943:13;;;1319:31;;-1:-1:-1;;;;;;;;;;;604:8022:73;1319:31;;604:8022;;;;;;;;;;;-1:-1:-1;;;1205:20:73;604:8022;;;1319:31;;;;;-1:-1:-1;;;;;;;;;;;1319:31:73;;;;;;;;604:8022;1360:33;;-1:-1:-1;;;;;;;;;;;1360:33:73;;;;604:8022;;;943:13;;;1360:33;;-1:-1:-1;;;;;;;;;;;604:8022:73;1360:33;;604:8022;;;;;;;;;;;-1:-1:-1;;;1205:20:73;604:8022;;;1360:33;;1319:31;1360:33;;-1:-1:-1;;;;;;;;;;;1360:33:73;;;;;;;;604:8022;;1319:31;;;;;:::i;:::-;604:8022;;1319:31;;;;1258:51;-1:-1:-1;;;604:8022:73;;;;;;943:13;604:8022;1185:52;604:8022;1185:52;;604:8022;1185:52;;;;;;1590:14:0;1185:52:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;1185:52;;;;;-1:-1:-1;1185:52:73;;1205:20;;;;;;;;;;;;;:::i;:::-;;;;604:8022;;;;;;;-1:-1:-1;;604:8022:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;4234:38;;;;;;4242:13;4234:38;;4356:7;604:8022;-1:-1:-1;;;4356:52:73;;604:8022;;4356:52;;604:8022;;;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;-1:-1:-1;;;;;;;;;;;943:13:73;;;604:8022;;;;4356:52;;604:8022;;-1:-1:-1;;;;;604:8022:73;4356:52;;;;;;;604:8022;4356:52;;;4234:38;943:13;;;;;;;4423:21;4431:13;4423:21;;4419:460;;;4423:21;;;4488:9;;;:::i;:::-;1590:14:0;4470:27:73;;-1:-1:-1;;;;;;;;;;;4460:38:73;;;;604:8022;;943:13;;;;4460:38;;604:8022;4460:38;;604:8022;4460:38;;943:13;4460:38;-1:-1:-1;;;;;;;;;;;4460:38:73;;;;;;;;4419:460;604:8022;;;;4356:7;27501:38:3;;943:13:73;;;;27501:38:3;;4541:4:73;943:13;27501:38:3;;604:8022:73;943:13;27501:38:3;;;943:13:73;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;4431:13;604:8022;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;4356:7;604:8022;;;;;;4356:7;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;4356:7;604:8022;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;4419:460:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;4356:7;604:8022;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;4356:7:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;4356:7;604:8022;;;;;15943:15:8;4431:13:73;15943:15:8;;604:8022:73;15961:16:8;943:13:73;15961:16:8;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;604:8022:73;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;4356:7;604:8022;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4419:460:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4419:460:73;16678:31:8;;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;4419:460:73;16720:176:8;;;14785:4;;;;;;:::i;:::-;4356:7:73;604:8022;;;;-1:-1:-1;;;4580:66:73;;-1:-1:-1;;;;;604:8022:73;;;;4580:66;;604:8022;-1:-1:-1;;943:13:73;1590:14:0;;604:8022:73;;;943:13;604:8022;4580:66;-1:-1:-1;;;;;;;;;;;4580:66:73;;;;;;;;4419:460;;;604:8022;;-1:-1:-1;;;4913:46:73;;4953:4;604:8022;4913:46;;604:8022;;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;4913:46:73;;;;;;;;;;;4419:460;-1:-1:-1;604:8022:73;;-1:-1:-1;;;4992:29:73;;4953:4;604:8022;4992:29;;604:8022;;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;4992:29:73;;;;;;;;;;;4419:460;604:8022;5053:92;604:8022;5053:92;604:8022;;;;;;4356:7;604:8022;;;;;;943:13;;;;;;;;;5053:92;;604:8022;5053:92;;;:::i;:::-;;;;;;;;;;;;;;4419:460;1590:14:0;;;5156:805:73;;604:8022;;;5156:805;5206:21;;;604:8022;;-1:-1:-1;;;5314:29:73;;4953:4;604:8022;5314:29;;604:8022;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;5314:29:73;;;;;;;;;;;5202:749;5314:44;;;;;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;5508:46:73;;4953:4;604:8022;5508:46;;604:8022;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;5508:46:73;;;;;;;;;;;5468:86;;;;;;:::i;5314:29::-;;;4356:7;5314:29;;4356:7;5314:29;;;;;;1590:14:0;5314:29:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;5314:44;:29;;;;;-1:-1:-1;5314:29:73;;5202:749;604:8022;;-1:-1:-1;;;5718:46:73;;4953:4;604:8022;5718:46;;604:8022;;;;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;5718:46:73;;;;;;;;;;;5202:749;5678:86;;;;;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;5874:29:73;;4953:4;604:8022;5874:29;;604:8022;4356:7;604:8022;943:13;604:8022;-1:-1:-1;;;;;;;;;;;5874:29:73;;;;;;;;;;;:44;;;;;;:::i;5718:46::-;;;4356:7;5718:46;;4356:7;5718:46;;;;;;1590:14:0;5718:46:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;5678:86;5718:46;;;;;-1:-1:-1;5718:46:73;;5053:92;;;;;;;;;;;;;;;:::i;:::-;;;;;4992:29;;;;4356:7;4992:29;;4356:7;4992:29;;;;;;1590:14:0;4992:29:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;4992:29;;5053:92;4992:29;;;;;-1:-1:-1;4992:29:73;;4913:46;;;;4356:7;4913:46;;4356:7;4913:46;;;;;;1590:14:0;4913:46:73;;;:::i;:::-;;;1590:14:0;;;;943:13:73;4913:46;;;;;;;-1:-1:-1;4913:46:73;;4580:66;;;4356:7;4580:66;4356:7;4580:66;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;4548:17:73;16724:29:8;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;4356:7:73;16424:32:8;;4356:7:73;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;4460:38:73;;;;;:::i;:::-;604:8022;;4460:38;;;;4419:460;4705:9;;;;:::i;:::-;1590:14:0;4687:27:73;;-1:-1:-1;;;;;;;;;;;4677:38:73;;;;604:8022;;943:13;;;;4677:38;;604:8022;4677:38;;604:8022;;4677:38;943:13;4677:38;-1:-1:-1;;;;;;;;;;;4677:38:73;;;;;;;;4419:460;604:8022;;;;;4356:7;27501:38:3;;943:13:73;;;;27501:38:3;;4767:4:73;943:13;27501:38:3;;604:8022:73;943:13;27501:38:3;;;943:13:73;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;604:8022:73;;7009:9:8;604:8022:73;;;7009:9:8;604:8022:73;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;4431:13;604:8022;;;7505:10:8;604:8022:73;;:::i;:::-;;;;;;;;6854:12:8;604:8022:73;;7009:9:8;604:8022:73;;943:13;15610:11:8;604:8022:73;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;;;4356:7;604:8022;;;;;;4356:7;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;604:8022:73;;4356:7;604:8022;;15610:11:8;604:8022:73;;;15703:77:8;604:8022:73;;15702:78:8;15698:126;;4419:460:73;-1:-1:-1;;;;;604:8022:73;;;;;;27635:8:3;604:8022:73;;;;;;;;4356:7;604:8022;15889:37:8;;604:8022:73;;;;;;15889:37:8;;;4356:7:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;604:8022:73;;4356:7;604:8022;;;;;15943:15:8;4431:13:73;15943:15:8;;604:8022:73;15961:16:8;943:13:73;15961:16:8;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;4419::73;604:8022;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;604:8022:73;;;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;4356:7;604:8022;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4419:460:73;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;604:8022:73;;;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;;;;;12656:92:8;;;;12810:59;;;604:8022:73;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4419:460:73;16678:31:8;;;;;:::i;:::-;16724:8;;;604:8022:73;;;16724:29:8;;4419:460:73;16720:176:8;;;;14785:4;;;;;;:::i;:::-;4356:7:73;604:8022;;;;-1:-1:-1;;;4804:64:73;;-1:-1:-1;;;;;604:8022:73;;;;4804:64;;604:8022;1590:14:0;;;604:8022:73;;;;;1590:14:0;604:8022:73;4804:64;-1:-1:-1;;;;;;;;;;;4804:64:73;;;;;;;;4419:460;;;;4804:64;;;4356:7;4804:64;4356:7;4804:64;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;604:8022:73;;16587:43:8;;;;16424:32;;;;;4356:7:73;16424:32:8;;4356:7:73;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;-1:-1:-1;;;16314:19:8;;4431:13:73;604:8022;;;;16314:19:8;;604:8022:73;;;16314:19:8;604:8022:73;943:13;604:8022;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;4356:7:73;16314:19:8;;;;;604:8022:73;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;12810:59:8;;;-1:-1:-1;;;943:13:73;12810:59:8;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;;;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;4677:38:73;;;;;604:8022;4677:38;;:::i;:::-;604:8022;4677:38;;;;943:13;;;;604:8022;943:13;;604:8022;943:13;;604:8022;943:13;4356:52;;;;;;604:8022;4356:52;;;;;;:::i;:::-;;;;4234:38;604:8022;4234:38;;;604:8022;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;:::o;:::-;1590:14:0;604:8022:73;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;:::o;:::-;;;27501:38:3;;604:8022:73;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;-1:-1:-1;;604:8022:73;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7505:10:8;604:8022:73;;;;;;7505:10:8;-1:-1:-1;604:8022:73;;-1:-1:-1;604:8022:73;;;-1:-1:-1;604:8022:73;:::o;:::-;943:13;;;604:8022;;;;;;;;;534:59:65;604:8022:73;;;;;;534:59:65;-1:-1:-1;604:8022:73;;-1:-1:-1;604:8022:73;;;-1:-1:-1;604:8022:73;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;943:13;;;604:8022;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;604:8022:73;;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;;;;:::o;943:13::-;;;;;;;;;;;-1:-1:-1;;;;;943:13:73;;;;;;;;;;;;;;;;;;;:::i;:::-;604:8022;;;;;;;:::i;:::-;943:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;1590:14:0;604:8022:73;;1590:14:0;;;;;;:::o;:::-;604:8022:73;;4431:13;1590:14:0;;;;;;;:::o;:::-;604:8022:73;;1590:14:0;;;;;;;;;;;;:::o;:::-;;;;;;;;;;604:8022:73;;;;;;;1590:14:0;:::o;:::-;;;;;;;;;943:13:73;1590:14:0;:::o;:::-;;;;;;;;;;;604:8022:73;;;;:::i;:::-;1590:14:0;;;943:13:73;;;1590:14:0;;;943:13:73;1590:14:0;;;:::o;:::-;;;;;;;;;;;604:8022:73;;;;;;;:::i;:::-;943:13;;1590:14:0;;;;;943:13:73;1590:14:0;;;;;;:::i;:::-;604:8022:73;1590:14:0;;;;:::o;:::-;;;;;;;604:8022:73;;;;-1:-1:-1;;;;;;;;;;;1590:14:0;;;604:8022:73;-1:-1:-1;;;;;;;;;;;1590:14:0;;;604:8022:73;943:13;;;;;;1590:14:0;;;;;;;604:8022:73;1590:14:0:o;:::-;;;;;;;604:8022:73;;;;-1:-1:-1;;;;;;;;;;;1590:14:0;;;604:8022:73;-1:-1:-1;;;;;;;;;;;1590:14:0;;;604:8022:73;943:13;;;;;;1590:14:0;;;;;;;604:8022:73;1590:14:0:o;:::-;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;1590:14:0;;;604:8022:73;;;1590:14:0;;;604:8022:73;-1:-1:-1;1590:14:0;;;;;;;604:8022:73;;;;1590:14:0;;;:::o;:::-;;;;;;;;;;:::o;523:5:65:-;;;;;;;:::o;:::-;943:13:73;;;523:5:65;;;;;;;;8534:180;1590:14:0;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;1590:14:0;8655:52:65;;:::i;:::-;8534:180;:::o;604:8022:73:-;-1:-1:-1;;;;;604:8022:73;;;;;;-1:-1:-1;;604:8022:73;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;;;;;;;:::o;:::-;6854:12:8;604:8022:73;;-1:-1:-1;;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;604:8022:73;;;:::o;:::-;6854:12:8;604:8022:73;;-1:-1:-1;;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;604:8022:73;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;604:8022:73;;;;;;;1325:14:1;:::o;1298:143::-;604:8022:73;;;943:13;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;604:8022:73;192:59:1;;;;;;604:8022:73;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;604:8022:73;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;943:13:73;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;604:8022:73;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;2270:110:1;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;604:8022:73;;943:13;;;;2349:24:1;;;;;604:8022:73;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;:::-;2270:110::o;1051:3:73:-;;;;;;;;;;:::o;:::-;604:8022;;;;;;:::i;:::-;1051:3;-1:-1:-1;1051:3:73;;-1:-1:-1;1051:3:73;;;;604:8022;;;;;;;:::i;:::-;-1:-1:-1;1051:3:73;;-1:-1:-1;1051:3:73;;;;;;:::o;13112:110:1:-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;604:8022:73;;943:13;;;;13191:24:1;;;;;604:8022:73;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;8720:323:65:-;604:8022:73;8906:3:65;604:8022:73;;8881:23:65;;;;;8929:15;;;;:::i;:::-;604:8022:73;;;;;;;;8929:29:65;8925:79;;604:8022:73;;8866:13:65;;8925:79;8978:11;;604:8022:73;8978:11:65;:::o;8881:23::-;;;604:8022:73;8720:323:65;:::o;:::-;604:8022:73;8906:3:65;604:8022:73;;8881:23:65;;;;;8929:15;;;;:::i;:::-;604:8022:73;;;;;;;2531:24:65;8929:29;8925:79;;604:8022:73;;8866:13:65;;8720:323;604:8022:73;8906:3:65;604:8022:73;;8881:23:65;;;;;8929:15;;;;:::i;:::-;604:8022:73;;;;;;;6005:21:65;8929:29;8925:79;;604:8022:73;;8866:13:65;;5926:434:58;604:8022:73;;6065:47:58;;;;943:13:73;;;;6065:47:58;;604:8022:73;;;;;;6065:47:58;;;;;604:8022:73;4548:17;;1590:14:0;;;604:8022:73;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;604:8022:73;;;943:13;;;;6065:47:58;6232:43;;;6065:47;6232:43;;604:8022:73;-1:-1:-1;6065:47:58;604:8022:73;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;604:8022:73;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;604:8022:73;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;604:8022:73;;;;;;;;;:::o;1911:4479:65:-;;;;;;604:8022:73;;-1:-1:-1;;;2117:44:65;;;;;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;943:13;;;604:8022;;;943:13;;;604:8022;1911:4479:65;;;;;2117:44;604:8022:73;;943:13;;;2117:44:65;;;;;604:8022:73;2117:44:65;-1:-1:-1;;;;;604:8022:73;;2117:44:65;;;;;;:47;:44;;;;;1911:4479;2117:47;;:::i;:::-;1590:14:0;;;-1:-1:-1;604:8022:73;;;;;;2174:61:65;;604:8022:73;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;2174:61:65;;;:::i;:::-;604:8022:73;;;2117:44:65;604:8022:73;;44640:78:15;604:8022:73;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;;44640:78:15;;;;;;604:8022:73;44640:78:15;;;604:8022:73;44640:78:15;;;604:8022:73;;;;;;:::i;:::-;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;604:8022:73;;1222:159:15;;591:42;1222:159;;-1:-1:-1;604:8022:73;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;943:13;;;604:8022;;;943:13;;;604:8022;2117:44:65;604:8022:73;;943:13;;;2467:50:65;604:8022:73;;-1:-1:-1;;;;;604:8022:73;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;604:8022:73;;;;;;;;:::i;:::-;2117:44:65;604:8022:73;;;;;;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;604:8022:73;8433:4:65;523:5;;;8412:25;;;:::i;:::-;604:8022:73;;;8468:1:65;1590:14:0;;;;604:8022:73;;1590:14:0;;523:5:65;;8420:1;523:5;604:8022:73;;;;8487:1:65;1590:14:0;;;;604:8022:73;;;1590:14:0;;604:8022:73;;;-1:-1:-1;;;2822:49:65;;604:8022:73;2117:44:65;604:8022:73;;2822:49:65;1590:14:0;2822:49:65;;;2117:44;2822:49;;;:::i;:::-;;604:8022:73;;-1:-1:-1;;;;;604:8022:73;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;604:8022:73;;-1:-1:-1;;1590:14:0;;;4548:17:73;1590:14:0;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;604:8022:73;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;604:8022:73;;-1:-1:-1;;1590:14:0;;;;;;;604:8022:73;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;604:8022:73;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;;12247:66:15;;;;;;604:8022:73;12247:66:15;;;604:8022:73;;44640:78:15;12247:66;;604:8022:73;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;27501:38:3;;12247:66:15;;;;;;:::i;:::-;1222:159;604:8022:73;;1222:159:15;;591:42;1222:159;;-1:-1:-1;604:8022:73;;;;3251:53:65;;604:8022:73;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;1590:14:0;604:8022:73;;;;;;;;1590:14:0;604:8022:73;;;;:::i;:::-;;;;;;;;;3314:60:65;:::i;:::-;3384:64;604:8022:73;3393:9:65;;;:::i;:::-;;:21;1590:14:0;604:8022:73;;;;;1590:14:0;604:8022:73;;;;:::i;:::-;;;;;;;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;604:8022:73;;;;3514:49:65;604:8022:73;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;604:8022:73;;;;3514:49:65;:::i;:::-;1051:3:73;;:::i;:::-;-1:-1:-1;604:8022:73;;-1:-1:-1;;1590:14:0;;;;;;;3635:27:65;;;;:::i;:::-;1590:14:0;;523:5:65;;;;;;;;2117:44;604:8022:73;;;;;27501:38:3;;943:13:73;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;604:8022:73;44640:78:15;27501:38:3;;;604:8022:73;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;604:8022:73;;-1:-1:-1;;;;;;604:8022:73;-1:-1:-1;;;;;604:8022:73;;;;;7009:9:8;604:8022:73;;-1:-1:-1;;604:8022:73;27524:10:3;604:8022:73;;;7505:10:8;604:8022:73;-1:-1:-1;;;604:8022:73;;;;;;;8420:1:65;604:8022:73;;;7505:10:8;604:8022:73;;:::i;:::-;;;6854:12:8;604:8022:73;-1:-1:-1;;;;;604:8022:73;;;7009:9:8;604:8022:73;15610:11:8;604:8022:73;;943:13;;15653:34:8;;:::i;:::-;15703:15;;-1:-1:-1;;;;;604:8022:73;;;;;27635:8:3;604:8022:73;;;;;15703:15:8;;604:8022:73;;;;;;2117:44:65;604:8022:73;;;;;2117:44:65;604:8022:73;;;;;15735:37:8;;;;;;;;;;:::i;:::-;604:8022:73;15725:48:8;;2117:44:65;604:8022:73;;;;8487:1:65;604:8022:73;;2117:44:65;604:8022:73;15703:77:8;604:8022:73;;15702:78:8;15698:126;;8365:37:65;15857:15:8;;-1:-1:-1;;;;;604:8022:73;;;;;27635:8:3;604:8022:73;;;;;;2117:44:65;604:8022:73;;;15889:37:8;;604:8022:73;;2117:44:65;604:8022:73;;;;;15889:37:8;;;604:8022:73;15889:37:8;;;;;:::i;:::-;604:8022:73;15879:48:8;;2117:44:65;604:8022:73;;;;;2117:44:65;604:8022:73;8420:1:65;15943:15:8;;604:8022:73;15961:16:8;8468:1:65;15961:16:8;;604:8022:73;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;604:8022:73;;;;;-1:-1:-1;;;16424:32:8;;;;-1:-1:-1;;;;;604:8022:73;2117:44:65;16424:32:8;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;604:8022:73;;;-1:-1:-1;;;16587:43:8;;;;-1:-1:-1;;;;;604:8022:73;2117:44:65;16587:43:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;1590:14:0;523:5:65;;604:8022:73;;;12656:92:8;12810:59;;;604:8022:73;-1:-1:-1;604:8022:73;12810:59:8;604:8022:73;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;16678:31:8;;;:::i;:::-;16724:8;;604:8022:73;;;16724:29:8;;8365:37:65;16720:176:8;;;;14785:4;;;;:::i;:::-;604:8022:73;;;943:13;;;3697::65;;604:8022:73;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;8365:37;-1:-1:-1;8420:1:65;3761:3;604:8022:73;;3741:18:65;;;;;1222:159:15;3878:14:65;604:8022:73;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;604:8022:73;12952:65:15;;;604:8022:73;;44640:78:15;12952:65;;604:8022:73;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;604:8022:73;;;;;;;:::i;:::-;;;;;;12952:65:15;27501:38:3;;12952:65:15;;;;;;:::i;:::-;1222:159;604:8022:73;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;604:8022:73;12771:66:15;4051:10:65;;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;12771:66:15;;;;;;604:8022:73;12771:66:15;;;604:8022:73;;44640:78:15;12771:66;;604:8022:73;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;604:8022:73;;1222:159:15;;591:42;1222:159;;;4166:10:65;604:8022:73;4166:10:65;;4093:97;4166:10;;;;:::i;:::-;1590:14:0;604:8022:73;;;-1:-1:-1;;;4093:97:65;;604:8022:73;;;;;2117:44:65;4093:97;;;:::i;:::-;;2117:44;;;604:8022:73;;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;1590:14:0;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;1590:14:0;523:5:65;;4244:52;:::i;:::-;604:8022:73;;;4349:11:65;;4335:26;:::i;:::-;604:8022:73;4375:60:65;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;4375:60:65;:::i;:::-;4449;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;4449:60:65;:::i;:::-;4523:61;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;4523:61:65;:::i;:::-;4599:1176;;;;;604:8022:73;;;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;604:8022:73;-1:-1:-1;604:8022:73;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;4637:164:65;;:::i;:::-;604:8022:73;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;4819:176:65;;:::i;:::-;604:8022:73;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;5013:164:65;;:::i;:::-;604:8022:73;;;943:13;;;;5789:25:65;;604:8022:73;;2117:44:65;5789:25;;604:8022:73;;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;604:8022:73;3726:13:65;;5789:25;;;604:8022:73;5789:25:65;;;;;;;;;:::i;:::-;;;;;;604:8022:73;;;943:13;2117:44:65;;943:13:73;;;;;4599:1176:65;5407:172;604:8022:73;5216:173:65;5597:163;604:8022:73;;;:::i;:::-;5216:173:65;;;:::i;:::-;604:8022:73;;:::i;:::-;5407:172:65;;;:::i;:::-;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;943:13:73;;;2117:44:65;;1590:14:0;6854:12:8;2117:44:65;1590:14:0;44640:78:15;2117:44:65;;1590:14:0;4093:97:65;;;;604:8022:73;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;604:8022:73;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;943:13;;;604:8022;;;;943:13;;;604:8022;2117:44:65;;604:8022:73;523:5:65;;;;;604:8022:73;2117:44:65;;604:8022:73;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;604:8022:73;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;6590:122:65;:::i;:::-;604:8022:73;;;;;;;;;;:::i;:::-;8420:1:65;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;;;;6783:37:65;;;:::i;:::-;604:8022:73;;;;-1:-1:-1;;;6835:57:65;;2117:44;;604:8022:73;;6835:57:65;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;604:8022:73;;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;604:8022:73;6831:346:65;7259:18;:::i;:::-;1590:14:0;604:8022:73;7190:97:65;604:8022:73;;;943:13;;;;;;;;;;7190:97:65;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;604:8022:73;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;604:8022:73;;;;;;;;:::i;:::-;;;;;;;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;604:8022:73;;;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;604:8022:73;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;604:8022:73;;;-1:-1:-1;;;7302:61:65;;604:8022:73;2117:44:65;7302:61;;604:8022:73;;44640:78:15;604:8022:73;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;;7302:61:65;7190:97;;;604:8022:73;7190:97:65;604:8022:73;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;604:8022:73;;;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;604:8022:73;;;;;:::i;:::-;;;;;;;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;604:8022:73;;;-1:-1:-1;;;6907:99:65;;604:8022:73;2117:44:65;6907:99;;604:8022:73;;44640:78:15;604:8022:73;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;604:8022:73;;;;;7738:117:65;;604:8022:73;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;7738:117:65;:::i;:::-;604:8022:73;;;;;;;;;;:::i;:::-;8420:1:65;604:8022:73;;;;-1:-1:-1;;604:8022:73;;;;;;7926:37:65;;;:::i;:::-;604:8022:73;;;;943:13;;;;7974:57:65;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;604:8022:73;;;;;;;7974:57:65;;;;;;;604:8022:73;;8110:18:65;;7974:57;;8110:18;;:::i;:::-;1590:14:0;604:8022:73;8041:97:65;604:8022:73;;;943:13;;;;;;;;;;8041:97:65;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;604:8022:73;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;604:8022:73;8041:97:65;604:8022:73;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;604:8022:73;3697:13:65;;604:8022:73;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3697::65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;604:8022:73;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;604:8022:73;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;16769:41:8;;-1:-1:-1;;;;;604:8022:73;2117:44:65;16769:41:8;;604:8022:73;12810:59:8;;;604:8022:73;;;;12810:59:8;;;604:8022:73;;;;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;604:8022:73;;;-1:-1:-1;;;16824:61:8;;604:8022:73;2117:44:65;16824:61:8;;12810:59;604:8022:73;44640:78:15;12810:59:8;;604:8022:73;12810:59:8;604:8022:73;;;12810:59:8;-1:-1:-1;;;604:8022:73;12810:59:8;;;604:8022:73;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;604:8022:73;;;;16769:41:8;;;604:8022:73;2117:44:65;;;604:8022:73;16724:29:8;1590:14:0;523:5:65;16736:17:8;;;-1:-1:-1;16724:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;604:8022:73;;16587:43:8;;;;604:8022:73;;;943:13;2117:44:65;943:13:73;;;;;16424:32:8;;;;604:8022:73;16424:32:8;;604:8022:73;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;1590:14:0;16021:3:8;1590:14:0;;;;604:8022:73;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;604:8022:73;;2117:44:65;16314:19:8;;604:8022:73;-1:-1:-1;604:8022:73;44640:78:15;604:8022:73;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;604:8022:73;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;604:8022:73;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;604:8022:73;;12810:59:8;;;-1:-1:-1;;;604:8022:73;;12810:59:8;;;604:8022:73;;;;;;12810:59:8;;;604:8022:73;;;2117:44:65;604:8022:73;;;;16170:185:8;;27501:38:3;;16170:185:8;;;;;;:::i;:::-;604:8022:73;523:5:65;1590:14:0;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;604:8022:73;;;-1:-1:-1;;;12810:59:8;;604:8022:73;2117:44:65;12810:59:8;;604:8022:73;;;;;;44640:78:15;604:8022:73;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;:::-;;;;604:8022:73;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;604:8022:73;;;;:::o;:::-;;;:::o;14296:110:1:-;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;604:8022:73;;943:13;;;;14375:24:1;;;;;604:8022:73;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;604:8022:73;;;;2626:1:33;;;;3256:31;;2626:1;604:8022:73;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;604:8022:73;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;604:8022:73;;;6764:749:58:o;604:8022:73:-;;;-1:-1:-1;;;604:8022:73;;3256:31:33;604:8022:73;;;;;;;;;;;;;;-1:-1:-1;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;604:8022:73;;2117:44:65;604:8022:73;;;943:13;;;;;;;;13326:29:1;;;;;604:8022:73;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;604:8022:73;13326:29:1;604:8022:73;;943:13;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;604:8022:73;6669:42:15;6598:121;;604:8022:73;;6669:42:15;;;;;;;;;;;;;;604:8022:73;;;;;;:::i;6669:42:15:-;1222:159;604:8022:73;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;604:8022:73;7629:54:15;1222:159;7546:145;;;;604:8022:73;;7629:54:15;;;;;;;;;;604:8022:73;7629:54:15;;;604:8022:73;;;;;;:::i;:::-;;;;;;7629:54:15;27501:38:3;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;604:8022:73;15694:29:1;604:8022:73;;943:13;;;;;;;;15694:29:1;;;;;;:::i;604:8022:73:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;604:8022:73;;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;;;-1:-1:-1;;604:8022:73;;;;;;;;;-1:-1:-1;604:8022:73;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;604:8022:73;7935:53:15;1222:159;7846:150;;604:8022:73;7846:150:15;;604:8022:73;;7935:53:15;;;;;;;;;;604:8022:73;7935:53:15;;;604:8022:73;;;;;;:::i;:::-;;;;-1:-1:-1;;604:8022:73;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;604:8022:73;1052:14:8;604:8022:73;;:::i;:::-;1052:14:8;;604:8022:73;;;;;;1109:10:8;604:8022:73;;;;;;1109:10:8;1077:1;604:8022:73;;1077:1:8;604:8022:73;;1077:1:8;604:8022:73;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;604:8022:73;523:5:65;;;;;;;604:8022:73;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;27501:38:3;;604:8022:73;;:::i;:::-;;;;;;;1077:1:8;11360:3;604:8022:73;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;1590:14:0;604:8022:73;11456:84:8;523:5:65;11456:84:8;;;;;604:8022:73;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;604:8022:73:-;;;;;1109:10:8;604:8022:73;;;;;;-1:-1:-1;604:8022:73;;;;;;;;1048:135:8;604:8022:73;;;;;;1052:14:8;604:8022:73;:::i;953:236:8:-;1052:14;;;604:8022:73;;;;;:::i;:::-;1052:21:8;;1109:10;;;;604:8022:73;;;;;;;;;;;;;;;1077:1:8;604:8022:73;;1077:1:8;604:8022:73;;1077:1:8;604:8022:73;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;604:8022:73;523:5:65;;;;;;;604:8022:73;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;27501:38:3;;604:8022:73;;:::i;:::-;;;;;;;1077:1:8;11360:3;604:8022:73;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;1590:14:0;604:8022:73;11456:84:8;523:5:65;11456:84:8;;;;;604:8022:73;11331:13:8;;604:8022:73;;;;;1109:10:8;604:8022:73;;;;;;-1:-1:-1;604:8022:73;;;;;;;;1048:135:8;604:8022:73;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;604:8022:73;1364:48:8;1381:9;604:8022:73;943:13;;1364:48:8;604:8022:73;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;604:8022:73;;1364:48:8;;;;;;604:8022:73;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;27501:38:3;;1364:48:8;;;;;;:::i;:::-;1458:12;604:8022:73;1458:29:8;;;-1:-1:-1;;;;;604:8022:73;1458:29:8;;;;;:::i;:::-;1540:11;604:8022:73;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;604:8022:73;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;604:8022:73;;;;;;;;;1364:48:8;604:8022:73;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;604:8022:73;523:5:65;;11142:1:8;523:5:65;;;;;;;;604:8022:73;;;11097:47:8;11078:3;604:8022:73;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;604:8022:73;943:13;;1364:48:8;604:8022:73;1392:19:8;;;:::i;1364:48::-;604:8022:73;1458:12:8;;604:8022:73;1458:29:8;;;-1:-1:-1;;;;;604:8022:73;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;604:8022:73;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;604:8022:73;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;604:8022:73;;;;;;;;;1364:48:8;604:8022:73;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;604:8022:73;523:5:65;;11142:1:8;523:5:65;;;;;;;;604:8022:73;;;11097:47:8;11078:3;604:8022:73;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;604:8022:73;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;604:8022:73;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;604:8022:73;;;;4917:24:33;604:8022:73;1590:14:0;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;643:59:8;;;;;;;;;;;;;;;:::i;:::-;604:8022:73;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;604:8022:73;4397:9:8;604:8022:73;4438:11:8;604:8022:73;-1:-1:-1;;;;;604:8022:73;;;;;;943:13;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;604:8022:73;;;27635:8:3;604:8022:73;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;604:8022:73;4573:48:8;;604:8022:73;;;;;4438:11:8;604:8022:73;;;4551:77:8;604:8022:73;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;604:8022:73;;-1:-1:-1;;;4811:11:8;;604:8022:73;;4361:12:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;604:8022:73;;;;943:13;;;4911:25:8;;;4361:12;4911:25;;604:8022:73;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;604:8022:73;;4951:12:8;;4984:74;604:8022:73;;12810:59:8;;;4984:74;;604:8022:73;4361:12:8;4984:74;;643:59;604:8022:73;4911:25:8;643:59;;604:8022:73;643:59:8;604:8022:73;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;604:8022:73;;5109:16:8;;;;;5178:8;604:8022:73;5178:8:8;;5165:22;5178:8;;:::i;:::-;1590:14:0;604:8022:73;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;604:8022:73;;4361:12:8;5165:22;;604:8022:73;1590:14:0;;;604:8022:73;;;;;;;;;1590:14:0;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;1590:14:0;4361:12:8;604:8022:73;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;604:8022:73;;;4361:12:8;1978:27;;604:8022:73;;;1590:14:0;;;604:8022:73;;;;1590:14:0;604:8022:73;;1590:14:0;604:8022:73;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;4548:17:73;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;604:8022:73;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;604:8022:73;;;;4361:12:8;2177:37;;604:8022:73;12810:59:8;;;604:8022:73;;;12810:59:8;;;604:8022:73;;;;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;604:8022:73;;;;-1:-1:-1;;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;604:8022:73;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;604:8022:73;;;;4361:12:8;2281:43;;604:8022:73;12810:59:8;;;604:8022:73;;;;12810:59:8;;;604:8022:73;;;;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;604:8022:73;;5520:25:8;604:8022:73;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;604:8022:73;;5998:29:8;;5994:84;;604:8022:73;;6319:8:8;604:8022:73;6101:89:8;643:59;604:8022:73;;6132:37:8;;604:8022:73;;;6132:37:8;;;604:8022:73;6132:37:8;;;;;:::i;:::-;604:8022:73;6122:48:8;;6180:8;;;;:::i;:::-;1590:14:0;604:8022:73;;;;;;643:59:8;604:8022:73;643:59:8;;604:8022:73;;643:59:8;;604:8022:73;643:59:8;;;604:8022:73;6101:89:8;6319:8;:::i;:::-;1590:14:0;604:8022:73;;;;643:59:8;604:8022:73;;;;;;-1:-1:-1;;;;;604:8022:73;;;;;4438:11:8;604:8022:73;;;;;;6302:58:8;;604:8022:73;;;;6302:58:8;;604:8022:73;;;643:59:8;6302:58;;643:59;604:8022:73;643:59:8;;604:8022:73;;;27635:8:3;604:8022:73;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;604:8022:73;6230:48:8;;604:8022:73;;;;;;;1590:14:0;;643:59:8;;1590:14:0;604:8022:73;643:59:8;;;1590:14:0;4397:9:8;643:59;;;;;;604:8022:73;;;;;643:59:8;;;;;;;;5089:1309;604:8022:73;;;27635:8:3;604:8022:73;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;604:8022:73;6461:48:8;;604:8022:73;;;;;4438:11:8;604:8022:73;;;6439:77:8;604:8022:73;;643:59:8;;;604:8022:73;6664:15:8;604:8022:73;;27635:8:3;604:8022:73;;;;;;;;;;6696:37:8;;604:8022:73;;;;;;6696:37:8;;;604:8022:73;6696:37:8;;;;;:::i;:::-;604:8022:73;6686:48:8;;604:8022:73;;;;;4249:2493:8;:::o;643:59::-;604:8022:73;;-1:-1:-1;;;643:59:8;;604:8022:73;4361:12:8;643:59;;;;4911:25;643:59;;604:8022:73;643:59:8;604:8022:73;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;604:8022:73;6051:8:8;5094:13;604:8022:73;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;1590:14:0;4361:12:8;604:8022:73;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;604:8022:73;;;4361:12:8;3216:27;;604:8022:73;1590:14:0;;;604:8022:73;;;1590:14:0;;604:8022:73;;;;;;;;1590:14:0;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;604:8022:73;;;;;;-1:-1:-1;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;604:8022:73;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;604:8022:73;;;;4361:12:8;3497:43;;604:8022:73;12810:59:8;;;604:8022:73;;;;12810:59:8;;;604:8022:73;;;;;;12810:59:8;604:8022:73;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;604:8022:73;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;604:8022:73;;3497:43:8;;;;604:8022:73;;;;3497:43:8;604:8022:73;;943:13;604:8022;;943:13;;;;3497:43:8;604:8022:73;;;3216:27:8;;;;604:8022:73;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;604:8022:73;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;604:8022:73;;2281:43:8;;;;604:8022:73;;;;2281:43:8;604:8022:73;;943:13;604:8022;;943:13;;;;2281:43:8;604:8022:73;;;2177:37:8;;;;;:::i;:::-;604:8022:73;;2177:37:8;;;;2102:65;;;;;1978:27;;;604:8022:73;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;604:8022:73;;943:13;604:8022;;943:13;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;1590:14:0;604:8022:73;;;-1:-1:-1;;;;;604:8022:73;;;;1590:14:0;;;604:8022:73;;;;;;;;1590:14:0;;;;5256:44:8;;;;5205:114;;5165:22;;;;604:8022:73;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;943:13:73;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;5109:16;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;604:8022:73;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;604:8022:73;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;604:8022:73;;;643:59:8;604:8022:73;;;4811:11:8;;;;;604:8022:73;4811:11:8;;:::i;:::-;604:8022:73;4811:11:8;;;;4547:255;4720:15;;;;;604:8022:73;;27635:8:3;604:8022:73;;;;;;;;;;4752:37:8;;604:8022:73;;;;;;4752:37:8;;;604:8022:73;4752:37:8;;;;;:::i;:::-;604:8022:73;4742:48:8;;604:8022:73;;;;;;;4713:78:8;:::o;11586:239::-;604:8022:73;;;11652:12:8;604:8022:73;;11652:12:8;604:8022:73;;;11681:9:8;604:8022:73;;11681:9:8;604:8022:73;11707:10:8;604:8022:73;11645:19:8;11707:10;604:8022:73;;;;11586:239:8;604:8022:73;11645:19:8;11734:11;604:8022:73;;;11762:25:8;604:8022:73;;11762:25:8;604:8022:73;;11804:14:8;604:8022:73;;:::i;:::-;;;;11586:239:8;:::o;604:8022:73:-;;;;;;;;;11645:19:8;11804:14;604:8022:73;11586:239:8:o;604:8022:73:-;11804:14:8;11645:19;604:8022:73;;;;;;;;;;;;;;;;11804:14:8;11645:19;604:8022:73;11645:19:8;604:8022:73;;;;11804:14:8;604:8022:73;;2270:110:1:o;604:8022:73:-;;;;;;;;;11707:10:8;11645:19;604:8022:73;;;;;;;;;;;;;;;;11645:19:8;604:8022:73;;11707:10:8;604:8022:73;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;1590:14:0;2771:3:8;1590:14:0;2771:3:8;1590:14:0;;;;2824:12:8;;;604:8022:73;;;;;;-1:-1:-1;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;604:8022:73;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;604:8022:73;;;;2824:12:8;2815:49;;604:8022:73;12810:59:8;;;604:8022:73;;;12810:59:8;;;604:8022:73;;;;-1:-1:-1;604:8022:73;12810:59:8;604:8022:73;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;604:8022:73;;2678:18:8;;2941:90;2995:21;;;604:8022:73;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;604:8022:73;;;;;-1:-1:-1;;;;;604:8022:73;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;604:8022:73;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;604:8022:73;;;;2824:12:8;2815:49;;604:8022:73;12810:59:8;;;604:8022:73;;;12810:59:8;;;604:8022:73;;;;-1:-1:-1;604:8022:73;12810:59:8;604:8022:73;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;604:8022:73;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesFraxV3SFrax()":"7b2fb7b9","testGetLimitsFraxV3()":"ff1100f6","testGetTokensFraxV3()":"d0a37259","testPriceFuzzFraxV3SFrax(uint256,uint256)":"6f6e7992","testSwapBuyIncreasingFraxV3()":"4a9a720e","testSwapFuzzFraxV3WithFrax(uint256,bool)":"a930fe92","testSwapFuzzFraxV3WithSFrax(uint256,bool)":"0543ce85","testSwapSellIncreasingFraxV3()":"1510ba6b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetCapabilitiesFraxV3SFrax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsFraxV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensFraxV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzFraxV3SFrax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasingFraxV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzFraxV3WithFrax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzFraxV3WithSFrax\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasingFraxV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is a template for a swap adapter test. Test all functions that are implemented in your swap adapter, the two test included here are just an example. Feel free to use UniswapV2SwapAdapterTest and BalancerV2SwapAdapterTest as a reference.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"testPriceFuzzFraxV3SFrax(uint256,uint256)\":{\"details\":\"set lower limit to greater than 1, because previewDeposit returns 0 with an amountIn == 1\"}},\"title\":\"TemplateSwapAdapterTest\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/FraxV3SFraxAdapter.t.sol\":\"FraxV3SFraxAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"src/sfrax/FraxV3SFraxAdapter.sol\":{\"keccak256\":\"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4\",\"dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/FraxV3SFraxAdapter.t.sol\":{\"keccak256\":\"0x87aa57832884612d86864f98b127d66a61d5ed1b88f393a07ce0867134840e08\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cd522b4f3e8c5f1d12a15676b60b7d4a0a6e8c4cf7181799c83fc8b68292b32e\",\"dweb:/ipfs/QmYzSxxusuMi4jWHYDmSH4tQDjW5UstjG45TFEEdLFBNbc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesFraxV3SFrax"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsFraxV3"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensFraxV3"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzFraxV3SFrax"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasingFraxV3"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzFraxV3WithFrax"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzFraxV3WithSFrax"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasingFraxV3"}],"devdoc":{"kind":"dev","methods":{"testPriceFuzzFraxV3SFrax(uint256,uint256)":{"details":"set lower limit to greater than 1, because previewDeposit returns 0 with an amountIn == 1"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/FraxV3SFraxAdapter.t.sol":"FraxV3SFraxAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"src/sfrax/FraxV3SFraxAdapter.sol":{"keccak256":"0x2b7c13cd41026b764e488645a2d0ff419861e682cf9cb3386c321280422b1077","urls":["bzz-raw://a22ef29e0035d00f629fe6db67f3e760feb97fb50aed65afe0ce628902b60be4","dweb:/ipfs/Qmdf8ry4G8MFZob1Z88GZssky9nWe7FVGQW9NMCdesWzBw"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/FraxV3SFraxAdapter.t.sol":{"keccak256":"0x87aa57832884612d86864f98b127d66a61d5ed1b88f393a07ce0867134840e08","urls":["bzz-raw://cd522b4f3e8c5f1d12a15676b60b7d4a0a6e8c4cf7181799c83fc8b68292b32e","dweb:/ipfs/QmYzSxxusuMi4jWHYDmSH4tQDjW5UstjG45TFEEdLFBNbc"],"license":"AGPL-3.0-or-later"}},"version":1},"id":73} \ No newline at end of file diff --git a/evm/out/IBufferRouter.sol/IBufferRouter.json b/evm/out/IBufferRouter.sol/IBufferRouter.json deleted file mode 100644 index 0f6de09..0000000 --- a/evm/out/IBufferRouter.sol/IBufferRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"initializeBuffer","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"exactAmountUnderlyingIn","type":"uint256","internalType":"uint256"},{"name":"exactAmountWrappedIn","type":"uint256","internalType":"uint256"},{"name":"minIssuedShares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"issuedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initializeBuffer(address,uint256,uint256,uint256)":"b365a3c2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountUnderlyingIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exactAmountWrappedIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minIssuedShares\",\"type\":\"uint256\"}],\"name\":\"initializeBuffer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"issuedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/interfaces/IBufferRouter.sol\":\"IBufferRouter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"test/interfaces/IBufferRouter.sol\":{\"keccak256\":\"0xdb4d1925268fcc506350d7ca75068cc1b8b85a728cc857c8a5d9686422436fe9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69f9355938eea239584f45aac97aace9c2bd669500e87f4d66191df4eaa11625\",\"dweb:/ipfs/QmQezMNHG9VXNmi2twjqMQu83gQkhY67ohZ4SW37q4CLH4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"exactAmountUnderlyingIn","type":"uint256"},{"internalType":"uint256","name":"exactAmountWrappedIn","type":"uint256"},{"internalType":"uint256","name":"minIssuedShares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initializeBuffer","outputs":[{"internalType":"uint256","name":"issuedShares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/interfaces/IBufferRouter.sol":"IBufferRouter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"test/interfaces/IBufferRouter.sol":{"keccak256":"0xdb4d1925268fcc506350d7ca75068cc1b8b85a728cc857c8a5d9686422436fe9","urls":["bzz-raw://69f9355938eea239584f45aac97aace9c2bd669500e87f4d66191df4eaa11625","dweb:/ipfs/QmQezMNHG9VXNmi2twjqMQu83gQkhY67ohZ4SW37q4CLH4"],"license":"GPL-3.0-or-later"}},"version":1},"id":78} \ No newline at end of file diff --git a/evm/out/IERC1363.sol/IERC1363.json b/evm/out/IERC1363.sol/IERC1363.json deleted file mode 100644 index 6240623..0000000 --- a/evm/out/IERC1363.sol/IERC1363.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approveAndCall","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approveAndCall","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferAndCall","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferAndCall","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFromAndCall","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFromAndCall","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","approveAndCall(address,uint256)":"3177029f","approveAndCall(address,uint256,bytes)":"cae9ca51","balanceOf(address)":"70a08231","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256)":"1296ee62","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd","transferFromAndCall(address,address,uint256)":"d8fbe994","transferFromAndCall(address,address,uint256,bytes)":"c1d34b89"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363]. Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"approveAndCall(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `spender`.\",\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferAndCall(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFromAndCall(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.\",\"params\":{\"data\":\"Additional data with no specified format, sent in call to `to`.\",\"from\":\"The address which you want to send tokens from.\",\"to\":\"The address which you want to transfer to.\",\"value\":\"The amount of tokens to be transferred.\"},\"returns\":{\"_0\":\"A boolean value indicating whether the operation succeeded unless throwing.\"}}},\"title\":\"IERC1363\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":\"IERC1363\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"approveAndCall(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.","params":{"spender":"The address which will spend the funds.","value":"The amount of tokens to be spent."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}},"approveAndCall(address,uint256,bytes)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens and then calls {IERC1363Spender-onApprovalReceived} on `spender`.","params":{"data":"Additional data with no specified format, sent in call to `spender`.","spender":"The address which will spend the funds.","value":"The amount of tokens to be spent."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferAndCall(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.","params":{"to":"The address which you want to transfer to.","value":"The amount of tokens to be transferred."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}},"transferAndCall(address,uint256,bytes)":{"details":"Moves a `value` amount of tokens from the caller's account to `to` and then calls {IERC1363Receiver-onTransferReceived} on `to`.","params":{"data":"Additional data with no specified format, sent in call to `to`.","to":"The address which you want to transfer to.","value":"The amount of tokens to be transferred."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFromAndCall(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.","params":{"from":"The address which you want to send tokens from.","to":"The address which you want to transfer to.","value":"The amount of tokens to be transferred."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}},"transferFromAndCall(address,address,uint256,bytes)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism and then calls {IERC1363Receiver-onTransferReceived} on `to`.","params":{"data":"Additional data with no specified format, sent in call to `to`.","from":"The address which you want to send tokens from.","to":"The address which you want to transfer to.","value":"The amount of tokens to be transferred."},"returns":{"_0":"A boolean value indicating whether the operation succeeded unless throwing."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":"IERC1363"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":23} \ No newline at end of file diff --git a/evm/out/IERC165.sol/IERC165.json b/evm/out/IERC165.sol/IERC165.json deleted file mode 100644 index a46ea96..0000000 --- a/evm/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/evm/out/IERC20.sol/IERC20.json b/evm/out/IERC20.sol/IERC20.json deleted file mode 100644 index f472d43..0000000 --- a/evm/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/evm/out/IERC20Metadata.sol/IERC20Metadata.json b/evm/out/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index f60eb60..0000000 --- a/evm/out/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"}},"version":1},"id":31} \ No newline at end of file diff --git a/evm/out/IERC4626.sol/IERC4626.json b/evm/out/IERC4626.sol/IERC4626.json deleted file mode 100644 index f57830c..0000000 --- a/evm/out/IERC4626.sol/IERC4626.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"assetTokenAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"totalManagedAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-4626 \\\"Tokenized Vault Standard\\\", as defined in https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"asset()\":{\"details\":\"Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing. - MUST be an ERC-20 token contract. - MUST NOT revert.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the \\u201cper-user\\u201d price-per-share, and instead should reflect the \\u201caverage-user\\u2019s\\u201d price-per-share, meaning what the average user should expect to see when exchanging to and from.\"},\"convertToShares(uint256)\":{\"details\":\"Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the \\u201cper-user\\u201d price-per-share, and instead should reflect the \\u201caverage-user\\u2019s\\u201d price-per-share, meaning what the average user should expect to see when exchanging to and from.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"deposit(uint256,address)\":{\"details\":\"Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the deposit execution, and are accounted for during deposit. - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault\\u2019s underlying asset token.\"},\"maxDeposit(address)\":{\"details\":\"Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver, through a deposit call. - MUST return a limited value if receiver is subject to some deposit limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited. - MUST NOT revert.\"},\"maxMint(address)\":{\"details\":\"Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call. - MUST return a limited value if receiver is subject to some mint limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted. - MUST NOT revert.\"},\"maxRedeem(address)\":{\"details\":\"Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault, through a redeem call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock. - MUST NOT revert.\"},\"maxWithdraw(address)\":{\"details\":\"Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the Vault, through a withdraw call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST NOT revert.\"},\"mint(uint256,address)\":{\"details\":\"Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint execution, and are accounted for during mint. - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault\\u2019s underlying asset token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called in the same transaction. - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the deposit would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing.\"},\"previewMint(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the same transaction. - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by minting.\"},\"previewRedeem(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the same transaction. - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the redemption would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by redeeming.\"},\"previewWithdraw(uint256)\":{\"details\":\"Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if called in the same transaction. - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though the withdrawal would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing.\"},\"redeem(uint256,address,address)\":{\"details\":\"Burns exactly shares from owner and sends assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the redeem execution, and are accounted for during redeem. - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner not having enough shares, etc). NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalAssets()\":{\"details\":\"Returns the total amount of the underlying asset that is \\u201cmanaged\\u201d by Vault. - SHOULD include any compounding that occurs from yield. - MUST be inclusive of any fees that are charged against assets in the Vault. - MUST NOT revert.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"withdraw(uint256,address,address)\":{\"details\":\"Burns shares from owner and sends exactly assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the withdraw execution, and are accounted for during withdraw. - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner not having enough shares, etc). Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"assetTokenAddress","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"totalManagedAssets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"asset()":{"details":"Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing. - MUST be an ERC-20 token contract. - MUST NOT revert."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"convertToAssets(uint256)":{"details":"Returns the amount of assets that the Vault would exchange for the amount of shares provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and from."},"convertToShares(uint256)":{"details":"Returns the amount of shares that the Vault would exchange for the amount of assets provided, in an ideal scenario where all the conditions are met. - MUST NOT be inclusive of any fees that are charged against assets in the Vault. - MUST NOT show any variations depending on the caller. - MUST NOT reflect slippage or other on-chain conditions, when performing the actual exchange. - MUST NOT revert. NOTE: This calculation MAY NOT reflect the “per-user” price-per-share, and instead should reflect the “average-user’s” price-per-share, meaning what the average user should expect to see when exchanging to and from."},"decimals()":{"details":"Returns the decimals places of the token."},"deposit(uint256,address)":{"details":"Mints shares Vault shares to receiver by depositing exactly amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the deposit execution, and are accounted for during deposit. - MUST revert if all of assets cannot be deposited (due to deposit limit being reached, slippage, the user not approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token."},"maxDeposit(address)":{"details":"Returns the maximum amount of the underlying asset that can be deposited into the Vault for the receiver, through a deposit call. - MUST return a limited value if receiver is subject to some deposit limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of assets that may be deposited. - MUST NOT revert."},"maxMint(address)":{"details":"Returns the maximum amount of the Vault shares that can be minted for the receiver, through a mint call. - MUST return a limited value if receiver is subject to some mint limit. - MUST return 2 ** 256 - 1 if there is no limit on the maximum amount of shares that may be minted. - MUST NOT revert."},"maxRedeem(address)":{"details":"Returns the maximum amount of Vault shares that can be redeemed from the owner balance in the Vault, through a redeem call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST return balanceOf(owner) if owner is not subject to any withdrawal limit or timelock. - MUST NOT revert."},"maxWithdraw(address)":{"details":"Returns the maximum amount of the underlying asset that can be withdrawn from the owner balance in the Vault, through a withdraw call. - MUST return a limited value if owner is subject to some withdrawal limit or timelock. - MUST NOT revert."},"mint(uint256,address)":{"details":"Mints exactly shares Vault shares to receiver by depositing amount of underlying tokens. - MUST emit the Deposit event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the mint execution, and are accounted for during mint. - MUST revert if all of shares cannot be minted (due to deposit limit being reached, slippage, the user not approving enough underlying tokens to the Vault contract, etc). NOTE: most implementations will require pre-approval of the Vault with the Vault’s underlying asset token."},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit call in the same transaction. I.e. deposit should return the same or more shares as previewDeposit if called in the same transaction. - MUST NOT account for deposit limits like those returned from maxDeposit and should always act as though the deposit would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewDeposit SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing."},"previewMint(uint256)":{"details":"Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call in the same transaction. I.e. mint should return the same or fewer assets as previewMint if called in the same transaction. - MUST NOT account for mint limits like those returned from maxMint and should always act as though the mint would be accepted, regardless if the user has enough tokens approved, etc. - MUST be inclusive of deposit fees. Integrators should be aware of the existence of deposit fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewMint SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by minting."},"previewRedeem(uint256)":{"details":"Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block, given current on-chain conditions. - MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call in the same transaction. I.e. redeem should return the same or more assets as previewRedeem if called in the same transaction. - MUST NOT account for redemption limits like those returned from maxRedeem and should always act as though the redemption would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToAssets and previewRedeem SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by redeeming."},"previewWithdraw(uint256)":{"details":"Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, given current on-chain conditions. - MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw call in the same transaction. I.e. withdraw should return the same or fewer shares as previewWithdraw if called in the same transaction. - MUST NOT account for withdrawal limits like those returned from maxWithdraw and should always act as though the withdrawal would be accepted, regardless if the user has enough shares, etc. - MUST be inclusive of withdrawal fees. Integrators should be aware of the existence of withdrawal fees. - MUST NOT revert. NOTE: any unfavorable discrepancy between convertToShares and previewWithdraw SHOULD be considered slippage in share price or some other type of condition, meaning the depositor will lose assets by depositing."},"redeem(uint256,address,address)":{"details":"Burns exactly shares from owner and sends assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the redeem execution, and are accounted for during redeem. - MUST revert if all of shares cannot be redeemed (due to withdrawal limit being reached, slippage, the owner not having enough shares, etc). NOTE: some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately."},"symbol()":{"details":"Returns the symbol of the token."},"totalAssets()":{"details":"Returns the total amount of the underlying asset that is “managed” by Vault. - SHOULD include any compounding that occurs from yield. - MUST be inclusive of any fees that are charged against assets in the Vault. - MUST NOT revert."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"withdraw(uint256,address,address)":{"details":"Burns shares from owner and sends exactly assets of underlying tokens to receiver. - MUST emit the Withdraw event. - MAY support an additional flow in which the underlying tokens are owned by the Vault contract before the withdraw execution, and are accounted for during withdraw. - MUST revert if all of assets cannot be withdrawn (due to withdrawal limit being reached, slippage, the owner not having enough shares, etc). Note that some implementations will require pre-requesting to the Vault before a withdrawal may be performed. Those methods should be performed separately."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":"IERC4626"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"}},"version":1},"id":26} \ No newline at end of file diff --git a/evm/out/IERC721.sol/IERC721.json b/evm/out/IERC721.sol/IERC721.json deleted file mode 100644 index 3395d9f..0000000 --- a/evm/out/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x80ac58cd.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/evm/out/IERC721.sol/IERC721Enumerable.json b/evm/out/IERC721.sol/IERC721Enumerable.json deleted file mode 100644 index 6d2e20f..0000000 --- a/evm/out/IERC721.sol/IERC721Enumerable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x780e9d63.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenByIndex(uint256)\":{\"details\":\"Throws if `_index` >= `totalSupply()`.\",\"params\":{\"_index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.\",\"params\":{\"_index\":\"A counter less than `balanceOf(_owner)`\",\"_owner\":\"An address where we are interested in NFTs owned by them\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)\"}},\"totalSupply()\":{\"returns\":{\"_0\":\"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid NFTs\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"notice\":\"Enumerate NFTs assigned to an owner\"},\"totalSupply()\":{\"notice\":\"Count NFTs tracked by this contract\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenByIndex(uint256)":{"details":"Throws if `_index` >= `totalSupply()`.","params":{"_index":"A counter less than `totalSupply()`"},"returns":{"_0":"The token identifier for the `_index`th NFT, (sort order not specified)"}},"tokenOfOwnerByIndex(address,uint256)":{"details":"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.","params":{"_index":"A counter less than `balanceOf(_owner)`","_owner":"An address where we are interested in NFTs owned by them"},"returns":{"_0":"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)"}},"totalSupply()":{"returns":{"_0":"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"tokenByIndex(uint256)":{"notice":"Enumerate valid NFTs"},"tokenOfOwnerByIndex(address,uint256)":{"notice":"Enumerate NFTs assigned to an owner"},"totalSupply()":{"notice":"Count NFTs tracked by this contract"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Enumerable"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/evm/out/IERC721.sol/IERC721Metadata.json b/evm/out/IERC721.sol/IERC721Metadata.json deleted file mode 100644 index 0cbcbe3..0000000 --- a/evm/out/IERC721.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"_symbol","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x5b5e139f.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenURI(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \\\"ERC721 Metadata JSON Schema\\\".\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721Metadata\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenURI(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \"ERC721 Metadata JSON Schema\"."},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"},"tokenURI(uint256)":{"notice":"A distinct Uniform Resource Identifier (URI) for a given asset."},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Metadata"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/evm/out/IERC721.sol/IERC721TokenReceiver.json b/evm/out/IERC721.sol/IERC721TokenReceiver.json deleted file mode 100644 index 495042f..0000000 --- a/evm/out/IERC721.sol/IERC721TokenReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note: the ERC-165 identifier for this interface is 0x150b7a02.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.\",\"params\":{\"_data\":\"Additional data with no specified format\",\"_from\":\"The address which previously owned the token\",\"_operator\":\"The address which called `safeTransferFrom` function\",\"_tokenId\":\"The NFT identifier which is being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))` unless throwing\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format","_from":"The address which previously owned the token","_operator":"The address which called `safeTransferFrom` function","_tokenId":"The NFT identifier which is being transferred"},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))` unless throwing"}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721TokenReceiver"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/evm/out/IMulticall3.sol/IMulticall3.json b/evm/out/IMulticall3.sol/IMulticall3.json deleted file mode 100644 index ed63168..0000000 --- a/evm/out/IMulticall3.sol/IMulticall3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/evm/out/ISwapAdapter.sol/ISwapAdapter.json b/evm/out/ISwapAdapter.sol/ISwapAdapter.json deleted file mode 100644 index 28e0fdb..0000000 --- a/evm/out/ISwapAdapter.sol/ISwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getCapabilities","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implement this interface to support Propeller routing through your pools. Before implementing the interface we need to introduce some function for a given pool. The main one, the swap(x) function, implements a sell order of a specified token. The gas function simply returns the estimated gas cost given a specified amount x. Last but not least, the price function is the derivative of the swap function. It represents the best possible price a user can get from a pool after swapping x of the specified token. During calls to swap and getLimits, the caller can be assumed to have the required sell or buy token balance as well as unlimited approvals to this contract.\",\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"ISwapAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapAdapter.sol\":\"ISwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISwapAdapter.sol":"ISwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":53} \ No newline at end of file diff --git a/evm/out/ISwapAdapterTypes.sol/ISwapAdapterTypes.json b/evm/out/ISwapAdapterTypes.sol/ISwapAdapterTypes.json deleted file mode 100644 index a806ad3..0000000 --- a/evm/out/ISwapAdapterTypes.sol/ISwapAdapterTypes.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"}],\"devdoc\":{\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapAdapterTypes.sol\":\"ISwapAdapterTypes\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISwapAdapterTypes.sol":"ISwapAdapterTypes"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":54} \ No newline at end of file diff --git a/evm/out/ISwapAdapterV2.sol/ISwapAdapterV2.json b/evm/out/ISwapAdapterV2.sol/ISwapAdapterV2.json deleted file mode 100644 index 1d4180e..0000000 --- a/evm/out/ISwapAdapterV2.sol/ISwapAdapterV2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getCapabilities","inputs":[{"name":"poolId","type":"bytes","internalType":"bytes"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes","internalType":"bytes"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes","internalType":"bytes"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes","internalType":"bytes"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getCapabilities(bytes,address,address)":"eb393a9c","getLimits(bytes,address,address,bytes)":"c8af3d53","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes)":"2c959543","price(bytes,address,address,uint256[],bytes)":"c130f7a9","swap(bytes,address,address,uint8,uint256,bytes)":"18905bed"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"poolId\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"poolId\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"poolId\",\"type\":\"bytes\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"poolId\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"poolId\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implement this interface to support Propeller routing through your pools. Before implementing the interface we need to introduce some function for a given pool. The main one, the swap(x) function, implements a sell order of a specified token. The gas function simply returns the estimated gas cost given a specified amount x. Last but not least, the price function is the derivative of the swap function. It represents the best possible price a user can get from a pool after swapping x of the specified token. During calls to swap and getLimits, the caller can be assumed to have the required sell or buy token balance as well as unlimited approvals to this contract.\",\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes,address,address,bytes)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"data\":\"Any additional data required, that does not fit the interface\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes,address,address,uint256[],bytes)\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"data\":\"Any additional data required, that does not fit the interface.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes,address,address,uint8,uint256,bytes)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"data\":\"Any additional data required, that does not fit the interface\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"ISwapAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes,address,address,bytes)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes,address,address,uint256[],bytes)\":{\"notice\":\"Calculates pool prices for specified amounts (optional).\"},\"swap(bytes,address,address,uint8,uint256,bytes)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapAdapterV2.sol\":\"ISwapAdapterV2\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/interfaces/ISwapAdapterV2.sol\":{\"keccak256\":\"0x50c477e448d8313e03b2a2d2cd6d6888578f8d0ab8afdb3686883bccf186c8db\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://a4d6572b36f001b548516fbe7ad738f20bd565faa3802cf658265363d60e7d1f\",\"dweb:/ipfs/QmcNN364R1svtmYKPz6d38tWz9dVFwS2Jqboxc5SLGA4yx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes,address,address,bytes)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","data":"Any additional data required, that does not fit the interface","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes,address,address,uint256[],bytes)":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","data":"Any additional data required, that does not fit the interface.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes,address,address,uint8,uint256,bytes)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","data":"Any additional data required, that does not fit the interface","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes,address,address,bytes)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes,address,address,uint256[],bytes)":{"notice":"Calculates pool prices for specified amounts (optional)."},"swap(bytes,address,address,uint8,uint256,bytes)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISwapAdapterV2.sol":"ISwapAdapterV2"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterV2.sol":{"keccak256":"0x50c477e448d8313e03b2a2d2cd6d6888578f8d0ab8afdb3686883bccf186c8db","urls":["bzz-raw://a4d6572b36f001b548516fbe7ad738f20bd565faa3802cf658265363d60e7d1f","dweb:/ipfs/QmcNN364R1svtmYKPz6d38tWz9dVFwS2Jqboxc5SLGA4yx"],"license":"AGPL-3.0-or-later"}},"version":1},"id":55} \ No newline at end of file diff --git a/evm/out/ISwapExecutor.sol/ISwapExecutor.json b/evm/out/ISwapExecutor.sol/ISwapExecutor.json deleted file mode 100644 index 5ac7793..0000000 --- a/evm/out/ISwapExecutor.sol/ISwapExecutor.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"swap","inputs":[{"name":"givenAmount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"swap(uint256,bytes)":"bd0625ab"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"givenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"swap(uint256,bytes)\":{\"details\":\"This method can either take the amount of the input token or the amount of the output token that we would like to swap. If called with the amount of the input token, the amount of the output token will be returned, and vice versa. Whether it is the input or output that is given, is encoded in the data parameter. Note Part of the informal interface is that the executor supports sending the received tokens to a receiver address. If the underlying smart contract does not provide this functionality consider adding an additional transfer in the implementation. This function is marked as `payable` to accommodate delegatecalls, which can forward a potential `msg.value` to it.\",\"params\":{\"data\":\"Data that holds information necessary to perform the swap.\",\"givenAmount\":\"The amount of either the input token or output token to swap.\"},\"returns\":{\"calculatedAmount\":\"The amount of either the input token or output token swapped, depending on the givenAmount inputted.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"swap(uint256,bytes)\":{\"notice\":\"Performs a swap on a liquidity pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapExecutor.sol\":\"ISwapExecutor\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/interfaces/ISwapExecutor.sol\":{\"keccak256\":\"0x776a8242bc04ade71ca70d0d574742f3b5898e049ab2fe9e59bbddaf2424dc83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://569e844a3c9f6d67e824ba57eed75a6328b38138161a0472acf422125ba28339\",\"dweb:/ipfs/QmcTNeDYptrJ5Ffxkjqfs65ZsPNZccZzoqhdbShuSGtdct\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"givenAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"swap(uint256,bytes)":{"details":"This method can either take the amount of the input token or the amount of the output token that we would like to swap. If called with the amount of the input token, the amount of the output token will be returned, and vice versa. Whether it is the input or output that is given, is encoded in the data parameter. Note Part of the informal interface is that the executor supports sending the received tokens to a receiver address. If the underlying smart contract does not provide this functionality consider adding an additional transfer in the implementation. This function is marked as `payable` to accommodate delegatecalls, which can forward a potential `msg.value` to it.","params":{"data":"Data that holds information necessary to perform the swap.","givenAmount":"The amount of either the input token or output token to swap."},"returns":{"calculatedAmount":"The amount of either the input token or output token swapped, depending on the givenAmount inputted."}}},"version":1},"userdoc":{"kind":"user","methods":{"swap(uint256,bytes)":{"notice":"Performs a swap on a liquidity pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISwapExecutor.sol":"ISwapExecutor"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/interfaces/ISwapExecutor.sol":{"keccak256":"0x776a8242bc04ade71ca70d0d574742f3b5898e049ab2fe9e59bbddaf2424dc83","urls":["bzz-raw://569e844a3c9f6d67e824ba57eed75a6328b38138161a0472acf422125ba28339","dweb:/ipfs/QmcTNeDYptrJ5Ffxkjqfs65ZsPNZccZzoqhdbShuSGtdct"],"license":"UNLICENSED"}},"version":1},"id":56} \ No newline at end of file diff --git a/evm/out/ISwapExecutor.sol/ISwapExecutorErrors.json b/evm/out/ISwapExecutor.sol/ISwapExecutorErrors.json deleted file mode 100644 index b1f196c..0000000 --- a/evm/out/ISwapExecutor.sol/ISwapExecutorErrors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"InvalidParameterLength","inputs":[{"name":"","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnknownPoolType","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"InvalidParameterLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"UnknownPoolType\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapExecutor.sol\":\"ISwapExecutorErrors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/interfaces/ISwapExecutor.sol\":{\"keccak256\":\"0x776a8242bc04ade71ca70d0d574742f3b5898e049ab2fe9e59bbddaf2424dc83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://569e844a3c9f6d67e824ba57eed75a6328b38138161a0472acf422125ba28339\",\"dweb:/ipfs/QmcTNeDYptrJ5Ffxkjqfs65ZsPNZccZzoqhdbShuSGtdct\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"type":"error","name":"InvalidParameterLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"UnknownPoolType"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISwapExecutor.sol":"ISwapExecutorErrors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/interfaces/ISwapExecutor.sol":{"keccak256":"0x776a8242bc04ade71ca70d0d574742f3b5898e049ab2fe9e59bbddaf2424dc83","urls":["bzz-raw://569e844a3c9f6d67e824ba57eed75a6328b38138161a0472acf422125ba28339","dweb:/ipfs/QmcTNeDYptrJ5Ffxkjqfs65ZsPNZccZzoqhdbShuSGtdct"],"license":"UNLICENSED"}},"version":1},"id":56} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/IReserves.json b/evm/out/IntegralSwapAdapter.sol/IReserves.json deleted file mode 100644 index a0f6645..0000000 --- a/evm/out/IntegralSwapAdapter.sol/IReserves.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getFees","inputs":[],"outputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFees()":"db8d55f1","getReserves()":"0902f1ac"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"IReserves\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getFees","outputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"IReserves"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/ITwapERC20.json b/evm/out/IntegralSwapAdapter.sol/ITwapERC20.json deleted file mode 100644 index 9739ba0..0000000 --- a/evm/out/IntegralSwapAdapter.sol/ITwapERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"ITwapERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"ITwapERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/ITwapFactory.json b/evm/out/IntegralSwapAdapter.sol/ITwapFactory.json deleted file mode 100644 index a35a0be..0000000 --- a/evm/out/IntegralSwapAdapter.sol/ITwapFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allPairs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allPairsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"collect","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"oracle","type":"address","internalType":"address"},{"name":"trader","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setBurnFee","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMintFee","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOracle","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"oracle","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOwner","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSwapFee","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTrader","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"trader","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerSet","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PairCreated","inputs":[{"name":"token0","type":"address","indexed":true,"internalType":"address"},{"name":"token1","type":"address","indexed":true,"internalType":"address"},{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allPairs(uint256)":"1e3dd18b","allPairsLength()":"574f2ba3","collect(address,address,address)":"66900253","createPair(address,address,address,address)":"4da8eeb0","getPair(address,address)":"e6a43905","owner()":"8da5cb5b","setBurnFee(address,address,uint256)":"dbc8f12c","setMintFee(address,address,uint256)":"4fe0e92f","setOracle(address,address,address)":"0c144581","setOwner(address)":"13af4035","setSwapFee(address,address,uint256)":"cb39e9cb","setTrader(address,address,address)":"88538715","withdraw(address,address,uint256,address)":"0e917f76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setBurnFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setMintFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setSwapFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"setTrader\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"ITwapFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"OwnerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"token0","type":"address","indexed":true},{"internalType":"address","name":"token1","type":"address","indexed":true},{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"PairCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"allPairs","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collect"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"address","name":"trader","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBurnFee"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMintFee"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"oracle","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOracle"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSwapFee"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"trader","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTrader"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"ITwapFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/ITwapPair.json b/evm/out/IntegralSwapAdapter.sol/ITwapPair.json deleted file mode 100644 index 355618e..0000000 --- a/evm/out/IntegralSwapAdapter.sol/ITwapPair.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"MINIMUM_LIQUIDITY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"burnFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"collect","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDepositAmount0In","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"depositAmount0In","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDepositAmount1In","inputs":[{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"depositAmount1In","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFees","inputs":[],"outputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"}],"stateMutability":"view"},{"type":"function","name":"getSwapAmount0In","inputs":[{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"swapAmount0In","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSwapAmount0Out","inputs":[{"name":"amount1In","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"swapAmount0Out","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSwapAmount1In","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"swapAmount1In","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSwapAmount1Out","inputs":[{"name":"amount0In","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"swapAmount1Out","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_token0","type":"address","internalType":"address"},{"name":"_token1","type":"address","internalType":"address"},{"name":"_oracle","type":"address","internalType":"address"},{"name":"_trader","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"mintFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"oracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBurnFee","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMintFee","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOracle","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSwapFee","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTrader","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sync","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trader","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"liquidityIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"liquidityOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetBurnFee","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetMintFee","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOracle","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSwapFee","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetTrader","inputs":[{"name":"trader","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount0Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"MINIMUM_LIQUIDITY()":"ba9a7a56","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address)":"89afcb44","burnFee()":"fce589d8","collect(address)":"06ec16f8","decreaseAllowance(address,uint256)":"a457c2d7","factory()":"c45a0155","getDepositAmount0In(uint256,bytes)":"38b07f02","getDepositAmount1In(uint256,bytes)":"95c5df95","getFees()":"db8d55f1","getReserves()":"0902f1ac","getSwapAmount0In(uint256,bytes)":"c7481b8f","getSwapAmount0Out(uint256,bytes)":"0ae5f5b4","getSwapAmount1In(uint256,bytes)":"d6945d89","getSwapAmount1Out(uint256,bytes)":"2b9b015d","increaseAllowance(address,uint256)":"39509351","initialize(address,address,address,address)":"f8c8765e","mint(address)":"6a627842","mintFee()":"13966db5","nonces(address)":"7ecebe00","oracle()":"7dc0d1d0","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","setBurnFee(uint256)":"4bf2c7c9","setMintFee(uint256)":"eddd0d9c","setOracle(address)":"7adbf973","setSwapFee(uint256)":"34e19907","setTrader(address)":"a6bc18f9","swap(uint256,uint256,address,bytes)":"022c0d9f","swapFee()":"54cf2aeb","sync()":"fff6cae9","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","trader()":"1758078b","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidityIn\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidityOut\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"SetBurnFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"SetMintFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"SetOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"SetSwapFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"}],\"name\":\"SetTrader\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burnFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getDepositAmount0In\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositAmount0In\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getDepositAmount1In\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositAmount1In\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getSwapAmount0In\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"swapAmount0In\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getSwapAmount0Out\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"swapAmount0Out\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getSwapAmount1In\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"swapAmount1In\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getSwapAmount1Out\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"swapAmount1Out\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_trader\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setBurnFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setMintFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setSwapFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"setTrader\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trader\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"ITwapPair\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0Out","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1Out","type":"uint256","indexed":false},{"internalType":"uint256","name":"liquidityIn","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1In","type":"uint256","indexed":false},{"internalType":"uint256","name":"liquidityOut","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"SetBurnFee","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"SetMintFee","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"SetOracle","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"SetSwapFee","anonymous":false},{"inputs":[{"internalType":"address","name":"trader","type":"address","indexed":false}],"type":"event","name":"SetTrader","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount0Out","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1Out","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"pure","type":"function","name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collect"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getDepositAmount0In","outputs":[{"internalType":"uint256","name":"depositAmount0In","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getDepositAmount1In","outputs":[{"internalType":"uint256","name":"depositAmount1In","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFees","outputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"}]},{"inputs":[{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getSwapAmount0In","outputs":[{"internalType":"uint256","name":"swapAmount0In","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount1In","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getSwapAmount0Out","outputs":[{"internalType":"uint256","name":"swapAmount0Out","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getSwapAmount1In","outputs":[{"internalType":"uint256","name":"swapAmount1In","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount0In","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getSwapAmount1Out","outputs":[{"internalType":"uint256","name":"swapAmount1Out","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_oracle","type":"address"},{"internalType":"address","name":"_trader","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBurnFee"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMintFee"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOracle"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSwapFee"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTrader"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sync"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"trader","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"ITwapPair"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/ITwapRelayer.json b/evm/out/IntegralSwapAdapter.sol/ITwapRelayer.json deleted file mode 100644 index 64f7a10..0000000 --- a/evm/out/IntegralSwapAdapter.sol/ITwapRelayer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"buy","inputs":[{"name":"buyParams","type":"tuple","internalType":"struct ITwapRelayer.BuyParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"wrapUnwrap","type":"bool","internalType":"bool"},{"name":"to","type":"address","internalType":"address"},{"name":"submitDeadline","type":"uint32","internalType":"uint32"}]}],"outputs":[{"name":"orderId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"ethTransferGasCost","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"executionGasLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getPoolState","inputs":[{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"limitMin0","type":"uint256","internalType":"uint256"},{"name":"limitMax0","type":"uint256","internalType":"uint256"},{"name":"limitMin1","type":"uint256","internalType":"uint256"},{"name":"limitMax1","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPriceByPairAddress","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"inverted","type":"bool","internalType":"bool"}],"outputs":[{"name":"xDecimals","type":"uint8","internalType":"uint8"},{"name":"yDecimals","type":"uint8","internalType":"uint8"},{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPriceByTokenAddresses","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTokenLimitMaxMultiplier","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getTokenLimitMin","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getTolerance","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"getTwapInterval","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"pure"},{"type":"function","name":"isOneInchRouterWhitelisted","inputs":[{"name":"oneInchRouter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPairEnabled","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteBuy","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quoteSell","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rebalanceSellWithDelay","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rebalanceSellWithOneInch","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"oneInchRouter","type":"address","internalType":"address"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rebalancer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sell","inputs":[{"name":"sellParams","type":"tuple","internalType":"struct ITwapRelayer.SellParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"wrapUnwrap","type":"bool","internalType":"bool"},{"name":"to","type":"address","internalType":"address"},{"name":"submitDeadline","type":"uint32","internalType":"uint32"}]}],"outputs":[{"name":"orderId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPairEnabled","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRebalancer","inputs":[{"name":"_rebalancer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSwapFee","inputs":[{"name":"pair","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapFee","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenLimitMaxMultiplier","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"tokenLimitMin","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"tolerance","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"pure"},{"type":"function","name":"twapInterval","inputs":[{"name":"pair","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"pure"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"whitelistOneInchRouter","inputs":[{"name":"oneInchRouter","type":"address","internalType":"address"},{"name":"whitelisted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approve","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Buy","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountInMax","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"wrapUnwrap","type":"bool","indexed":false,"internalType":"bool"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"orderContract","type":"address","indexed":false,"internalType":"address"},{"name":"orderId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelaySet","inputs":[{"name":"delay","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EthTransferGasCostSet","inputs":[{"name":"gasCost","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecutionGasLimitSet","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OneInchRouterWhitelisted","inputs":[{"name":"oneInchRouter","type":"address","indexed":true,"internalType":"address"},{"name":"whitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnerSet","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PairEnabledSet","inputs":[{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RebalanceSellWithDelay","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"delayOrderId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RebalanceSellWithOneInch","inputs":[{"name":"oneInchRouter","type":"address","indexed":true,"internalType":"address"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RebalancerSet","inputs":[{"name":"rebalancer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Sell","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOutMin","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"wrapUnwrap","type":"bool","indexed":false,"internalType":"bool"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"orderContract","type":"address","indexed":false,"internalType":"address"},{"name":"orderId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SwapFeeSet","inputs":[{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenLimitMaxMultiplierSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenLimitMinSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ToleranceSet","inputs":[{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"tolerance","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"TwapIntervalSet","inputs":[{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"interval","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256,address)":"1271f09a","buy((address,address,uint256,uint256,bool,address,uint32))":"2d814ea2","delay()":"6a42b8f8","ethTransferGasCost()":"42f8755e","executionGasLimit()":"39cb1f3e","factory()":"c45a0155","getPoolState(address,address)":"abc27eed","getPriceByPairAddress(address,bool)":"0b7f942f","getPriceByTokenAddresses(address,address)":"ea2cc896","getTokenLimitMaxMultiplier(address)":"75f3a1b5","getTokenLimitMin(address)":"232ab3df","getTolerance(address)":"b0385553","getTwapInterval(address)":"41084769","isOneInchRouterWhitelisted(address)":"3643be68","isPairEnabled(address)":"033a9305","owner()":"8da5cb5b","quoteBuy(address,address,uint256)":"34259b1b","quoteSell(address,address,uint256)":"9981d632","rebalanceSellWithDelay(address,address,uint256)":"44ac834c","rebalanceSellWithOneInch(address,uint256,address,uint256,bytes)":"21426c4d","rebalancer()":"01d22ccd","sell((address,address,uint256,uint256,bool,address,uint32))":"58d30ac9","setOwner(address)":"13af4035","setPairEnabled(address,bool)":"5b0489a0","setRebalancer(address)":"6cfd1553","setSwapFee(address,uint256)":"991991c7","swapFee(address)":"a6ae80e2","tokenLimitMaxMultiplier(address)":"a4ccc7a3","tokenLimitMin(address)":"cfa4e551","tolerance(address)":"a70885c1","twapInterval(address)":"a1077651","weth()":"3fc8cef3","whitelistOneInchRouter(address,bool)":"ec649af9","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approve\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"wrapUnwrap\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"orderContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"}],\"name\":\"Buy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delay\",\"type\":\"address\"}],\"name\":\"DelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasCost\",\"type\":\"uint256\"}],\"name\":\"EthTransferGasCostSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"ExecutionGasLimitSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oneInchRouter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"OneInchRouterWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"PairEnabledSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"delayOrderId\",\"type\":\"uint256\"}],\"name\":\"RebalanceSellWithDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oneInchRouter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RebalanceSellWithOneInch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rebalancer\",\"type\":\"address\"}],\"name\":\"RebalancerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"wrapUnwrap\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"orderContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"}],\"name\":\"Sell\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"SwapFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"TokenLimitMaxMultiplierSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"TokenLimitMinSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"tolerance\",\"type\":\"uint16\"}],\"name\":\"ToleranceSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"interval\",\"type\":\"uint32\"}],\"name\":\"TwapIntervalSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"wrapUnwrap\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"submitDeadline\",\"type\":\"uint32\"}],\"internalType\":\"struct ITwapRelayer.BuyParams\",\"name\":\"buyParams\",\"type\":\"tuple\"}],\"name\":\"buy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethTransferGasCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executionGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"}],\"name\":\"getPoolState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitMin0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitMax0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitMin1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitMax1\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"name\":\"getPriceByPairAddress\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"xDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"yDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"getPriceByTokenAddresses\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenLimitMaxMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenLimitMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"getTolerance\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"getTwapInterval\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oneInchRouter\",\"type\":\"address\"}],\"name\":\"isOneInchRouterWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"isPairEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"quoteBuy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"quoteSell\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"rebalanceSellWithDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"oneInchRouter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"rebalanceSellWithOneInch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rebalancer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"wrapUnwrap\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"submitDeadline\",\"type\":\"uint32\"}],\"internalType\":\"struct ITwapRelayer.SellParams\",\"name\":\"sellParams\",\"type\":\"tuple\"}],\"name\":\"sell\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setPairEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rebalancer\",\"type\":\"address\"}],\"name\":\"setRebalancer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"setSwapFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"swapFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"tokenLimitMaxMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"tokenLimitMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"tolerance\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"twapInterval\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oneInchRouter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"whitelisted\",\"type\":\"bool\"}],\"name\":\"whitelistOneInchRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"ITwapRelayer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approve","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountInMax","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"bool","name":"wrapUnwrap","type":"bool","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"orderContract","type":"address","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":true}],"type":"event","name":"Buy","anonymous":false},{"inputs":[{"internalType":"address","name":"delay","type":"address","indexed":false}],"type":"event","name":"DelaySet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"gasCost","type":"uint256","indexed":false}],"type":"event","name":"EthTransferGasCostSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"ExecutionGasLimitSet","anonymous":false},{"inputs":[{"internalType":"address","name":"oneInchRouter","type":"address","indexed":true},{"internalType":"bool","name":"whitelisted","type":"bool","indexed":false}],"type":"event","name":"OneInchRouterWhitelisted","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"OwnerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"bool","name":"enabled","type":"bool","indexed":false}],"type":"event","name":"PairEnabledSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"delayOrderId","type":"uint256","indexed":true}],"type":"event","name":"RebalanceSellWithDelay","anonymous":false},{"inputs":[{"internalType":"address","name":"oneInchRouter","type":"address","indexed":true},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"RebalanceSellWithOneInch","anonymous":false},{"inputs":[{"internalType":"address","name":"rebalancer","type":"address","indexed":false}],"type":"event","name":"RebalancerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOutMin","type":"uint256","indexed":false},{"internalType":"bool","name":"wrapUnwrap","type":"bool","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"orderContract","type":"address","indexed":false},{"internalType":"uint256","name":"orderId","type":"uint256","indexed":true}],"type":"event","name":"Sell","anonymous":false},{"inputs":[{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"SwapFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"TokenLimitMaxMultiplierSet","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"TokenLimitMinSet","anonymous":false},{"inputs":[{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint16","name":"tolerance","type":"uint16","indexed":false}],"type":"event","name":"ToleranceSet","anonymous":false},{"inputs":[{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint32","name":"interval","type":"uint32","indexed":false}],"type":"event","name":"TwapIntervalSet","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"struct ITwapRelayer.BuyParams","name":"buyParams","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"bool","name":"wrapUnwrap","type":"bool"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint32","name":"submitDeadline","type":"uint32"}]}],"stateMutability":"payable","type":"function","name":"buy","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"delay","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"ethTransferGasCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"executionGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"stateMutability":"view","type":"function","name":"getPoolState","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"limitMin0","type":"uint256"},{"internalType":"uint256","name":"limitMax0","type":"uint256"},{"internalType":"uint256","name":"limitMin1","type":"uint256"},{"internalType":"uint256","name":"limitMax1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}],"stateMutability":"view","type":"function","name":"getPriceByPairAddress","outputs":[{"internalType":"uint8","name":"xDecimals","type":"uint8"},{"internalType":"uint8","name":"yDecimals","type":"uint8"},{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"}],"stateMutability":"view","type":"function","name":"getPriceByTokenAddresses","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"pure","type":"function","name":"getTokenLimitMaxMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"pure","type":"function","name":"getTokenLimitMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"pure","type":"function","name":"getTolerance","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"pure","type":"function","name":"getTwapInterval","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"oneInchRouter","type":"address"}],"stateMutability":"view","type":"function","name":"isOneInchRouterWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function","name":"isPairEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteBuy","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteSell","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rebalanceSellWithDelay"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"oneInchRouter","type":"address"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"rebalanceSellWithOneInch"},{"inputs":[],"stateMutability":"view","type":"function","name":"rebalancer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct ITwapRelayer.SellParams","name":"sellParams","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"bool","name":"wrapUnwrap","type":"bool"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint32","name":"submitDeadline","type":"uint32"}]}],"stateMutability":"payable","type":"function","name":"sell","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPairEnabled"},{"inputs":[{"internalType":"address","name":"_rebalancer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRebalancer"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSwapFee"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function","name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"pure","type":"function","name":"tokenLimitMaxMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"pure","type":"function","name":"tokenLimitMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"pure","type":"function","name":"tolerance","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"pure","type":"function","name":"twapInterval","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"oneInchRouter","type":"address"},{"internalType":"bool","name":"whitelisted","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"whitelistOneInchRouter"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"ITwapRelayer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.sol/IntegralSwapAdapter.json b/evm/out/IntegralSwapAdapter.sol/IntegralSwapAdapter.json deleted file mode 100644 index 63c0a0c..0000000 --- a/evm/out/IntegralSwapAdapter.sol/IntegralSwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"relayer_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"_sellToken","type":"address","internalType":"address"},{"name":"_buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a03461008857601f61148e38819003918201601f19168301916001600160401b0383118484101761008c5780849260209460405283398101031261008857516001600160a01b03811690819003610088576080526040516113ed90816100a1823960805181818161036a015281816105b9015281816109f901528181610bd10152610e230152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b0033","sourceMap":"708:8151:52:-:0;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;869:32;;708:8151;;;;;;;;869:32;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;-1:-1:-1;708:8151:52;;;;;-1:-1:-1;708:8151:52","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b0033","sourceMap":"708:8151:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;;;;;;:::i;:::-;4207:1;708:8151;;;;;;;;;;;;;;;;;;4293:13;;708:8151;4293:13;708:8151;4293:13;;;;;;;;;708:8151;4293:13;708:8151;4293:13;708:8151;4293:13;;;708:8151;4281:25;;;;:::i;:::-;-1:-1:-1;;;;;708:8151:52;;;;;;;-1:-1:-1;;;4328:13:52;;708:8151;;;;;4328:13;;;;;;;708:8151;4328:13;;;708:8151;4316:25;;;;;;:::i;:::-;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;4328:13;;;;708:8151;4328:13;708:8151;4328:13;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;708:8151;;;;;;;;;4293:13;;;;;;;;;;;;;;:::i;:::-;;;;708:8151;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;1944:33;;;;;;:::i;:::-;708:8151;2038:3;708:8151;;2008:28;;;;;2057:25;;;708:8151;2057:25;;;:::i;:::-;;;;;;:::i;:::-;;708:8151;1993:13;;2008:28;;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3083:41;;708:8151;;;:::i;:::-;;;-1:-1:-1;;;3083:41:52;;-1:-1:-1;;;;;708:8151:52;;;;3083:41;;708:8151;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;3083:41;;708:8151;3083:7;-1:-1:-1;;;;;708:8151:52;3083:41;;;;;;;708:8151;;;3083:41;;;708:8151;;;;;;;;;;:::i;:::-;3158:1;708:8151;;;;;;;;;;3170:21;;;:::i;:::-;708:8151;3201:21;;;:::i;:::-;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;3208:1;708:8151;;;3083:41;;;;;;;;;;;;;;;;;;:::i;:::-;;;708:8151;;;;;;;;;;;;3083:41;;;;;;;-1:-1:-1;3083:41:52;;708:8151;;;;;;-1:-1:-1;;708:8151:52;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;3829:20;3811:38;;;:::i;:::-;708:8151;3877:19;3859:37;;;:::i;:::-;708:8151;;;3877:19;708:8151;;;;3924:24;708:8151;;;;;;3924:24;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3829:20;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;-1:-1:-1;;;4574:17:52;;708:8151;;;;;;;;;;4574:7;-1:-1:-1;;;;;708:8151:52;4574:17;;;;;;;708:8151;4574:17;;;708:8151;-1:-1:-1;;;;;;708:8151:52;;4619:14;708:8151;;;4619:14;:::i;:::-;708:8151;;-1:-1:-1;;;4656:24:52;;708:8151;;;;4656:24;;;;;;;;;708:8151;4656:24;;;708:8151;4647:33;;;4643:97;;708:8151;4769:15;;;:::i;:::-;708:8151;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;708:8151:52;;;;;4831:3;708:8151;;4815:14;;;;;4884:10;;;;:::i;:::-;708:8151;;;;;;;4867:28;;708:8151;4867:28;;708:8151;;4867:28;708:8151;4867:28;;;;;;;;708:8151;4867:28;708:8151;4867:28;;;4831:3;-1:-1:-1;708:8151:52;;-1:-1:-1;;708:8151:52;4850:46;;;;:::i;:::-;708:8151;;4800:13;;4867:28;;;;708:8151;4867:28;;;;;;;;;:::i;:::-;;;;4815:14;;;708:8151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;4643:97;-1:-1:-1;;708:8151:52;;-1:-1:-1;;;4705:24:52;;708:8151;;;;4705:24;;;;;;;;;708:8151;4705:24;;;4643:97;;-1:-1:-1;4643:97:52;;4705:24;;;708:8151;4705:24;;708:8151;4705:24;;;;;;708:8151;4705:24;;;:::i;:::-;;;708:8151;;;;;4769:15;708:8151;;4705:24;;;;;-1:-1:-1;4705:24:52;;4656;;;;708:8151;4656:24;;708:8151;4656:24;;;;;;708:8151;4656:24;;;:::i;:::-;;;708:8151;;;;;;;4656:24;;;;;;-1:-1:-1;4656:24:52;;4574:17;;;;708:8151;4574:17;708:8151;4574:17;;;;;;;:::i;:::-;;;;708:8151;;;;-1:-1:-1;;;;;708:8151:52;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;708:8151:52;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;708:8151:52;;;;;-1:-1:-1;708:8151:52;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;708:8151:52;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;3829:20;708:8151;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;;;;;;:::o;2138:680::-;708:8151;;;2138:680;;708:8151;;;;;;;;;;;;;;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;708:8151:52;;;;;;;;2312:18;2346:20;;2342:63;;2435:9;;708:8151;;;;;;;2458:22;;708:8151;;-1:-1:-1;;;5345:46:52;;-1:-1:-1;;;;;708:8151:52;;;5345:46;;;708:8151;;;;;;;;;;;;;;;;5345:7;708:8151;;;;;;;;;5345:46;;;;;;;-1:-1:-1;5345:46:52;;;2454:256;5405:14;;;5401:85;;-1:-1:-1;;;;;708:8151:52;;;5558:6;5551:4;;5531:10;708:8151;5558:6;:::i;:::-;5633;;;;;:::i;:::-;615:4;5881:15;708:8151;5881:15;;708:8151;;;;;615:4;5651:366;708:8151;615:4;708:8151;;;;;;;:::i;:::-;;;;;;;;;;5677:330;;;708:8151;;5677:330;;708:8151;5677:330;708:8151;5677:330;;708:8151;-1:-1:-1;5677:330:52;;;615:4;5531:10;5677:330;;;708:8151;615:4;5677:330;;;615:4;-1:-1:-1;708:8151:52;;;;;;;;;;5651:366;;5345:46;5651:366;;615:4;;:::i;:::-;5651:366;;;;;;;;2454:256;708:8151;2735:21;708:8151;2780:31;708:8151;;;2454:256;2747:9;2735:21;;:::i;:::-;708:8151;2719:13;;708:8151;2780:31;:::i;:::-;708:8151;2766:11;;:45;2138:680::o;5651:366::-;;708:8151;5651:366;;708:8151;5651:366;;;;;;708:8151;5651:366;;;:::i;:::-;;;708:8151;;;;5651:366;-1:-1:-1;2735:21:52;5651:366;;;;;-1:-1:-1;5651:366:52;;5401:85;708:8151;;-1:-1:-1;;;5442:33:52;;708:8151;5345:46;5442:33;;708:8151;;;;;;-1:-1:-1;;;708:8151:52;;;;5442:33;;;5345:46;;;;708:8151;5345:46;;708:8151;5345:46;;;;;;708:8151;5345:46;;;:::i;:::-;;;708:8151;;;;;5345:46;;;;;;;-1:-1:-1;5345:46:52;;2454:256;708:8151;;-1:-1:-1;;;6505:51:52;;-1:-1:-1;;;;;708:8151:52;;;6505:51;;;708:8151;;;;;;;;;;;;;;;;6505:7;708:8151;;;;;;;;;6505:51;;;;;;;-1:-1:-1;6505:51:52;;;2454:256;6570:13;;;6566:83;;-1:-1:-1;;;;;708:8151:52;;;6721:8;6714:4;;6694:10;708:8151;6721:8;:::i;:::-;6798;;;;;:::i;:::-;615:4;7046:15;708:8151;7046:15;;708:8151;;;;;615:4;6818:369;708:8151;615:4;708:8151;;;;;;;:::i;:::-;;;;;;;;;;6843:334;;;708:8151;6843:334;708:8151;6843:334;;708:8151;;6843:334;;708:8151;-1:-1:-1;6843:334:52;;;615:4;6694:10;6843:334;;;708:8151;615:4;6843:334;;;615:4;-1:-1:-1;708:8151:52;;;;;;;;;;6818:369;;6505:51;6818:369;;615:4;;:::i;:::-;6818:369;;;;;;;;2454:256;708:8151;2735:21;708:8151;2780:31;708:8151;;;2454:256;;6818:369;;708:8151;6818:369;;708:8151;6818:369;;;;;;708:8151;6818:369;;;:::i;:::-;;;708:8151;;;;6818:369;-1:-1:-1;2735:21:52;6818:369;;;;;-1:-1:-1;6818:369:52;;6566:83;708:8151;;-1:-1:-1;;;6606:32:52;;708:8151;6505:51;6606:32;;708:8151;;;;;;-1:-1:-1;;;708:8151:52;;;;6606:32;;;6505:51;;;;708:8151;6505:51;;708:8151;6505:51;;;;;;708:8151;6505:51;;;:::i;:::-;;;708:8151;;;;;6505:51;;;;;;;-1:-1:-1;6505:51:52;;2342:63;2382:12;-1:-1:-1;;;;;2382:12:52:o;615:4::-;;;-1:-1:-1;;;;;708:8151:52;;;;;615:4;;;;;708:8151;;615:4;;;708:8151;615:4;;;;;;;;708:8151;615:4;;;;;;;;708:8151;615:4;;;;;;;;;;;708:8151;615:4;;;;708:8151;;;615:4;;;708:8151;615:4;;;;;;;;;;:::o;664:8::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;7347:1510::-;;708:8151;;:::i;:::-;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7520:53:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;;;708:8151;;;;;;;;;;;7520:7;708:8151;7520:53;708:8151;;;;7520:53;;;;;;;-1:-1:-1;7520:53:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7619:17:52;;7520:53;708:8151;7520:53;708:8151;7619:17;;;;;;;;-1:-1:-1;7619:17:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7669:36:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;7669:36;;708:8151;;;;;;;;;;7520:53;;708:8151;;;;;;;7669:36;;;;;;7520:53;7669:36;-1:-1:-1;7669:36:52;;;7347:1510;-1:-1:-1;708:8151:52;;-1:-1:-1;;;7838:28:52;;-1:-1:-1;;;;;708:8151:52;;;7520:53;7838:28;;708:8151;;;;7838:28;;708:8151;;7838:28;;;;;;;-1:-1:-1;7838:28:52;;;7347:1510;708:8151;664:8;708:8151;;664:8;708:8151;;;;;;-1:-1:-1;;;7942:36:52;;708:8151;7520:53;;708:8151;;7520:53;;708:8151;;-1:-1:-1;;;;;708:8151:52;7942:36;;;;;;7936:42;7520:53;7942:36;7520:53;7942:36;-1:-1:-1;7942:36:52;;;7347:1510;7936:42;;:::i;:::-;708:8151;;-1:-1:-1;;;8021:35:52;;708:8151;;;;;;;;-1:-1:-1;;;;;708:8151:52;8021:35;;;;;;8015:41;8021:35;-1:-1:-1;8021:35:52;;;8015:41;;:::i;:::-;664:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;708:8151;;;;;;:::i;:::-;;;664:8;7520:53;8666:184;;708:8151;7347:1510;:::o;664:8::-;708:8151;;;-1:-1:-1;664:8:52;;7520:53;664:8;7838:28;-1:-1:-1;664:8:52;8021:35;;;;7520:53;8021:35;7520:53;8021:35;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7942:36;;;;;;;;;;;;;;:::i;7838:28::-;;;7520:53;7838:28;;7520:53;7838:28;;;;;;708:8151;7838:28;;;:::i;:::-;;;708:8151;;;;;7838:28;;;;;;-1:-1:-1;7838:28:52;;7669:36;;;;;;;;;;;;;;:::i;:::-;;;;7619:17;;;;7520:53;7619:17;7520:53;7619:17;;;;;;;:::i;:::-;;;;7520:53;;;;;;;;;;;;;;708:8151;7520:53;;;:::i;:::-;;;708:8151;;;;;7520:53;;;;;;;-1:-1:-1;7520:53:52;;1702:188:32;708:8151:52;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;708:8151:52;;;1829:53:32;;;708:8151:52;;;;;;;;;;;;;;;;;1829:53:32;;;;;;708:8151:52;;1829:53:32;:::i;:::-;;:::i;:::-;1702:188::o;2081:225::-;708:8151:52;;-1:-1:-1;;;2200:39:32;;2224:4;2200:39;;;708:8151:52;-1:-1:-1;;;;;708:8151:52;;;;;;;;;;2200:39:32;708:8151:52;;;;2200:39:32;;;;;;-1:-1:-1;2200:39:32;;;2081:225;2278:20;;;;:::i;:::-;708:8151:52;-1:-1:-1;708:8151:52;;;3411:47:32;2200:39;3411:47;;708:8151:52;;;;3411:47:32;;708:8151:52;;;;;;3411:47:32;;;;;708:8151:52;;;;;;3411:47:32;;;;;;:::i;:::-;8024:25;;;;;;;;;;:::i;:::-;8066:69;;;2081:225;8066:103;;;;2081:225;3473:45;;3469:201;;2081:225;;;:::o;3469:201::-;3561:43;3646:12;708:8151:52;;;;;;;2200:39:32;3561:43;;;3411:47;3561:43;;708:8151:52;-1:-1:-1;708:8151:52;;;;;3561:43:32;;;3411:47;3561:43;;:::i;:::-;;;:::i;8066:103::-;8139:26;;;:30;;8066:103;;;:69;708:8151:52;;;;-1:-1:-1;8078:22:32;;;:56;;;;8066:69;;;;;;;8078:56;8104:30;;;2200:39;8104:30;;;;;;;;:::i;:::-;8078:56;;;;2200:39;;;;;;;;;;;;708:8151:52;2200:39:32;;;:::i;:::-;;;708:8151:52;;;;2278:20:32;708:8151:52;;2200:39:32;;;;;-1:-1:-1;2200:39:32;;708:8151:52;;;;;;;;;;615:4;;;708:8151;;;;;:::o;6468:629:32:-;2626:1:33;6468:629:32;3304:55:33;6468:629:32;708:8151:52;;;;;;3256:31:33;;;;;;;;;;;;:::i;:::-;3304:55;;;:::i;:::-;708:8151:52;;6960:22:32;;;;:57;;;;6468:629;6956:135;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;708:8151:52;664:8;2626:1:33;7040:40:32;6960:57;6987:30;;;3256:31:33;6987:30:32;;;;;;;;:::i;:::-;6986:31;6960:57;;;;708:8151:52;;;;;;;;;;;;;;;;;;;-1:-1:-1;;708:8151:52;;;;;:::i;:::-;;;;-1:-1:-1;708:8151:52;;;;:::o;:::-;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;708:8151:52;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;708:8151:52;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;708:8151:52;;;;4917:24:33;708:8151:52;664:8;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"63742":[{"start":874,"length":32},{"start":1465,"length":32},{"start":2553,"length":32},{"start":3025,"length":32},{"start":3619,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"Integral always relies on a single pool linked to the factory to map two pairs, and does not use routing we can then use getPriceByTokenAddresses() instead of getPriceByPairAddresses() as they both return the same value and the first also handles the order of tokens inside.Since the price of a token is determined externally by Integral Oracles and not by reserves it will always be the same (pre and post trade) and independent of the amounts swapped, but we still return an array of length=specifiedAmounts.length with same values to make sure the return value is the expected from caller.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"_prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"Integral Swap Adapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/integral/IntegralSwapAdapter.sol\":\"IntegralSwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"relayer_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"_sellToken","type":"address"},{"internalType":"address","name":"_buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"Integral always relies on a single pool linked to the factory to map two pairs, and does not use routing we can then use getPriceByTokenAddresses() instead of getPriceByPairAddresses() as they both return the same value and the first also handles the order of tokens inside.Since the price of a token is determined externally by Integral Oracles and not by reserves it will always be the same (pre and post trade) and independent of the amounts swapped, but we still return an array of length=specifiedAmounts.length with same values to make sure the return value is the expected from caller.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"_prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/integral/IntegralSwapAdapter.sol":"IntegralSwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/evm/out/IntegralSwapAdapter.t.sol/IntegralSwapAdapterTest.json b/evm/out/IntegralSwapAdapter.t.sol/IntegralSwapAdapterTest.json deleted file mode 100644 index 5f20ec6..0000000 --- a/evm/out/IntegralSwapAdapter.t.sol/IntegralSwapAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getMinLimits","inputs":[{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilitiesIntegral","inputs":[{"name":"pair","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimitsIntegral","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTokensIntegral","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzzIntegral","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzzIntegral","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasingIntegral","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601e541617601e5561616e90816100348239f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c8063053076211461333d5780630a9254e4146130005780631ed7831c14612f825780631fe0c49a14612ded57806323bc9a2914612d495780632ade388014612bda57806337124eb0146128d45780633e5e3c23146128565780633f7286f4146127d85780635d511088146118fb57806366d9a9a01461174d57806366f523f51461163b57806385226c81146115a1578063916a17c614611315578063b4f3fe0b14610c11578063b5508aa914610b70578063ba414fa614610b4b578063e20c9f7114610abd578063fa7626d414610a9a5763fe3ee58b146100f6575f80fd5b346107dc57806003193601126107dc57604051610ca09067016345785d8a00006101208383613620565b60648252601f19830190813660208501378061013b84613658565b5280159060015b60648110610a625750505061015a6040519384613620565b60648352835b818110610a2657505060015b6064811061029757505060015b60638110610185578280f35b61018f8183613689565b5151600182019081831161028357816101b8610202926101b0889588613689565b515190613c17565b6101df60206101c78688613689565b51015160206101d68489613689565b51015190613c17565b60406101f9816101ef8789613689565b5101519287613689565b51015190613c66565b810b5f5160206160995f395f51905f523b1561027f576040519063fe74f05b60e01b8252600482015281602482015281816044815f5160206160995f395f51905f525afa80156102745761025b575b5050600101610179565b8161026591613620565b61027057825f610251565b8280fd5b6040513d84823e3d90fd5b5080fd5b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f5160206160995f395f51905f525af191821561069f5785926109f3575b506102d58184613689565b51858060405160208101906370a0823160e01b8252306024820152602481526102ff604482613620565b51905f5160206161195f395f51905f525afa5061032c61031d613be8565b602080825183010191016137e4565b506103356137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156109df576001810180600e558110156109cb57600e8752305f5160206160d95f395f51905f529190910155601154600f5460105488926001600160a01b03169160e01b61039e613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906103f0816103e2888886613ca4565b03601f198101835282613620565b519020865260205260ff600360408720015416156109bd575b6001600160a01b0384165f908152600d602052604090209085526020526103e26104426040862093604051928391602083019586613ca4565b51902083526020526040822060018101549360028201546104638187613bdb565b61084e575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f5160206160995f395f51905f525afa978815610843578798610807575b506001908201610100031b5f1901811b198716915f5160206160995f395f51905f523b15610803576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f5160206160995f395f51905f525af190811561069f5785916107ea575b505061053c613e77565b9190159182156107df575b50506106ff5750505050610559614968565b601e546105a89060209060081c6001600160a01b03166105798487613689565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f5160206161195f395f51905f525af180156106d8576106e3575b50601e5485906080906106089060081c6001600160a01b03166105e98588613689565b51604051948580948193638307c65560e01b83526001600484016139d2565b03925af19081156106d85786916106aa575b506106258286613689565b526106308185613689565b5060405191631135fc2960e21b83526004830152602082602481885f5160206160995f395f51905f525af191821561069f57600192610671575b500161016c565b6106919060203d8111610698575b6106898183613620565b810190613981565b505f61066a565b503d61067f565b6040513d87823e3d90fd5b6106cb915060803d81116106d1575b6106c38183613620565b810190613999565b5f61061a565b503d6106b9565b6040513d88823e3d90fd5b6106fa9060203d8111610698576106898183613620565b6105c6565b82945054905f5160206160995f395f51905f523b15610270576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f5160206160995f395f51905f525af18015610274576107c7575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6107d2828092613620565b6107dc5780610766565b80fd5b141590505f80610547565b816107f491613620565b6107ff57835f610532565b8380fd5b8680fd5b965096506020863d821161083b575b8161082360209383613620565b81010312610837579451958b9590816104b5565b5f80fd5b3d9150610816565b6040513d89823e3d90fd5b909192935061085d8186613bdb565b6101000361010081116109a95760ff81116109a95760405163348051d760e11b8152600190911b600482018190528b80836024815f5160206160995f395f51905f525afa92831561099c5760209382606a9261093e9492610978575b506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613620565b83101561095057509089939291610468565b60405162461bcd60e51b8152602060048201529081906109749060248301906134bf565b0390fd5b6109959192503d8084833e61098d8183613620565b810190613782565b905f6108b9565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b6109c5614093565b50610409565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b9091506020813d8211610a1e575b81610a0e60209383613620565b810103126108375751905f6102ca565b3d9150610a01565b602090604051610a3581613605565b8681528683820152604051610a49816135ea565b8781528784820152604082015282828701015201610160565b808202908282048114841715610a8657600191610a7f8288613689565b5201610142565b634e487b7160e01b5f52601160045260245ffd5b50346107dc57806003193601126107dc57602060ff601e54166040519015158152f35b50346107dc57806003193601126107dc5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610b2c57610b2885610b1c81870382613620565b6040519182918261347d565b0390f35b82546001600160a01b0316845260209093019260019283019201610b05565b50346107dc57806003193601126107dc576020610b66613a46565b6040519015158152f35b50346107dc57806003193601126107dc57601954610b8d81613641565b91610b9b6040519384613620565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610be55760405160208082528190610b28908201886134e3565b600160208192604051610c0381610bfc81896138c5565b0382613620565b815201920192019190610bc8565b50346107dc57806003193601126107dc57604051610ca090633b9aca00610c388383613620565b60648252601f198301908136602085013780610c5384613658565b5280159060015b606481106112f157505050610c726040519384613620565b60648352835b8181106112b557505060015b60648110610d3657505060015b60638110610c9d578280f35b610ca78183613689565b5151600182019081831161028357816101b8610cc8926101b0889588613689565b810b5f5160206160995f395f51905f523b1561027f576040519063fe74f05b60e01b8252600482015281602482015281816044815f5160206160995f395f51905f525afa801561027457610d21575b5050600101610c91565b81610d2b91613620565b61027057825f610d17565b604051634b88b8ad60e11b815290602082600481885f5160206160995f395f51905f525af191821561069f578592611282575b50610d748184613689565b51858060405160208101906370a0823160e01b825230602482015260248152610d9e604482613620565b51905f5160206161195f395f51905f525afa50610dbc61031d613be8565b50610dc56137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156109df576001810180600e558110156109cb57600e8752305f5160206160d95f395f51905f529190910155601154600f5460105488926001600160a01b03169160e01b610e2e613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190610e72816103e2888886613ca4565b519020865260205260ff60036040872001541615611274575b6001600160a01b0384165f908152600d602052604090209085526020526103e2610ec46040862093604051928391602083019586613ca4565b5190208352602052604082206001810154936002820154610ee58187613bdb565b611173575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f5160206160995f395f51905f525afa97881561084357879861113b575b506001908201610100031b5f1901811b198716915f5160206160995f395f51905f523b15610803576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f5160206160995f395f51905f525af190811561069f578591611126575b5050610fbe613e77565b91901591821561111b575b50506106ff5750505050610fdb614968565b601e54610ffb9060209060081c6001600160a01b03166105798487613689565b0381895f5160206161195f395f51905f525af180156106d8576110ff575b50601e54859060809061105a9060081c6001600160a01b031661103c8588613689565b51604051948580948193638307c65560e01b835283600484016139d2565b03925af19081156106d85786916110e1575b506110778286613689565b526110828185613689565b5060405191631135fc2960e21b83526004830152602082602481885f5160206160995f395f51905f525af191821561069f576001926110c3575b5001610c84565b6110da9060203d8111610698576106898183613620565b505f6110bc565b6110f9915060803d81116106d1576106c38183613620565b5f61106c565b6111169060203d8111610698576106898183613620565b611019565b141590505f80610fc9565b8161113091613620565b6107ff57835f610fb4565b965096506020863d821161116b575b8161115760209383613620565b81010312610837579451958b959081610f37565b3d915061114a565b90919293506111828186613bdb565b6101000361010081116109a95760ff81116109a95760405163348051d760e11b8152600190911b600482018190528b80836024815f5160206160995f395f51905f525afa92831561099c5760209382606a92611262949261097857506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613620565b83101561095057509089939291610eea565b61127c614093565b50610e8b565b9091506020813d82116112ad575b8161129d60209383613620565b810103126108375751905f610d69565b3d9150611290565b6020906040516112c481613605565b86815286838201526040516112d8816135ea565b8781528784820152604082015282828701015201610c78565b808202908282048114841715610a865760019161130e8288613689565b5201610c5a565b50346107dc57806003193601126107dc57601c5461133281613641565b906113406040519283613620565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106113835760405180610b28878261353b565b60405161138f816135ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611502578460019794600297946020979461141a9454918181106114e6575b8181106114ca575b8181106114ae575b818110611492575b818110611476575b81811061145a575b818110611440575b1061142c575b500382613620565b8382015281520192019201919061136e565b6001600160e01b031916815286015f611412565b828a1b6001600160e01b0319168452928901928b0161140c565b604083901b6001600160e01b0319168452928901928b01611404565b606083901b6001600160e01b0319168452928901928b016113fc565b608083901b6001600160e01b0319168452928901928b016113f4565b60a083901b6001600160e01b0319168452928901928b016113ec565b60c083901b6001600160e01b0319168452928901928b016113e4565b60e083901b6001600160e01b0319168452928901928b016113dc565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916113b7565b50346107dc57806003193601126107dc57601a546115be81613641565b916115cc6040519384613620565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106116165760405160208082528190610b28908201886134e3565b60016020819260405161162d81610bfc81896138c5565b8152019201920191906115f9565b50346107dc57806003193601126107dc57601e5460405163ecbbc03360e01b81525f5160206160f95f395f51905f5260048201529082908290602490829060081c6001600160a01b03165afa80156102745782906116a2575b61169f915051613ae1565b80f35b503d8083833e6116b28183613620565b810190602081830312610270578051906001600160401b0382116107ff57019080601f83011215610270578151906116e982613641565b926116f76040519485613620565b82845260208085019360051b82010191821161174957602001915b8183106117255750505061169f90611694565b82516001600160a01b038116810361174557815260209283019201611712565b8580fd5b8480fd5b50346107dc57806003193601126107dc57601b5461176a81613641565b906117786040519283613620565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106117bb5760405180610b28878261353b565b6040516117c7816135ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061185c578460019794600297946020979461184a9454918181106114e6578181106114ca578181106114ae57818110611492578181106114765781811061145a57818110611440571061142c57500382613620565b838201528152019201920191906117a6565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117ef565b50346107dc5760403660031901126107dc57600435602435801515810361027057156127d25760015b60606040516119338282613620565b60028152601f19820180916020369101376040516119518382613620565b6002815260203691013760028210156127be576001821490811561230657601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f526044820152869182908290606490829060081c6001600160a01b03165afa8015610274576119e89183916122e4575b50613679565b5185105f5160206160995f395f51905f523b1561027f5760405190632631f2b160e11b8252600482015281816024815f5160206160995f395f51905f525afa8015610274576122cf575b5050611a44611a3f61369d565b613679565b516073810290808204607314901517156122bb5785905f5160206160995f395f51905f523b1561027f57604051632631f2b160e11b815260649091048611600482015281816024815f5160206160995f395f51905f525afa8015610274576122a6575b508060405160208101906370a0823160e01b825230602482015260248152611ad0604482613620565b51905f5160206161195f395f51905f525afa50611aee61031d613be8565b50611af76137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612292576001810180600e5581101561227e57600e8652305f5160206160d95f395f51905f529190910155601154600f5460105487926001600160a01b03169160e01b611b60613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190611ba4816103e2888886613ca4565b519020865260205260ff60036040872001541615612270575b6001600160a01b0384165f908152600d602052604090209085526020526103e2611bf66040862093604051928391602083019586613ca4565b519020835260205260408220600181015493600282015490611c188287613bdb565b61212c57508154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206160995f395f51905f525afa9687156106d85786976120f3575b506001908201610100031b5f1901811b1986165f5160206160995f395f51905f523b15611745576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206160995f395f51905f525af1908115611eed5784916120de575b5050611cee613e77565b90159081156120d2575b506106ff5750505050611d09614968565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f196024820152602081604481885f5160206161195f395f51905f525af1801561069f576120b3575b505b6040516370a0823160e01b8152306004820152926020846024815f5160206161195f395f51905f525afa93841561069f57859461207f575b506040516370a0823160e01b8152306004820152916020836024815f5160206160b95f395f51905f525afa9283156106d8578693612048575b50608082611dfd9560018060a01b03601e5460081c169089604051809981958294638307c65560e01b8452600484016139d2565b03925af19384156106d8578694612027575b508351611e1a578580f35b15611f2c576040516370a0823160e01b81523060048201526020816024815f5160206160b95f395f51905f525afa9081156106d8578691611ef8575b50611e6a92611e6491613a39565b90613b3d565b516040516370a0823160e01b81523060048201526020816024815f5160206161195f395f51905f525afa908115611eed578491611eb9575b50611e6490611eb093613a39565b5f808080808580f35b90506020813d602011611ee5575b81611ed460209383613620565b810103126108375751611eb0611ea2565b3d9150611ec7565b6040513d86823e3d90fd5b90506020813d602011611f24575b81611f1360209383613620565b810103126108375751611e6a611e56565b3d9150611f06565b6040516370a0823160e01b81523060048201529193916020816024815f5160206161195f395f51905f525afa9081156106d8578691611ff3575b50611e6490611f7493613a39565b516040516370a0823160e01b81523060048201526020816024815f5160206160b95f395f51905f525afa908115611eed578491611fbf575b50611fba92611e6491613a39565b611eb0565b90506020813d602011611feb575b81611fda60209383613620565b810103126108375751611fba611fac565b3d9150611fcd565b90506020813d60201161201f575b8161200e60209383613620565b810103126108375751611f74611f66565b3d9150612001565b61204191945060803d6080116106d1576106c38183613620565b925f611e0f565b9392506020843d602011612077575b8161206460209383613620565b8101031261083757925191926080611dc9565b3d9150612057565b9093506020813d6020116120ab575b8161209b60209383613620565b810103126108375751925f611d90565b3d915061208e565b6120cb9060203d602011610698576106898183613620565b505f611d56565b5f19141590505f611cf8565b816120e891613620565b61027057825f611ce4565b955095506020853d602011612124575b8161211060209383613620565b810103126108375793519489949081611c6a565b3d9150612103565b612137859287613bdb565b61010003610100811161225c5760ff811161225c5760405163348051d760e11b8152600190911b600482015282816024815f5160206160995f395f51905f525afa9081156122515769030ba32b9103a3430b7160b51b9284602061221794606a946109749891612237575b506040519687947f73746453746f726167652066696e642853746453746f72616765293a20506163848701527f6b656420736c6f742e2057652063616e2774206669742076616c75652067726560408701528501528051918291018585015e820190838201520301601f198101835282613620565b60405162461bcd60e51b81526020600482015291829160248301906134bf565b61224b91503d8085833e61098d8183613620565b886121a2565b6040513d85823e3d90fd5b634e487b7160e01b83526011600452602483fd5b612278614093565b50611bbd565b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b816122b091613620565b61174957845f611aa7565b634e487b7160e01b86526011600452602486fd5b816122d991613620565b61174957845f611a32565b61230091503d8085833e6122f88183613620565b810190613814565b5f6119e2565b601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f526044820152869182908290606490829060081c6001600160a01b03165afa80156102745761237f9183916127a4575b50613658565b5185105f5160206160995f395f51905f523b1561027f5760405190632631f2b160e11b8252600482015281816024815f5160206160995f395f51905f525afa80156102745761278f575b50506123db6123d661369d565b613658565b516073810290808204607314901517156122bb5785905f5160206160995f395f51905f523b1561027f57604051632631f2b160e11b815260649091048611600482015281816024815f5160206160995f395f51905f525afa80156102745761277a575b508060405160208101906370a0823160e01b825230602482015260248152612467604482613620565b51905f5160206161195f395f51905f525afa5061248561031d613be8565b5061248e6137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612292576001810180600e5581101561227e57600e8652305f5160206160d95f395f51905f529190910155601154600f5460105487926001600160a01b03169160e01b6124f7613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061253b816103e2888886613ca4565b519020865260205260ff6003604087200154161561276c575b6001600160a01b0384165f908152600d602052604090209085526020526103e261258d6040862093604051928391602083019586613ca4565b5190208352602052604082206001810154936002820154906125af8287613bdb565b61212c57508154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206160995f395f51905f525afa9687156106d8578697612733575b506001908201610100031b5f1901811b1986165f5160206160995f395f51905f523b15611745576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206160995f395f51905f525af1908115611eed57849161271e575b5050612685613e77565b9015908115612712575b506106ff57505050506126a0614968565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b0316600482015260248101849052602081604481885f5160206161195f395f51905f525af1801561069f576126f3575b50611d58565b61270b9060203d602011610698576106898183613620565b505f6126ed565b5f19141590505f61268f565b8161272891613620565b61027057825f61267b565b955095506020853d602011612764575b8161275060209383613620565b810103126108375793519489949081612601565b3d9150612743565b612774614093565b50612554565b8161278491613620565b61174957845f61243e565b8161279991613620565b61174957845f6123c9565b6127b891503d8085833e6122f88183613620565b5f612379565b634e487b7160e01b84526021600452602484fd5b81611924565b50346107dc57806003193601126107dc5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061283757610b2885610b1c81870382613620565b82546001600160a01b0316845260209093019260019283019201612820565b50346107dc57806003193601126107dc5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106128b557610b2885610b1c81870382613620565b82546001600160a01b031684526020909301926001928301920161289e565b50346107dc5760403660031901126107dc576004359060243560018060a01b03601e5460081c169060405163549387df60e11b81527317f0b6e8c5dd13722bdbee90406ab3a18958135160611b60048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f5260448201528381606481865afa908115611eed578491612bc0575b5061296c81613658565b5185105f5160206160995f395f51905f523b156117495760405190632631f2b160e11b8252600482015284816024815f5160206160995f395f51905f525afa801561069f57908591612bab575b50506129c490613679565b5181105f5160206160995f395f51905f523b156107ff5760405190632631f2b160e11b8252600482015283816024815f5160206160995f395f51905f525afa8015611eed57612b96575b50928291612aa39460405192612a25606085613620565b600284526040366020860137612a3a84613658565b52612a4483613679565b5260405163155adc9160e31b81525f5160206160f95f395f51905f5260048201525f5160206160b95f395f51905f5260248201525f5160206161195f395f51905f5260448201526080606482015294859283918291608483019061344a565b03915afa91821561099c578192612af9575b50805b8251811015612af55780612ad8612ad160019386613689565b5151613b8c565b612aef6020612ae78387613689565b510151613b8c565b01612ab8565b5080f35b9091503d8083833e612b0b8183613620565b810190602081830312610270578051906001600160401b0382116107ff570181601f82011215610270578051612b4081613641565b92612b4e6040519485613620565b81845260208085019260061b8401019281841161174557602001915b838310612b7c5750505050905f612ab5565b6020604091612b8b8486613946565b815201920191612b6a565b612ba1848092613620565b610270575f612a0e565b81612bb591613620565b6107ff57835f6129b9565b612bd491503d8086833e6122f88183613620565b5f612962565b50346107dc57806003193601126107dc57601d54612bf781613641565b612c046040519182613620565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612cb857868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210612c7157505050500390f35b91936001919395506020612ca88192603f198a82030186526040838a51878060a01b038151168452015191818582015201906134e3565b9601920192018594939192612c62565b604051612cc4816135ea565b82546001600160a01b03168152600183018054612ce081613641565b91612cee6040519384613620565b8183528a526020808b20908b9084015b838210612d24575050505060019282602092836002950152815201920192019190612c34565b600160208192604051612d3b81610bfc818a6138c5565b815201930191019091612cfe565b50346107dc57806003193601126107dc57601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f5260448201529082908290606490829060081c6001600160a01b03165afa80156102745761169f918391612dd3575b5051613ae1565b612de791503d8085833e6122f88183613620565b5f612dcc565b50346107dc5760603660031901126107dc5780612e08613434565b6044356001600160a01b03811690819003612f7e57601e546040516348bd7dfd60e01b815260048035908201526001600160a01b0393841660248201526044810192909252909183918391606491839160089190911c165afa908115610274578291612ed5575b50515f5160206160995f395f51905f523b15612ed2576040519063260a5b1560e21b825260048201526004602482015281816044815f5160206160995f395f51905f525afa801561027457612ec15750f35b81612ecb91613620565b6107dc5780f35b50fd5b9150503d8083833e612ee78183613620565b810190602081830312610270578051906001600160401b0382116107ff57019080601f8301121561027057815190612f1e82613641565b92612f2c6040519485613620565b82845260208085019360051b820101918211611749579060208594939201915b818310612f5c575050505f612e6f565b90918093945051600a8110156117455781528493926020908101929101612f4c565b5050fd5b50346107dc57806003193601126107dc5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110612fe157610b2885610b1c81870382613620565b82546001600160a01b0316845260209093019260019283019201612fca565b5034610837575f3660031901126108375760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206160995f395f51905f525afa9081156132d557613089916020915f91613323575b50604051809381926371ee464d60e01b83526040600484015260448301906134bf565b63011f676d602483015203815f5f5160206160995f395f51905f525af180156132d5576132f4575b5060405161148e808201908282106001600160401b038311176132e0576020918391614c0b833973d17b3c9784510e33cd5b87b490e79253bcd81e2e81520301905ff080156132d557601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179055601f80546001600160a01b03191673d17b3c9784510e33cd5b87b490e79253bcd81e2e1790555f5160206160995f395f51905f523b15610837576040516318caf8e360e31b81525f5160206160b95f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201525f81608481835f5160206160995f395f51905f525af180156132d5576132c2575b505f5160206160995f395f51905f523b156107dc57806040516318caf8e360e31b81525f5160206161195f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f5160206160995f395f51905f525af18015610274576132ad575b50505f5160206160995f395f51905f523b156107dc57806040516318caf8e360e31b8152732fe16dd18bba26e457b7dd2080d5674312b026a2600482015260406024820152600e60448201526d2aa9a221afaba2aa242fa820a4a960911b60648201528181608481835f5160206160995f395f51905f525af1801561027457612ec15750f35b816132b791613620565b6107dc57805f613227565b6132ce91505f90613620565b5f5f6131b5565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161331b575b8161330d60209383613620565b8101031261083757516130b1565b3d9150613300565b61333791503d805f833e61098d8183613620565b5f613066565b34610837576040366003190112610837576004356001600160a01b038116908190036108375760c061336d613434565b601f5460405163abc27eed60e01b815260048101949094526001600160a01b03918216602485015283916044918391165afa80156132d5575f905f906133f6575b610b289250604051916133c2606084613620565b6002835260403660208501376133d783613658565b526133e182613679565b5260405191829160208352602083019061344a565b505060c0813d60c01161342c575b8161341160c09383613620565b81010312610837578060806040610b289301519101516133ae565b3d9150613404565b602435906001600160a01b038216820361083757565b90602080835192838152019201905f5b8181106134675750505090565b825184526020938401939092019160010161345a565b60206040818301928281528451809452019201905f5b8181106134a05750505090565b82516001600160a01b0316845260209384019390920191600101613493565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b83831061350e57505050505090565b909192939460208061352c600193601f1986820301875289516134bf565b970193019301919392906134ff565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061356d57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106135c7575050506020806001929701930193019193929061355e565b82516001600160e01b0319168452602093840193909201916001909101906135a8565b604081019081106001600160401b038211176132e057604052565b606081019081106001600160401b038211176132e057604052565b90601f801991011681019081106001600160401b038211176132e057604052565b6001600160401b0381116132e05760051b60200190565b8051156136655760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156136655760400190565b80518210156136655760209160051b010190565b601f5460405163abc27eed60e01b81525f5160206161195f395f51905f5260048201525f5160206160b95f395f51905f526024820152919060c090839060449082906001600160a01b03165afa80156132d5575f925f9161372b575b5061372860405161370b606082613620565b600281526040366020830137809461372282613658565b52613679565b52565b92505060c0823d60c01161375f575b8161374760c09383613620565b8101031261083757608060408301519201515f6136f9565b3d915061373a565b6001600160401b0381116132e057601f01601f191660200190565b602081830312610837578051906001600160401b038211610837570181601f82011215610837578051906137b582613767565b926137c36040519485613620565b8284526020838301011161083757815f9260208093018386015e8301015290565b90816020910312610837575190565b601180546001600160a01b0319165f5160206161195f395f51905f52179055565b602081830312610837578051906001600160401b03821161083757019080601f8301121561083757815161384781613641565b926138556040519485613620565b81845260208085019260051b82010192831161083757602001905b82821061387d5750505090565b8151815260209182019101613870565b90600182811c921680156138bb575b60208310146138a757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161389c565b5f92918154916138d48361388d565b808352926001811690811561392957506001146138f057505050565b5f9081526020812093945091925b83831061390f575060209250010190565b6001816020929493945483858701015201910191906138fe565b915050602093945060ff929192191683830152151560051b010190565b91908260409103126108375760405161395e816135ea565b6020808294805184520151910152565b81810292918115918404141715610a8657565b90816020910312610837575180151581036108375790565b90608082820312610837576139ca9060408051936139b685613605565b805185526020810151602086015201613946565b604082015290565b5f5160206160f95f395f51905f5281525f5160206161195f395f51905f5260208201525f5160206160b95f395f51905f52604082015260a08101939291906002821015613a255760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b91908203918211610a8657565b60085460ff168015613a555790565b50604051630667f9d760e41b81525f5160206160995f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206160995f395f51905f525afa9081156132d5575f91613aaf575b50151590565b90506020813d602011613ad9575b81613aca60209383613620565b8101031261083757515f613aa9565b3d9150613abd565b5f5160206160995f395f51905f523b15610837576040519063260a5b1560e21b82526004820152600260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b5f613b3b91613620565b565b905f5160206160995f395f51905f523b15610837576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b5f5160206160995f395f51905f523b156108375760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b91908201809211610a8657565b3d15613c12573d90613bf982613767565b91613c076040519384613620565b82523d5f602084013e565b606090565b905f5160206160995f395f51905f523b156108375760405191638466f41560e01b8352600483015260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b613c86906020613c7b8251828601519061396e565b93519101519061396e565b90808203613c945750505f90565b1115613c9f57600190565b5f1990565b60209291908391805192839101825e019081520190565b613cc660145461388d565b613d83576040519081826020600e549283815201600e5f5260205f20925f5b818110613d6a575050613cfa92500383613620565b81518060051b9080820460201490151715610a8657613d1881613767565b90613d266040519283613620565b808252613d35601f1991613767565b013660208301375f5b8351811015613d655780613d5460019286613689565b5160208260051b8501015201613d3e565b509150565b8454835260019485019487945060209093019201613ce5565b604051613d9581610bfc8160146138c5565b90565b6007810190613da7825461388d565b613e6357600191500190604051808360208295549384815201905f5260205f20925f5b818110613e4a575050613ddf92500383613620565b81518060051b9080820460201490151715610a8657613dfd81613767565b90613e0b6040519283613620565b808252613e1a601f1991613767565b013660208301375f5b8351811015613d655780613e3960019286613689565b5160208260051b8501015201613e23565b8454835260019485019487945060209093019201613dca565b50613d95610bfc91604051928380926138c5565b5f806020600f5460e01b613ec56024613e90600d613d98565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613620565b6011549151916001600160a01b03165afa90613edf613be8565b601054909290600581901b906001600160fb1b03811603610a86575f938051602081115f14613f6a57506020905b5f925b828410613f1f57505050509190565b90919295613f2d8783613bdb565b835181101561366557830160200151600388901b91906001600160f81b031916881560088a8504141715610a86576001921c179601929190613f10565b90613f0d565b905f806020600285015460e01b613f8b6024613e9088613d98565b60048601549151916001600160a01b03165afa6003613fa8613be8565b930154600581901b906001600160fb1b03811603610a86575f938051602081115f1461403057506020905b5f925b828410613fe557505050509190565b90919295613ff38783613bdb565b835181101561366557830160200151600388901b91906001600160f81b031916881560088a8504141715610a86576001921c179601929190613fd6565b90613fd3565b9080601f8301121561083757815161404d81613641565b9261405b6040519485613620565b81845260208085019260051b82010192831161083757602001905b8282106140835750505090565b8151815260209182019101614076565b601154600f546010546001600160a01b03909216915f9160e01b6140b7600d613d98565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906140f0816103e2888886613ca4565b5190205f5260205260ff600360405f20015416614927575f5160206160995f395f51905f523b156108375760405163266cf10960e01b81525f81600481835f5160206160995f395f51905f525af180156132d557614912575b50614154600d613f70565b90506040516365bc948160e01b81528660048201528581602481835f5160206160995f395f51905f525af19081156106d85786916148aa575b5080516141fe57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b81518110156148a2578160206142198361424a95613689565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206160995f395f51905f525afa928315614897578893614864575b50821561480c575b61427c8282613689565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206160995f395f51905f525afa908115614801578b916147d0575b506142d7600d613f70565b91909382155f146147c9575f19905b5f5160206160995f395f51905f523b156147b0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206160995f395f51905f525af1801561472a57908d916147b4575b5050614357600d613f70565b601154909491506001600160a01b03165f5160206160995f395f51905f523b156147b0576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206160995f395f51905f525af180156147a557908c9161478c575b505082614781575b505015614777578793889360ff601354166145f1575b6001868601610100031b5f1901851b16841c81036145e3575090614471917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896103e26144468d604051928391602083019586613ca4565b5190206144538686613689565b51906040519283528a602084015260408301526060820152a1613689565b51906040519060808201928284106001600160401b038511176132e05760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906144da816103e28d8d86613ca4565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614535816103e2888886613ca4565b519020855260205260ff60036040862001541615614586576040948452600d6020528484209084526020526103e261457a858520938651928391602083019586613ca4565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01614200565b945061463c93506146028383613689565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206160995f395f51905f525afa94851561476c578a95614739575b5061466886600d614a6e565b95909661467681600d614b47565b60115490939192906001600160a01b03165f5160206160995f395f51905f523b15614735576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206160995f395f51905f525af1801561472a57908d91614711575b505087614709575b5094956143eb5750935091506001906145eb565b96505f6146f5565b8161471b91613620565b614726578b5f6146ed565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211614764575b8161475460209383613620565b810103126108375751935f61465c565b3d9150614747565b6040513d8c823e3d90fd5b91506001906145eb565b141590505f806143d5565b8161479691613620565b6147a1578a5f6143cd565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816147be91613620565b614726578b5f61434b565b8c906142e6565b90506020813d82116147f9575b816147ea60209383613620565b8101031261083757515f6142cc565b3d91506147dd565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a561485c61483a8484613689565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614272565b9092506020813d821161488f575b8161487f60209383613620565b810103126108375751915f61426a565b3d9150614872565b6040513d8a823e3d90fd5b505050614508565b90503d8087833e6148bb8183613620565b81016040828203126108035781516001600160401b03811161490e57816148e3918401614036565b916020810151906001600160401b03821161490a57614903929101614036565b505f61418d565b8880fd5b8780fd5b61491f9194505f90613620565b5f925f614149565b91939092505f52600d60205260405f20905f526020526103e261495960405f2093604051928391602083019586613ca4565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580614a3f575b505f60105560ff19601354166013556149b360145461388d565b806149bb5750565b601f81116001146149cd57505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110614a3457505060145f525f602081208160145555565b5f8155600101614a1b565b600e5f525f5160206160d95f395f51905f52908101905b818110614a635750614999565b5f8155600101614a56565b91905f5b6101008110614a8557505090505f905f90565b8060ff0360ff8111610a86576004850154600190911b906001600160a01b03165f5160206160995f395f51905f523b15610837576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206160995f395f51905f525af180156132d557614b37575b50614b1184613f70565b81614b2d575b50614b2457600101614a72565b92505060019190565b905015155f614b17565b5f614b4191613620565b5f614b07565b91905f5b6101008110614b5e57505090505f905f90565b60048401546001821b906001600160a01b03165f5160206160995f395f51905f523b15610837576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206160995f395f51905f525af180156132d557614bfa575b50614bdd84613f70565b81614bf0575b50614b2457600101614b4b565b905015155f614be3565b5f614c0491613620565b5f614bd356fe60a03461008857601f61148e38819003918201601f19168301916001600160401b0383118484101761008c5780849260209460405283398101031261008857516001600160a01b03811690819003610088576080526040516113ed90816100a1823960805181818161036a015281816105b9015281816109f901528181610bd10152610e230152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2bb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd2fe16dd18bba26e457b7dd2080d5674312b026a2000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a264697066735822122072b110b0993eda90a80886c68f0819d7ad7fea0c5c7db46eb721f7aadb24627c64736f6c634300081b0033","sourceMap":"302:6332:74:-:0;;;;;;;3166:4:2;302:6332:74;;3166:4:2;302:6332:74;;;3166:4:2;302:6332:74;3166:4:2;302:6332:74;;1038:4:12;302:6332:74;;;1038:4:12;302:6332:74;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c8063053076211461333d5780630a9254e4146130005780631ed7831c14612f825780631fe0c49a14612ded57806323bc9a2914612d495780632ade388014612bda57806337124eb0146128d45780633e5e3c23146128565780633f7286f4146127d85780635d511088146118fb57806366d9a9a01461174d57806366f523f51461163b57806385226c81146115a1578063916a17c614611315578063b4f3fe0b14610c11578063b5508aa914610b70578063ba414fa614610b4b578063e20c9f7114610abd578063fa7626d414610a9a5763fe3ee58b146100f6575f80fd5b346107dc57806003193601126107dc57604051610ca09067016345785d8a00006101208383613620565b60648252601f19830190813660208501378061013b84613658565b5280159060015b60648110610a625750505061015a6040519384613620565b60648352835b818110610a2657505060015b6064811061029757505060015b60638110610185578280f35b61018f8183613689565b5151600182019081831161028357816101b8610202926101b0889588613689565b515190613c17565b6101df60206101c78688613689565b51015160206101d68489613689565b51015190613c17565b60406101f9816101ef8789613689565b5101519287613689565b51015190613c66565b810b5f5160206160995f395f51905f523b1561027f576040519063fe74f05b60e01b8252600482015281602482015281816044815f5160206160995f395f51905f525afa80156102745761025b575b5050600101610179565b8161026591613620565b61027057825f610251565b8280fd5b6040513d84823e3d90fd5b5080fd5b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f5160206160995f395f51905f525af191821561069f5785926109f3575b506102d58184613689565b51858060405160208101906370a0823160e01b8252306024820152602481526102ff604482613620565b51905f5160206161195f395f51905f525afa5061032c61031d613be8565b602080825183010191016137e4565b506103356137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156109df576001810180600e558110156109cb57600e8752305f5160206160d95f395f51905f529190910155601154600f5460105488926001600160a01b03169160e01b61039e613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906103f0816103e2888886613ca4565b03601f198101835282613620565b519020865260205260ff600360408720015416156109bd575b6001600160a01b0384165f908152600d602052604090209085526020526103e26104426040862093604051928391602083019586613ca4565b51902083526020526040822060018101549360028201546104638187613bdb565b61084e575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f5160206160995f395f51905f525afa978815610843578798610807575b506001908201610100031b5f1901811b198716915f5160206160995f395f51905f523b15610803576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f5160206160995f395f51905f525af190811561069f5785916107ea575b505061053c613e77565b9190159182156107df575b50506106ff5750505050610559614968565b601e546105a89060209060081c6001600160a01b03166105798487613689565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f5160206161195f395f51905f525af180156106d8576106e3575b50601e5485906080906106089060081c6001600160a01b03166105e98588613689565b51604051948580948193638307c65560e01b83526001600484016139d2565b03925af19081156106d85786916106aa575b506106258286613689565b526106308185613689565b5060405191631135fc2960e21b83526004830152602082602481885f5160206160995f395f51905f525af191821561069f57600192610671575b500161016c565b6106919060203d8111610698575b6106898183613620565b810190613981565b505f61066a565b503d61067f565b6040513d87823e3d90fd5b6106cb915060803d81116106d1575b6106c38183613620565b810190613999565b5f61061a565b503d6106b9565b6040513d88823e3d90fd5b6106fa9060203d8111610698576106898183613620565b6105c6565b82945054905f5160206160995f395f51905f523b15610270576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f5160206160995f395f51905f525af18015610274576107c7575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6107d2828092613620565b6107dc5780610766565b80fd5b141590505f80610547565b816107f491613620565b6107ff57835f610532565b8380fd5b8680fd5b965096506020863d821161083b575b8161082360209383613620565b81010312610837579451958b9590816104b5565b5f80fd5b3d9150610816565b6040513d89823e3d90fd5b909192935061085d8186613bdb565b6101000361010081116109a95760ff81116109a95760405163348051d760e11b8152600190911b600482018190528b80836024815f5160206160995f395f51905f525afa92831561099c5760209382606a9261093e9492610978575b506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613620565b83101561095057509089939291610468565b60405162461bcd60e51b8152602060048201529081906109749060248301906134bf565b0390fd5b6109959192503d8084833e61098d8183613620565b810190613782565b905f6108b9565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b6109c5614093565b50610409565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b9091506020813d8211610a1e575b81610a0e60209383613620565b810103126108375751905f6102ca565b3d9150610a01565b602090604051610a3581613605565b8681528683820152604051610a49816135ea565b8781528784820152604082015282828701015201610160565b808202908282048114841715610a8657600191610a7f8288613689565b5201610142565b634e487b7160e01b5f52601160045260245ffd5b50346107dc57806003193601126107dc57602060ff601e54166040519015158152f35b50346107dc57806003193601126107dc5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610b2c57610b2885610b1c81870382613620565b6040519182918261347d565b0390f35b82546001600160a01b0316845260209093019260019283019201610b05565b50346107dc57806003193601126107dc576020610b66613a46565b6040519015158152f35b50346107dc57806003193601126107dc57601954610b8d81613641565b91610b9b6040519384613620565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610be55760405160208082528190610b28908201886134e3565b600160208192604051610c0381610bfc81896138c5565b0382613620565b815201920192019190610bc8565b50346107dc57806003193601126107dc57604051610ca090633b9aca00610c388383613620565b60648252601f198301908136602085013780610c5384613658565b5280159060015b606481106112f157505050610c726040519384613620565b60648352835b8181106112b557505060015b60648110610d3657505060015b60638110610c9d578280f35b610ca78183613689565b5151600182019081831161028357816101b8610cc8926101b0889588613689565b810b5f5160206160995f395f51905f523b1561027f576040519063fe74f05b60e01b8252600482015281602482015281816044815f5160206160995f395f51905f525afa801561027457610d21575b5050600101610c91565b81610d2b91613620565b61027057825f610d17565b604051634b88b8ad60e11b815290602082600481885f5160206160995f395f51905f525af191821561069f578592611282575b50610d748184613689565b51858060405160208101906370a0823160e01b825230602482015260248152610d9e604482613620565b51905f5160206161195f395f51905f525afa50610dbc61031d613be8565b50610dc56137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b8110156109df576001810180600e558110156109cb57600e8752305f5160206160d95f395f51905f529190910155601154600f5460105488926001600160a01b03169160e01b610e2e613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190610e72816103e2888886613ca4565b519020865260205260ff60036040872001541615611274575b6001600160a01b0384165f908152600d602052604090209085526020526103e2610ec46040862093604051928391602083019586613ca4565b5190208352602052604082206001810154936002820154610ee58187613bdb565b611173575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f5160206160995f395f51905f525afa97881561084357879861113b575b506001908201610100031b5f1901811b198716915f5160206160995f395f51905f523b15610803576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f5160206160995f395f51905f525af190811561069f578591611126575b5050610fbe613e77565b91901591821561111b575b50506106ff5750505050610fdb614968565b601e54610ffb9060209060081c6001600160a01b03166105798487613689565b0381895f5160206161195f395f51905f525af180156106d8576110ff575b50601e54859060809061105a9060081c6001600160a01b031661103c8588613689565b51604051948580948193638307c65560e01b835283600484016139d2565b03925af19081156106d85786916110e1575b506110778286613689565b526110828185613689565b5060405191631135fc2960e21b83526004830152602082602481885f5160206160995f395f51905f525af191821561069f576001926110c3575b5001610c84565b6110da9060203d8111610698576106898183613620565b505f6110bc565b6110f9915060803d81116106d1576106c38183613620565b5f61106c565b6111169060203d8111610698576106898183613620565b611019565b141590505f80610fc9565b8161113091613620565b6107ff57835f610fb4565b965096506020863d821161116b575b8161115760209383613620565b81010312610837579451958b959081610f37565b3d915061114a565b90919293506111828186613bdb565b6101000361010081116109a95760ff81116109a95760405163348051d760e11b8152600190911b600482018190528b80836024815f5160206160995f395f51905f525afa92831561099c5760209382606a92611262949261097857506040519586927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c756520677265604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101845283613620565b83101561095057509089939291610eea565b61127c614093565b50610e8b565b9091506020813d82116112ad575b8161129d60209383613620565b810103126108375751905f610d69565b3d9150611290565b6020906040516112c481613605565b86815286838201526040516112d8816135ea565b8781528784820152604082015282828701015201610c78565b808202908282048114841715610a865760019161130e8288613689565b5201610c5a565b50346107dc57806003193601126107dc57601c5461133281613641565b906113406040519283613620565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106113835760405180610b28878261353b565b60405161138f816135ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611502578460019794600297946020979461141a9454918181106114e6575b8181106114ca575b8181106114ae575b818110611492575b818110611476575b81811061145a575b818110611440575b1061142c575b500382613620565b8382015281520192019201919061136e565b6001600160e01b031916815286015f611412565b828a1b6001600160e01b0319168452928901928b0161140c565b604083901b6001600160e01b0319168452928901928b01611404565b606083901b6001600160e01b0319168452928901928b016113fc565b608083901b6001600160e01b0319168452928901928b016113f4565b60a083901b6001600160e01b0319168452928901928b016113ec565b60c083901b6001600160e01b0319168452928901928b016113e4565b60e083901b6001600160e01b0319168452928901928b016113dc565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916113b7565b50346107dc57806003193601126107dc57601a546115be81613641565b916115cc6040519384613620565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106116165760405160208082528190610b28908201886134e3565b60016020819260405161162d81610bfc81896138c5565b8152019201920191906115f9565b50346107dc57806003193601126107dc57601e5460405163ecbbc03360e01b81525f5160206160f95f395f51905f5260048201529082908290602490829060081c6001600160a01b03165afa80156102745782906116a2575b61169f915051613ae1565b80f35b503d8083833e6116b28183613620565b810190602081830312610270578051906001600160401b0382116107ff57019080601f83011215610270578151906116e982613641565b926116f76040519485613620565b82845260208085019360051b82010191821161174957602001915b8183106117255750505061169f90611694565b82516001600160a01b038116810361174557815260209283019201611712565b8580fd5b8480fd5b50346107dc57806003193601126107dc57601b5461176a81613641565b906117786040519283613620565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106117bb5760405180610b28878261353b565b6040516117c7816135ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061185c578460019794600297946020979461184a9454918181106114e6578181106114ca578181106114ae57818110611492578181106114765781811061145a57818110611440571061142c57500382613620565b838201528152019201920191906117a6565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117ef565b50346107dc5760403660031901126107dc57600435602435801515810361027057156127d25760015b60606040516119338282613620565b60028152601f19820180916020369101376040516119518382613620565b6002815260203691013760028210156127be576001821490811561230657601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f526044820152869182908290606490829060081c6001600160a01b03165afa8015610274576119e89183916122e4575b50613679565b5185105f5160206160995f395f51905f523b1561027f5760405190632631f2b160e11b8252600482015281816024815f5160206160995f395f51905f525afa8015610274576122cf575b5050611a44611a3f61369d565b613679565b516073810290808204607314901517156122bb5785905f5160206160995f395f51905f523b1561027f57604051632631f2b160e11b815260649091048611600482015281816024815f5160206160995f395f51905f525afa8015610274576122a6575b508060405160208101906370a0823160e01b825230602482015260248152611ad0604482613620565b51905f5160206161195f395f51905f525afa50611aee61031d613be8565b50611af76137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612292576001810180600e5581101561227e57600e8652305f5160206160d95f395f51905f529190910155601154600f5460105487926001600160a01b03169160e01b611b60613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190611ba4816103e2888886613ca4565b519020865260205260ff60036040872001541615612270575b6001600160a01b0384165f908152600d602052604090209085526020526103e2611bf66040862093604051928391602083019586613ca4565b519020835260205260408220600181015493600282015490611c188287613bdb565b61212c57508154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206160995f395f51905f525afa9687156106d85786976120f3575b506001908201610100031b5f1901811b1986165f5160206160995f395f51905f523b15611745576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206160995f395f51905f525af1908115611eed5784916120de575b5050611cee613e77565b90159081156120d2575b506106ff5750505050611d09614968565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b031660048201525f196024820152602081604481885f5160206161195f395f51905f525af1801561069f576120b3575b505b6040516370a0823160e01b8152306004820152926020846024815f5160206161195f395f51905f525afa93841561069f57859461207f575b506040516370a0823160e01b8152306004820152916020836024815f5160206160b95f395f51905f525afa9283156106d8578693612048575b50608082611dfd9560018060a01b03601e5460081c169089604051809981958294638307c65560e01b8452600484016139d2565b03925af19384156106d8578694612027575b508351611e1a578580f35b15611f2c576040516370a0823160e01b81523060048201526020816024815f5160206160b95f395f51905f525afa9081156106d8578691611ef8575b50611e6a92611e6491613a39565b90613b3d565b516040516370a0823160e01b81523060048201526020816024815f5160206161195f395f51905f525afa908115611eed578491611eb9575b50611e6490611eb093613a39565b5f808080808580f35b90506020813d602011611ee5575b81611ed460209383613620565b810103126108375751611eb0611ea2565b3d9150611ec7565b6040513d86823e3d90fd5b90506020813d602011611f24575b81611f1360209383613620565b810103126108375751611e6a611e56565b3d9150611f06565b6040516370a0823160e01b81523060048201529193916020816024815f5160206161195f395f51905f525afa9081156106d8578691611ff3575b50611e6490611f7493613a39565b516040516370a0823160e01b81523060048201526020816024815f5160206160b95f395f51905f525afa908115611eed578491611fbf575b50611fba92611e6491613a39565b611eb0565b90506020813d602011611feb575b81611fda60209383613620565b810103126108375751611fba611fac565b3d9150611fcd565b90506020813d60201161201f575b8161200e60209383613620565b810103126108375751611f74611f66565b3d9150612001565b61204191945060803d6080116106d1576106c38183613620565b925f611e0f565b9392506020843d602011612077575b8161206460209383613620565b8101031261083757925191926080611dc9565b3d9150612057565b9093506020813d6020116120ab575b8161209b60209383613620565b810103126108375751925f611d90565b3d915061208e565b6120cb9060203d602011610698576106898183613620565b505f611d56565b5f19141590505f611cf8565b816120e891613620565b61027057825f611ce4565b955095506020853d602011612124575b8161211060209383613620565b810103126108375793519489949081611c6a565b3d9150612103565b612137859287613bdb565b61010003610100811161225c5760ff811161225c5760405163348051d760e11b8152600190911b600482015282816024815f5160206160995f395f51905f525afa9081156122515769030ba32b9103a3430b7160b51b9284602061221794606a946109749891612237575b506040519687947f73746453746f726167652066696e642853746453746f72616765293a20506163848701527f6b656420736c6f742e2057652063616e2774206669742076616c75652067726560408701528501528051918291018585015e820190838201520301601f198101835282613620565b60405162461bcd60e51b81526020600482015291829160248301906134bf565b61224b91503d8085833e61098d8183613620565b886121a2565b6040513d85823e3d90fd5b634e487b7160e01b83526011600452602483fd5b612278614093565b50611bbd565b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b816122b091613620565b61174957845f611aa7565b634e487b7160e01b86526011600452602486fd5b816122d991613620565b61174957845f611a32565b61230091503d8085833e6122f88183613620565b810190613814565b5f6119e2565b601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f526044820152869182908290606490829060081c6001600160a01b03165afa80156102745761237f9183916127a4575b50613658565b5185105f5160206160995f395f51905f523b1561027f5760405190632631f2b160e11b8252600482015281816024815f5160206160995f395f51905f525afa80156102745761278f575b50506123db6123d661369d565b613658565b516073810290808204607314901517156122bb5785905f5160206160995f395f51905f523b1561027f57604051632631f2b160e11b815260649091048611600482015281816024815f5160206160995f395f51905f525afa80156102745761277a575b508060405160208101906370a0823160e01b825230602482015260248152612467604482613620565b51905f5160206161195f395f51905f525afa5061248561031d613be8565b5061248e6137f3565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015612292576001810180600e5581101561227e57600e8652305f5160206160d95f395f51905f529190910155601154600f5460105487926001600160a01b03169160e01b6124f7613cbb565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061253b816103e2888886613ca4565b519020865260205260ff6003604087200154161561276c575b6001600160a01b0384165f908152600d602052604090209085526020526103e261258d6040862093604051928391602083019586613ca4565b5190208352602052604082206001810154936002820154906125af8287613bdb565b61212c57508154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f5160206160995f395f51905f525afa9687156106d8578697612733575b506001908201610100031b5f1901811b1986165f5160206160995f395f51905f523b15611745576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f5160206160995f395f51905f525af1908115611eed57849161271e575b5050612685613e77565b9015908115612712575b506106ff57505050506126a0614968565b601e5460405163095ea7b360e01b815260089190911c6001600160a01b0316600482015260248101849052602081604481885f5160206161195f395f51905f525af1801561069f576126f3575b50611d58565b61270b9060203d602011610698576106898183613620565b505f6126ed565b5f19141590505f61268f565b8161272891613620565b61027057825f61267b565b955095506020853d602011612764575b8161275060209383613620565b810103126108375793519489949081612601565b3d9150612743565b612774614093565b50612554565b8161278491613620565b61174957845f61243e565b8161279991613620565b61174957845f6123c9565b6127b891503d8085833e6122f88183613620565b5f612379565b634e487b7160e01b84526021600452602484fd5b81611924565b50346107dc57806003193601126107dc5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061283757610b2885610b1c81870382613620565b82546001600160a01b0316845260209093019260019283019201612820565b50346107dc57806003193601126107dc5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106128b557610b2885610b1c81870382613620565b82546001600160a01b031684526020909301926001928301920161289e565b50346107dc5760403660031901126107dc576004359060243560018060a01b03601e5460081c169060405163549387df60e11b81527317f0b6e8c5dd13722bdbee90406ab3a18958135160611b60048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f5260448201528381606481865afa908115611eed578491612bc0575b5061296c81613658565b5185105f5160206160995f395f51905f523b156117495760405190632631f2b160e11b8252600482015284816024815f5160206160995f395f51905f525afa801561069f57908591612bab575b50506129c490613679565b5181105f5160206160995f395f51905f523b156107ff5760405190632631f2b160e11b8252600482015283816024815f5160206160995f395f51905f525afa8015611eed57612b96575b50928291612aa39460405192612a25606085613620565b600284526040366020860137612a3a84613658565b52612a4483613679565b5260405163155adc9160e31b81525f5160206160f95f395f51905f5260048201525f5160206160b95f395f51905f5260248201525f5160206161195f395f51905f5260448201526080606482015294859283918291608483019061344a565b03915afa91821561099c578192612af9575b50805b8251811015612af55780612ad8612ad160019386613689565b5151613b8c565b612aef6020612ae78387613689565b510151613b8c565b01612ab8565b5080f35b9091503d8083833e612b0b8183613620565b810190602081830312610270578051906001600160401b0382116107ff570181601f82011215610270578051612b4081613641565b92612b4e6040519485613620565b81845260208085019260061b8401019281841161174557602001915b838310612b7c5750505050905f612ab5565b6020604091612b8b8486613946565b815201920191612b6a565b612ba1848092613620565b610270575f612a0e565b81612bb591613620565b6107ff57835f6129b9565b612bd491503d8086833e6122f88183613620565b5f612962565b50346107dc57806003193601126107dc57601d54612bf781613641565b612c046040519182613620565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b838310612cb857868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210612c7157505050500390f35b91936001919395506020612ca88192603f198a82030186526040838a51878060a01b038151168452015191818582015201906134e3565b9601920192018594939192612c62565b604051612cc4816135ea565b82546001600160a01b03168152600183018054612ce081613641565b91612cee6040519384613620565b8183528a526020808b20908b9084015b838210612d24575050505060019282602092836002950152815201920192019190612c34565b600160208192604051612d3b81610bfc818a6138c5565b815201930191019091612cfe565b50346107dc57806003193601126107dc57601e5460405163549387df60e11b81525f5160206160f95f395f51905f5260048201525f5160206161195f395f51905f5260248201525f5160206160b95f395f51905f5260448201529082908290606490829060081c6001600160a01b03165afa80156102745761169f918391612dd3575b5051613ae1565b612de791503d8085833e6122f88183613620565b5f612dcc565b50346107dc5760603660031901126107dc5780612e08613434565b6044356001600160a01b03811690819003612f7e57601e546040516348bd7dfd60e01b815260048035908201526001600160a01b0393841660248201526044810192909252909183918391606491839160089190911c165afa908115610274578291612ed5575b50515f5160206160995f395f51905f523b15612ed2576040519063260a5b1560e21b825260048201526004602482015281816044815f5160206160995f395f51905f525afa801561027457612ec15750f35b81612ecb91613620565b6107dc5780f35b50fd5b9150503d8083833e612ee78183613620565b810190602081830312610270578051906001600160401b0382116107ff57019080601f8301121561027057815190612f1e82613641565b92612f2c6040519485613620565b82845260208085019360051b820101918211611749579060208594939201915b818310612f5c575050505f612e6f565b90918093945051600a8110156117455781528493926020908101929101612f4c565b5050fd5b50346107dc57806003193601126107dc5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110612fe157610b2885610b1c81870382613620565b82546001600160a01b0316845260209093019260019283019201612fca565b5034610837575f3660031901126108375760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f5160206160995f395f51905f525afa9081156132d557613089916020915f91613323575b50604051809381926371ee464d60e01b83526040600484015260448301906134bf565b63011f676d602483015203815f5f5160206160995f395f51905f525af180156132d5576132f4575b5060405161148e808201908282106001600160401b038311176132e0576020918391614c0b833973d17b3c9784510e33cd5b87b490e79253bcd81e2e81520301905ff080156132d557601e8054610100600160a81b03191660089290921b610100600160a81b0316919091179055601f80546001600160a01b03191673d17b3c9784510e33cd5b87b490e79253bcd81e2e1790555f5160206160995f395f51905f523b15610837576040516318caf8e360e31b81525f5160206160b95f395f51905f5260048201526040602482015260046044820152630ae8aa8960e31b60648201525f81608481835f5160206160995f395f51905f525af180156132d5576132c2575b505f5160206160995f395f51905f523b156107dc57806040516318caf8e360e31b81525f5160206161195f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f5160206160995f395f51905f525af18015610274576132ad575b50505f5160206160995f395f51905f523b156107dc57806040516318caf8e360e31b8152732fe16dd18bba26e457b7dd2080d5674312b026a2600482015260406024820152600e60448201526d2aa9a221afaba2aa242fa820a4a960911b60648201528181608481835f5160206160995f395f51905f525af1801561027457612ec15750f35b816132b791613620565b6107dc57805f613227565b6132ce91505f90613620565b5f5f6131b5565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161331b575b8161330d60209383613620565b8101031261083757516130b1565b3d9150613300565b61333791503d805f833e61098d8183613620565b5f613066565b34610837576040366003190112610837576004356001600160a01b038116908190036108375760c061336d613434565b601f5460405163abc27eed60e01b815260048101949094526001600160a01b03918216602485015283916044918391165afa80156132d5575f905f906133f6575b610b289250604051916133c2606084613620565b6002835260403660208501376133d783613658565b526133e182613679565b5260405191829160208352602083019061344a565b505060c0813d60c01161342c575b8161341160c09383613620565b81010312610837578060806040610b289301519101516133ae565b3d9150613404565b602435906001600160a01b038216820361083757565b90602080835192838152019201905f5b8181106134675750505090565b825184526020938401939092019160010161345a565b60206040818301928281528451809452019201905f5b8181106134a05750505090565b82516001600160a01b0316845260209384019390920191600101613493565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9080602083519182815201916020808360051b8301019401925f915b83831061350e57505050505090565b909192939460208061352c600193601f1986820301875289516134bf565b970193019301919392906134ff565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061356d57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106135c7575050506020806001929701930193019193929061355e565b82516001600160e01b0319168452602093840193909201916001909101906135a8565b604081019081106001600160401b038211176132e057604052565b606081019081106001600160401b038211176132e057604052565b90601f801991011681019081106001600160401b038211176132e057604052565b6001600160401b0381116132e05760051b60200190565b8051156136655760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156136655760400190565b80518210156136655760209160051b010190565b601f5460405163abc27eed60e01b81525f5160206161195f395f51905f5260048201525f5160206160b95f395f51905f526024820152919060c090839060449082906001600160a01b03165afa80156132d5575f925f9161372b575b5061372860405161370b606082613620565b600281526040366020830137809461372282613658565b52613679565b52565b92505060c0823d60c01161375f575b8161374760c09383613620565b8101031261083757608060408301519201515f6136f9565b3d915061373a565b6001600160401b0381116132e057601f01601f191660200190565b602081830312610837578051906001600160401b038211610837570181601f82011215610837578051906137b582613767565b926137c36040519485613620565b8284526020838301011161083757815f9260208093018386015e8301015290565b90816020910312610837575190565b601180546001600160a01b0319165f5160206161195f395f51905f52179055565b602081830312610837578051906001600160401b03821161083757019080601f8301121561083757815161384781613641565b926138556040519485613620565b81845260208085019260051b82010192831161083757602001905b82821061387d5750505090565b8151815260209182019101613870565b90600182811c921680156138bb575b60208310146138a757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161389c565b5f92918154916138d48361388d565b808352926001811690811561392957506001146138f057505050565b5f9081526020812093945091925b83831061390f575060209250010190565b6001816020929493945483858701015201910191906138fe565b915050602093945060ff929192191683830152151560051b010190565b91908260409103126108375760405161395e816135ea565b6020808294805184520151910152565b81810292918115918404141715610a8657565b90816020910312610837575180151581036108375790565b90608082820312610837576139ca9060408051936139b685613605565b805185526020810151602086015201613946565b604082015290565b5f5160206160f95f395f51905f5281525f5160206161195f395f51905f5260208201525f5160206160b95f395f51905f52604082015260a08101939291906002821015613a255760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b91908203918211610a8657565b60085460ff168015613a555790565b50604051630667f9d760e41b81525f5160206160995f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f5160206160995f395f51905f525afa9081156132d5575f91613aaf575b50151590565b90506020813d602011613ad9575b81613aca60209383613620565b8101031261083757515f613aa9565b3d9150613abd565b5f5160206160995f395f51905f523b15610837576040519063260a5b1560e21b82526004820152600260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b5f613b3b91613620565b565b905f5160206160995f395f51905f523b15610837576040519163260a5b1560e21b8352600483015260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b5f5160206160995f395f51905f523b156108375760405190636d83fe6960e11b825260048201525f60248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b91908201809211610a8657565b3d15613c12573d90613bf982613767565b91613c076040519384613620565b82523d5f602084013e565b606090565b905f5160206160995f395f51905f523b156108375760405191638466f41560e01b8352600483015260248201525f816044815f5160206160995f395f51905f525afa80156132d557613b315750565b613c86906020613c7b8251828601519061396e565b93519101519061396e565b90808203613c945750505f90565b1115613c9f57600190565b5f1990565b60209291908391805192839101825e019081520190565b613cc660145461388d565b613d83576040519081826020600e549283815201600e5f5260205f20925f5b818110613d6a575050613cfa92500383613620565b81518060051b9080820460201490151715610a8657613d1881613767565b90613d266040519283613620565b808252613d35601f1991613767565b013660208301375f5b8351811015613d655780613d5460019286613689565b5160208260051b8501015201613d3e565b509150565b8454835260019485019487945060209093019201613ce5565b604051613d9581610bfc8160146138c5565b90565b6007810190613da7825461388d565b613e6357600191500190604051808360208295549384815201905f5260205f20925f5b818110613e4a575050613ddf92500383613620565b81518060051b9080820460201490151715610a8657613dfd81613767565b90613e0b6040519283613620565b808252613e1a601f1991613767565b013660208301375f5b8351811015613d655780613e3960019286613689565b5160208260051b8501015201613e23565b8454835260019485019487945060209093019201613dca565b50613d95610bfc91604051928380926138c5565b5f806020600f5460e01b613ec56024613e90600d613d98565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283613620565b6011549151916001600160a01b03165afa90613edf613be8565b601054909290600581901b906001600160fb1b03811603610a86575f938051602081115f14613f6a57506020905b5f925b828410613f1f57505050509190565b90919295613f2d8783613bdb565b835181101561366557830160200151600388901b91906001600160f81b031916881560088a8504141715610a86576001921c179601929190613f10565b90613f0d565b905f806020600285015460e01b613f8b6024613e9088613d98565b60048601549151916001600160a01b03165afa6003613fa8613be8565b930154600581901b906001600160fb1b03811603610a86575f938051602081115f1461403057506020905b5f925b828410613fe557505050509190565b90919295613ff38783613bdb565b835181101561366557830160200151600388901b91906001600160f81b031916881560088a8504141715610a86576001921c179601929190613fd6565b90613fd3565b9080601f8301121561083757815161404d81613641565b9261405b6040519485613620565b81845260208085019260051b82010192831161083757602001905b8282106140835750505090565b8151815260209182019101614076565b601154600f546010546001600160a01b03909216915f9160e01b6140b7600d613d98565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906140f0816103e2888886613ca4565b5190205f5260205260ff600360405f20015416614927575f5160206160995f395f51905f523b156108375760405163266cf10960e01b81525f81600481835f5160206160995f395f51905f525af180156132d557614912575b50614154600d613f70565b90506040516365bc948160e01b81528660048201528581602481835f5160206160995f395f51905f525af19081156106d85786916148aa575b5080516141fe57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b81518110156148a2578160206142198361424a95613689565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f5160206160995f395f51905f525afa928315614897578893614864575b50821561480c575b61427c8282613689565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f5160206160995f395f51905f525afa908115614801578b916147d0575b506142d7600d613f70565b91909382155f146147c9575f19905b5f5160206160995f395f51905f523b156147b0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f5160206160995f395f51905f525af1801561472a57908d916147b4575b5050614357600d613f70565b601154909491506001600160a01b03165f5160206160995f395f51905f523b156147b0576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f5160206160995f395f51905f525af180156147a557908c9161478c575b505082614781575b505015614777578793889360ff601354166145f1575b6001868601610100031b5f1901851b16841c81036145e3575090614471917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896103e26144468d604051928391602083019586613ca4565b5190206144538686613689565b51906040519283528a602084015260408301526060820152a1613689565b51906040519060808201928284106001600160401b038511176132e05760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906144da816103e28d8d86613ca4565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190614535816103e2888886613ca4565b519020855260205260ff60036040862001541615614586576040948452600d6020528484209084526020526103e261457a858520938651928391602083019586613ca4565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01614200565b945061463c93506146028383613689565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f5160206160995f395f51905f525afa94851561476c578a95614739575b5061466886600d614a6e565b95909661467681600d614b47565b60115490939192906001600160a01b03165f5160206160995f395f51905f523b15614735576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f5160206160995f395f51905f525af1801561472a57908d91614711575b505087614709575b5094956143eb5750935091506001906145eb565b96505f6146f5565b8161471b91613620565b614726578b5f6146ed565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211614764575b8161475460209383613620565b810103126108375751935f61465c565b3d9150614747565b6040513d8c823e3d90fd5b91506001906145eb565b141590505f806143d5565b8161479691613620565b6147a1578a5f6143cd565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816147be91613620565b614726578b5f61434b565b8c906142e6565b90506020813d82116147f9575b816147ea60209383613620565b8101031261083757515f6142cc565b3d91506147dd565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a561485c61483a8484613689565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1614272565b9092506020813d821161488f575b8161487f60209383613620565b810103126108375751915f61426a565b3d9150614872565b6040513d8a823e3d90fd5b505050614508565b90503d8087833e6148bb8183613620565b81016040828203126108035781516001600160401b03811161490e57816148e3918401614036565b916020810151906001600160401b03821161490a57614903929101614036565b505f61418d565b8880fd5b8780fd5b61491f9194505f90613620565b5f925f614149565b91939092505f52600d60205260405f20905f526020526103e261495960405f2093604051928391602083019586613ca4565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580614a3f575b505f60105560ff19601354166013556149b360145461388d565b806149bb5750565b601f81116001146149cd57505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110614a3457505060145f525f602081208160145555565b5f8155600101614a1b565b600e5f525f5160206160d95f395f51905f52908101905b818110614a635750614999565b5f8155600101614a56565b91905f5b6101008110614a8557505090505f905f90565b8060ff0360ff8111610a86576004850154600190911b906001600160a01b03165f5160206160995f395f51905f523b15610837576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206160995f395f51905f525af180156132d557614b37575b50614b1184613f70565b81614b2d575b50614b2457600101614a72565b92505060019190565b905015155f614b17565b5f614b4191613620565b5f614b07565b91905f5b6101008110614b5e57505090505f905f90565b60048401546001821b906001600160a01b03165f5160206160995f395f51905f523b15610837576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f5160206160995f395f51905f525af180156132d557614bfa575b50614bdd84613f70565b81614bf0575b50614b2457600101614b4b565b905015155f614be3565b5f614c0491613620565b5f614bd356fe60a03461008857601f61148e38819003918201601f19168301916001600160401b0383118484101761008c5780849260209460405283398101031261008857516001600160a01b03811690819003610088576080526040516113ed90816100a1823960805181818161036a015281816105b9015281816109f901528181610bd10152610e230152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146105905750806348bd7dfd146104b95780638307c65514610456578063a9270fbe14610322578063aad6e488146101b15763ecbbc0331461005e575f80fd5b346101ad5760203660031901126101ad5760405161007d60608261089f565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610185576004926020925f91610190575b506100c486610926565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610185575f91610156575b506100ff839293610933565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610134575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610126565b610178915060203d60201161017e575b610170818361089f565b8101906108d9565b5f6100f3565b503d610166565b6040513d5f823e3d90fd5b6101a79150833d851161017e57610170818361089f565b5f6100ba565b5f80fd5b346101ad5760803660031901126101ad576101ca6107ed565b6101d2610803565b6064359067ffffffffffffffff82116101ad57366023830112156101ad578160040135916101ff836108c1565b9261020d604051948561089f565b8084526024602085019160051b830101913683116101ad57602401905b82821061031257505050815192610240846108c1565b9361024e604051958661089f565b80855261025d601f19916108c1565b015f5b8181106102ef5750509061027391610def565b5f5b825181101561029e57808261028c60019387610943565b526102978186610943565b5001610275565b836040518091602082016020835281518091526020604084019201905f5b8181106102ca575050500390f35b82518051855260209081015181860152869550604090940193909201916001016102bc565b6020906040516102fe81610853565b5f81525f8382015282828901015201610260565b813581526020918201910161022a565b346101ad5761036660c061033536610819565b60405163abc27eed60e01b81526001600160a01b039283166004820152911660248201529283915081906044820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f905f92610419575b5090604051906103b560608361089f565b60028252602082019260403685376103cc83610926565b526103d682610933565b52604051918291602083019060208452518091526040830191905f5b818110610400575050500390f35b82518452859450602093840193909201916001016103f2565b91505060c0813d60c01161044e575b8161043560c0938361089f565b810103126101ad5760a0606082015191015190826103a4565b3d9150610428565b346101ad5760a03660031901126101ad5761046f6107ed565b610477610803565b6064359160028310156101ad57608092610494926084359261096f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101ad576104c736610819565b5050506040516104d860a08261089f565b6004815260208101608036823760016104f083610926565b5260026104fc83610933565b5281516002101561057c576003606083015281516003101561057c5760056080830152604051906020820192602083525180935260408201905f935b8085106105455783830384f35b9091825190600a8210156105685760208160019382935201930194019390610538565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101ad5760403660031901126101ad5763c45a015560e01b81526004803591906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610185575f916107ce575b506001600160a01b031690610608602435826108f8565b60405163574f2ba360e01b8152602081600481875afa80156101855783915f91610799575b508211610735575b61063e91610919565b61066061064a826108c1565b91610658604051938461089f565b8083526108c1565b602082019290601f19013684375f5b82518110156106f15761068281836108f8565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610185576001925f916106d3575b5060601b6bffffffffffffffffffffffff19166106cc8286610943565b520161066f565b6106eb915060203d811161017e57610170818361089f565b876106af565b8383604051918291602083019060208452518091526040830191905f5b81811061071c575050500390f35b825184528594506020938401939092019160010161070e565b505060405163574f2ba360e01b8152602081600481865afa80156101855782905f90610763575b9150610635565b50506020813d602011610791575b8161077e6020938361089f565b810103126101ad578161063e915161075c565b3d9150610771565b9150506020813d6020116107c6575b816107b56020938361089f565b810103126101ad578290518561062d565b3d91506107a8565b6107e7915060203d60201161017e57610170818361089f565b826105f1565b602435906001600160a01b03821682036101ad57565b604435906001600160a01b03821682036101ad57565b60609060031901126101ad57600435906024356001600160a01b03811681036101ad57906044356001600160a01b03811681036101ad5790565b6040810190811067ffffffffffffffff82111761086f57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff82111761086f57604052565b90601f8019910116810190811067ffffffffffffffff82111761086f57604052565b67ffffffffffffffff811161086f5760051b60200190565b908160209103126101ad57516001600160a01b03811681036101ad5790565b9190820180921161090557565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161090557565b80511561057c5760200190565b80516001101561057c5760400190565b805182101561057c5760209160051b010190565b6040519061096482610853565b5f6020838281520152565b6040519493926060860167ffffffffffffffff81118782101761086f576040525f86525f60208701526040516109a481610853565b5f81525f60208201526040870152858415610d6457505a90600281101561056857610ba157604051634cc0eb1960e11b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610b6d575b508515610b32576001600160a01b03841690610a51813033856110fc565b610a5c818484611147565b6103e842018042116109055760209263ffffffff60e492610acd9460405193610a8485610883565b845260018060a01b038b168785015260408401528a60608401525f60808401523360a08401521660c08201525f60405195869485936358d30ac960e01b85526004850190610d6c565b5af1801561018557610afe575b50610aed90610af79487525b5a90610919565b6020860152610def565b6040830152565b906020823d602011610b2a575b81610b186020938361089f565b810103126101ad579050610aed610ada565b3d9150610b0b565b60405163643c60f360e01b8152602060048201526012602482015271416d6f756e744f7574206973207a65726f2160701b6044820152606490fd5b9095506020813d602011610b99575b81610b896020938361089f565b810103126101ad5751945f610a33565b3d9150610b7c565b6040516334259b1b60e01b81526001600160a01b03838116600483015284811660248301526044820186905290947f000000000000000000000000000000000000000000000000000000000000000090911690602086606481855afa958615610185575f96610d30575b508515610cf6576001600160a01b03841690610c29873033856110fc565b610c34878484611147565b6103e842018042116109055760209263ffffffff60e492610ca59460405193610c5c85610883565b845260018060a01b038b16878501528b604085015260608401525f60808401523360a08401521660c08201525f60405195869485936316c0a75160e11b85526004850190610d6c565b5af1801561018557610cc2575b50610aed90610af7948752610ae6565b906020823d602011610cee575b81610cdc6020938361089f565b810103126101ad579050610aed610cb2565b3d9150610ccf565b60405163643c60f360e01b8152602060048201526011602482015270416d6f756e74496e206973207a65726f2160781b6044820152606490fd5b9095506020813d602011610d5c575b81610d4c6020938361089f565b810103126101ad5751945f610c0b565b3d9150610d3f565b955050505050565b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260808083015115159084015260a0808301519091169083015260c09081015163ffffffff16910152565b908160209103126101ad575160ff811681036101ad5790565b60ff16604d811161090557600a0a90565b90610df8610957565b50604051637516644b60e11b81526001600160a01b03838116600483015282811660248301529092907f000000000000000000000000000000000000000000000000000000000000000016602084604481845afa938415610185575f946110c8575b5060405163c45a015560e01b8152602081600481855afa908115610185575f916110a9575b5060405163e6a4390560e01b81526001600160a01b0384811660048301528581166024830152909160209183916044918391165afa8015610185576020915f9161108c575b50604051635357407160e11b81526001600160a01b03909116600482015291829060249082905afa908115610185575f9161105a575b50670de0b6b3a76400000390670de0b6b3a764000082116109055760405163313ce56760e01b815290602090829060049082906001600160a01b03165afa801561018557610f546020916004935f91611043575b50610dde565b60405163313ce56760e01b815290949092839182906001600160a01b03165afa801561018557610f8a915f916110145750610dde565b91670de0b6b3a7640000840293808504670de0b6b3a764000014901517156109055780670de0b6b3a76400000290670de0b6b3a764000082048103610905578202670de0b6b3a7640000029181159183041417156109055781156110005760405192610ff584610853565b835204602082015290565b634e487b7160e01b5f52601260045260245ffd5b611036915060203d60201161103c575b61102e818361089f565b810190610dc5565b5f610f4e565b503d611024565b6110369150833d851161103c5761102e818361089f565b90506020813d602011611084575b816110756020938361089f565b810103126101ad57515f610efa565b3d9150611068565b6110a39150823d841161017e57610170818361089f565b5f610ec4565b6110c2915060203d60201161017e57610170818361089f565b5f610e7f565b9093506020813d6020116110f4575b816110e46020938361089f565b810103126101ad5751925f610e5a565b3d91506110d7565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526111459161114060848361089f565b6112af565b565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152821693602082604481885afa8015610185575f90611263575b61118d92506108f8565b925f8060405194602086019063095ea7b360e01b825260018060a01b0316968760248801526044870152604486526111c660648761089f565b85519082855af1906111d661131a565b82611231575b5081611226575b50156111ee57505050565b611140611145936040519063095ea7b360e01b602083015260248201525f60448201526044815261122060648261089f565b826112af565b90503b15155f6111e3565b80519192508115918215611249575b5050905f6111dc565b61125c9250602080918301019101611297565b5f80611240565b506020823d60201161128f575b8161127d6020938361089f565b810103126101ad5761118d9151611183565b3d9150611270565b908160209103126101ad575180151581036101ad5790565b5f806112d79260018060a01b03169360208151910182865af16112d061131a565b9083611359565b80519081151591826112ff575b50506112ed5750565b635274afe760e01b5f5260045260245ffd5b6113129250602080918301019101611297565b155f806112e4565b3d15611354573d9067ffffffffffffffff821161086f5760405191611349601f8201601f19166020018461089f565b82523d5f602084013e565b606090565b9061137d575080511561136e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806113ae575b61138e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561138656fea2646970667358221220b526040f16c74de5eea30b9fb08eebd9f9f9fb64cd3f9acd318a3c89d26ae38064736f6c634300081b00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2bb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd2fe16dd18bba26e457b7dd2080d5674312b026a2000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a264697066735822122072b110b0993eda90a80886c68f0819d7ad7fea0c5c7db46eb721f7aadb24627c64736f6c634300081b0033","sourceMap":"302:6332:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4668:8;302:6332;;;;:::i;:::-;809:3;302:6332;;-1:-1:-1;;302:6332:74;;;;;;;;;4754:28;;;;:::i;:::-;302:6332;;;;4428:13;4812:19;809:3;4812:19;;;;302:6332;;;;;;;;;:::i;:::-;809:3;302:6332;;809:3;;;;;;;5000:13;;4428;5015:19;809:3;5015:19;;;;5335:13;;4428;5350:23;302:6332;5350:23;;;;302:6332;;;5375:3;5403:9;;;;:::i;:::-;;302:6332;4428:13;809:3;;;;;;;;5431:13;:30;5549:53;5431:13;;;;;;:::i;:::-;;302:6332;5431:30;;:::i;:::-;5504:21;302:6332;5485:9;;;;:::i;:::-;;:17;302:6332;;5504:13;;;;:::i;:::-;;:21;302:6332;5504:21;;:::i;:::-;302:6332;5582:13;5549:9;;;;;:::i;:::-;;:15;;809:3;5582:13;;:::i;:::-;;:19;;5549:53;;:::i;:::-;809:3;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;302:6332:74;;;;;;2943:24:1;;302:6332:74;2943:24:1;;302:6332:74;;27501:38:3;302:6332:74;;;2943:24:1;;27501:38:3;2943:24:1;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;5375:3:74;;;4428:13;302:6332;5335:13;;2943:24:1;;;;;:::i;:::-;302:6332:74;;2943:24:1;;;;302:6332:74;;;;2943:24:1;302:6332:74;;;;;;;;;2943:24:1;302:6332:74;;;809:3;-1:-1:-1;;;302:6332:74;;6854:12:8;302:6332:74;;27501:38:3;302:6332:74;;5036:3;302:6332;;-1:-1:-1;;;5068:13:74;;302:6332;;;;;5068:13;-1:-1:-1;;;;;;;;;;;5068:13:74;;;;;;;;;;;5036:3;5122:10;;;;;:::i;:::-;302:6332;;;;;;27501:38:3;;302:6332:74;;;;27501:38:3;;5115:4:74;27501:38:3;;;302:6332:74;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;302:6332:74;;;;27568:30:3;;;;;;:::i;:::-;;6854:22:8;;:::i;:::-;27524:10:3;302:6332:74;;7009:9:8;302:6332:74;;;7009:9:8;302:6332:74;7505:10:8;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;4428:13;302:6332;;;7505:10:8;302:6332:74;;;;;;7505:10:8;302:6332:74;;5115:4;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;6854:12:8;302:6332:74;7009:9:8;302:6332:74;15610:11:8;302:6332:74;;;-1:-1:-1;;;;;302:6332:74;;;;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;15703:15:8;;302:6332:74;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;;302:6332:74;;15735:37:8;;;;;;:::i;:::-;302:6332:74;15725:48:8;;302:6332:74;;;;;15610:11:8;302:6332:74;;;15703:77:8;302:6332:74;;15702:78:8;15698:126;;5036:3:74;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;;;;;;15889:37:8;;302:6332:74;;;;;;15889:37:8;;;302:6332:74;15889:37:8;;;;;:::i;:::-;302:6332:74;15879:48:8;;302:6332:74;;;;;;;4428:13;15943:15:8;;302:6332:74;15961:16:8;302:6332:74;15961:16:8;;302:6332:74;15943:34:8;;;;:::i;:::-;15938:460;;5036:3:74;302:6332;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;302:6332:74;;;16424:32:8;;302:6332:74;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5036:3:74;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;302:6332:74;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;302:6332:74;;;16587:43:8;;302:6332:74;12810:59:8;;;302:6332:74;;;;;;;;12656:92:8;;;;12810:59;;;302:6332:74;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5036:3:74;16678:31:8;;;;:::i;:::-;16724:8;;;302:6332:74;;;16724:29:8;;5036:3:74;16720:176:8;;;;14785:4;;;;;;:::i;:::-;5176:7:74;302:6332;5147:50;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;5186:10;;;;:::i;:::-;302:6332;;;-1:-1:-1;;;5147:50:74;;-1:-1:-1;;;;;302:6332:74;;;;5147:50;;302:6332;;;;;;;;;;;;;;;5147:50;;;;-1:-1:-1;;;;;;;;;;;5147:50:74;;;;;;;;5036:3;-1:-1:-1;5176:7:74;302:6332;;;5224:48;;;;302:6332;;-1:-1:-1;;;;;302:6332:74;5261:10;;;;:::i;:::-;302:6332;;;;;;;;;;;;5224:48;;4428:13;302:6332;5224:48;;;:::i;:::-;;;;;;;;;;;;;;5036:3;5212:60;;;;;:::i;:::-;;;;;;:::i;:::-;;302:6332;;;;;;5286:23;;302:6332;5286:23;;302:6332;;5286:23;27501:38:3;5286:23:74;;-1:-1:-1;;;;;;;;;;;5286:23:74;;;;;;;4428:13;5286:23;;;5036:3;;302:6332;5000:13;;5286:23;;;302:6332;5286:23;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;302:6332;;;;;;;;;5224:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;302:6332;;;;;;;;;5147:50;;;302:6332;5147:50;;;;;;;;;:::i;:::-;;;16720:176:8;302:6332:74;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;302:6332:74;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;302:6332:74;;;;;16769:41:8;;302:6332:74;12810:59:8;;;302:6332:74;;;;12810:59:8;;;302:6332:74;;;;;12810:59:8;302:6332:74;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;302:6332:74;;-1:-1:-1;;;16824:61:8;;302:6332:74;;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;302:6332:74;12810:59:8;27501:38:3;302:6332:74;;12810:59:8;-1:-1:-1;;;809:3:74;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;302:6332:74;;16769:41:8;;;302:6332:74;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;302:6332:74;;16587:43:8;;;;302:6332:74;;;;16587:43:8;302:6332:74;;;16424:32:8;;;;;302:6332:74;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;;;;;;;16424:32:8;;1590:14:0;-1:-1:-1;302:6332:74;;16424:32:8;;;-1:-1:-1;16424:32:8;;;302:6332:74;;;;;;;;;15938:460:8;16028:34;;;;;;;;;:::i;:::-;16021:3;302:6332:74;16021:3:8;302:6332:74;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;4428:13:74;302:6332;;;;16314:19:8;;302:6332:74;;;16314:19:8;;302:6332:74;27501:38:3;302:6332:74;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;302:6332:74;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;302:6332:74;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;302:6332:74;12810:59:8;;;-1:-1:-1;;;302:6332:74;12810:59:8;;;302:6332:74;;;;;;12810:59:8;;;302:6332:74;;;;;;;;16170:185:8;;302:6332:74;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;12810:59;302:6332:74;;-1:-1:-1;;;12810:59:8;;302:6332:74;;12810:59:8;;;302:6332:74;;;12810:59:8;;27501:38:3;12810:59:8;;;;:::i;:::-;;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;302:6332:74;;;;;;;;;;;;-1:-1:-1;;;302:6332:74;;6854:12:8;302:6332:74;;27501:38:3;302:6332:74;;15698:126:8;13208:33;;:::i;:::-;;15698:126;;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;27501:38:3;302:6332:74;;;-1:-1:-1;;;302:6332:74;;;;;27501:38:3;302:6332:74;;5068:13;;;;302:6332;5068:13;;;;;;;;;1590:14:0;5068:13:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;5068:13;;;;;;;-1:-1:-1;5068:13:74;;809:3;302:6332;;;;;;;:::i;:::-;809:3;;;;;;;;302:6332;;;;;:::i;:::-;809:3;;;;;;;;302:6332;809:3;;;;;;;;;;;;4833;302:6332;;;;;;;;;;;;;;4428:13;4852:32;;;;;:::i;:::-;302:6332;;4797:13;;302:6332;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;302:6332:74;;;;;;;2421:18:5;302:6332:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;302:6332:74;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4651:14;302:6332;;;;:::i;:::-;809:3;302:6332;;-1:-1:-1;;302:6332:74;;;;;;;;;4754:28;;;;:::i;:::-;302:6332;;;;;4812:19;809:3;4812:19;;;;302:6332;;;;;;;;;:::i;:::-;809:3;302:6332;;809:3;;;;;;;5000:13;;302:6332;5015:19;809:3;5015:19;;;;5335:13;;302:6332;5350:23;302:6332;5350:23;;;;302:6332;;;5375:3;5403:9;;;;:::i;:::-;;302:6332;;809:3;;;;;;;;5431:13;:30;5549:53;5431:13;;;;;;:::i;5549:53::-;809:3;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;302:6332:74;;;;;;2943:24:1;;302:6332:74;2943:24:1;;302:6332:74;;27501:38:3;302:6332:74;;;2943:24:1;;27501:38:3;2943:24:1;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;5375:3:74;;;302:6332;;5335:13;;2943:24:1;;;;;:::i;:::-;302:6332:74;;2943:24:1;;;;5036:3:74;302:6332;;-1:-1:-1;;;5068:13:74;;302:6332;;;;;5068:13;-1:-1:-1;;;;;;;;;;;5068:13:74;;;;;;;;;;;5036:3;5122:10;;;;;:::i;:::-;302:6332;;;;;;27501:38:3;;302:6332:74;;;;27501:38:3;;5115:4:74;27501:38:3;;;302:6332:74;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;302:6332:74;;7009:9:8;302:6332:74;;;7009:9:8;302:6332:74;7505:10:8;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;;;;;7505:10:8;302:6332:74;;;;;;7505:10:8;302:6332:74;;5115:4;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;6854:12:8;302:6332:74;7009:9:8;302:6332:74;15610:11:8;302:6332:74;;;-1:-1:-1;;;;;302:6332:74;;;;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;15703:15:8;;302:6332:74;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;302:6332:74;15725:48:8;;302:6332:74;;;;;15610:11:8;302:6332:74;;;15703:77:8;302:6332:74;;15702:78:8;15698:126;;5036:3:74;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;;;;;;15889:37:8;;302:6332:74;;;;;;15889:37:8;;;302:6332:74;15889:37:8;;;;;:::i;:::-;302:6332:74;15879:48:8;;302:6332:74;;;;;;;;15943:15:8;;302:6332:74;15961:16:8;302:6332:74;15961:16:8;;302:6332:74;15943:34:8;;;;:::i;:::-;15938:460;;5036:3:74;302:6332;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;302:6332:74;;;16424:32:8;;302:6332:74;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5036:3:74;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;302:6332:74;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;302:6332:74;;;16587:43:8;;302:6332:74;12810:59:8;;;302:6332:74;;;;;;;;12656:92:8;;;;12810:59;;;302:6332:74;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5036:3:74;16678:31:8;;;;:::i;:::-;16724:8;;;302:6332:74;;;16724:29:8;;5036:3:74;16720:176:8;;;;14785:4;;;;;;:::i;:::-;5176:7:74;302:6332;5147:50;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;5186:10;;;;:::i;5147:50::-;;;;-1:-1:-1;;;;;;;;;;;5147:50:74;;;;;;;;5036:3;-1:-1:-1;5176:7:74;302:6332;;;5224:48;;;;302:6332;;-1:-1:-1;;;;;302:6332:74;5261:10;;;;:::i;:::-;302:6332;;;;;;;;;;;;5224:48;;;302:6332;5224:48;;;:::i;:::-;;;;;;;;;;;;;;5036:3;5212:60;;;;;:::i;:::-;;;;;;:::i;:::-;;302:6332;;;;;;5286:23;;302:6332;5286:23;;302:6332;;5286:23;27501:38:3;5286:23:74;;-1:-1:-1;;;;;;;;;;;5286:23:74;;;;;;;302:6332;5286:23;;;5036:3;;302:6332;5000:13;;5286:23;;;302:6332;5286:23;;;;;;;;;:::i;:::-;;;;;5224:48;;;;;;;;;;;;;;:::i;:::-;;;;5147:50;;;302:6332;5147:50;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;302:6332:74;;16587:43:8;;;;16424:32;;;;;302:6332:74;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;302:6332:74;16021:3:8;302:6332:74;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;302:6332:74;;;;;16314:19:8;;302:6332:74;;;16314:19:8;;302:6332:74;27501:38:3;302:6332:74;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;302:6332:74;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;302:6332:74;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;302:6332:74;12810:59:8;;;-1:-1:-1;;;302:6332:74;12810:59:8;;;302:6332:74;;;;;;12810:59:8;;;302:6332:74;;;;;;;;16170:185:8;;302:6332:74;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;5068:13:74;;;;302:6332;5068:13;;;;;;;;;1590:14:0;5068:13:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;5068:13;;;;;;;-1:-1:-1;5068:13:74;;809:3;302:6332;;;;;;;:::i;:::-;809:3;;;;;;;;302:6332;;;;;:::i;:::-;809:3;;;;;;;;302:6332;809:3;;;;;;;;;;;;4833;302:6332;;;;;;;;;;;;;;;4852:32;;;;;:::i;:::-;302:6332;;4797:13;;302:6332;;;;;;;;;;;;;3190:18:5;302:6332:74;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3190:18:5;302:6332:74;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:5;302:6332:74;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5976:7;302:6332;;;-1:-1:-1;;;5976:23:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;5976:23;;302:6332;;;;;;5976:23;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;5976:23;;;;;;;;;;302:6332;6010:26;302:6332;;;6010:26;:::i;:::-;302:6332;;5976:23;;;;;;;;;;;:::i;:::-;;;302:6332;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5976:23;;;6010:26;5976:23;;;302:6332;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2883:26:5;302:6332:74;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2883:26:5;302:6332:74;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;302:6332:74;;;;;;;;;;;;;;;2189:38;;;302:6332;2189:38;302:6332;;;;;;;:::i;:::-;2335:1;302:6332;;;;;;;;;;;;;;;;;;;:::i;:::-;2335:1;302:6332;;;;;;;2335:1;302:6332;;;;;;2407:21;;;;;;;2453:7;302:6332;;;-1:-1:-1;;;2453:35:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;2453:35;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;;;;;;2453:35;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;2453:35;;;;;;2530:9;2453:35;;;;;2403:769;2530:9;;:::i;:::-;302:6332;2512:27;;-1:-1:-1;;;;;;;;;;;2502:38:74;;;;302:6332;;;;;;2502:38;;302:6332;2502:38;;302:6332;2502:38;;302:6332;2502:38;-1:-1:-1;;;;;;;;;;;2502:38:74;;;;;;;;2403:769;2567:24;;2633:12;2567:24;;:::i;:::-;2633:12;:::i;:::-;302:6332;2648:3;302:6332;;;;;;2648:3;302:6332;;;;;;;2605:53;;-1:-1:-1;;;;;;;;;;;2605:53:74;;;;302:6332;;-1:-1:-1;;;2605:53:74;;2453:35;302:6332;;;2615:42;;302:6332;2605:53;;302:6332;2605:53;302:6332;;;-1:-1:-1;;;;;;;;;;;2605:53:74;;;;;;;;2403:769;302:6332;;;;;27501:38:3;;302:6332:74;;;;27501:38:3;;2692:4:74;302:6332;27501:38:3;;302:6332:74;;27501:38:3;;;302:6332:74;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;302:6332:74;;7009:9:8;302:6332:74;;;7009:9:8;302:6332:74;7505:10:8;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;;;;;7505:10:8;302:6332:74;;;;;;7505:10:8;302:6332:74;;2692:4;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;6854:12:8;302:6332:74;7009:9:8;302:6332:74;15610:11:8;302:6332:74;;;-1:-1:-1;;;;;302:6332:74;;;;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;15703:15:8;;302:6332:74;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;302:6332:74;15725:48:8;;302:6332:74;;;;;;;;;15703:77:8;302:6332:74;;15702:78:8;15698:126;;2403:769:74;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;;;;;;15889:37:8;;302:6332:74;;;;;;15889:37:8;;;302:6332:74;15889:37:8;;;;;:::i;:::-;302:6332:74;15879:48:8;;302:6332:74;;;;;;;;15943:15:8;;302:6332:74;15961:16:8;2335:1:74;15961:16:8;;302:6332:74;15943:34:8;;;;;:::i;:::-;15938:460;;-1:-1:-1;302:6332:74;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;302:6332:74;;;16424:32:8;;302:6332:74;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2403:769:74;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;302:6332:74;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;302:6332:74;;;16587:43:8;;302:6332:74;12810:59:8;;;302:6332:74;;;;-1:-1:-1;;302:6332:74;;;12656:92:8;12810:59;;;302:6332:74;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2403:769:74;16678:31:8;;;;:::i;:::-;16724:8;;302:6332:74;;;16724:29:8;;2403:769:74;16720:176:8;;;14785:4;;;;;;:::i;:::-;2453:7:74;302:6332;;;-1:-1:-1;;;2731:57:74;;302:6332;;;;;-1:-1:-1;;;;;302:6332:74;;2731:57;;302:6332;-1:-1:-1;;302:6332:74;;;;;;;;2731:57;-1:-1:-1;;;;;;;;;;;2731:57:74;;;;;;;;2403:769;;;302:6332;;-1:-1:-1;;;3212:37:74;;3243:4;302:6332;3212:37;;302:6332;;;;;;-1:-1:-1;;;;;;;;;;;3212:37:74;;;;;;;;;;;2403:769;-1:-1:-1;302:6332:74;;-1:-1:-1;;;3289:37:74;;3243:4;302:6332;3289:37;;302:6332;;;;;;-1:-1:-1;;;;;;;;;;;3289:37:74;;;;;;;;;;;2403:769;302:6332;3370:53;302:6332;3370:53;302:6332;;;;;;3370:7;302:6332;;;;;;;;;;;;;;;;;3370:53;;302:6332;3370:53;;;:::i;:::-;;;;;;;;;;;;;;2403:769;302:6332;;;3434:783;;302:6332;;;3434:783;3484:21;;;302:6332;;-1:-1:-1;;;3592:37:74;;3243:4;302:6332;3592:37;;302:6332;;;;;-1:-1:-1;;;;;;;;;;;3592:37:74;;;;;;;;;;;3480:727;3592:59;;;;;;:::i;:::-;;;:::i;:::-;302:6332;;;-1:-1:-1;;;3784:37:74;;3243:4;302:6332;3784:37;;302:6332;;;;;-1:-1:-1;;;;;;;;;;;3784:37:74;;;;;;;;;;;3480:727;3762:59;;;;;;:::i;:::-;3434:783;;;;;302:6332;;;3784:37;;;302:6332;3784:37;;302:6332;3784:37;;;;;;1590:14:0;3784:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;3762:59;3784:37;;;;;-1:-1:-1;3784:37:74;;;302:6332;;;;;;;;;3592:37;;;302:6332;3592:37;;302:6332;3592:37;;;;;;1590:14:0;3592:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;3592:59;:37;;;;;-1:-1:-1;3592:37:74;;3480:727;302:6332;;-1:-1:-1;;;3967:37:74;;3243:4;302:6332;3967:37;;302:6332;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:37:74;;;;;;;;;;;3480:727;3945:59;;;;;;:::i;:::-;302:6332;;;-1:-1:-1;;;4115:37:74;;3243:4;302:6332;4115:37;;302:6332;;;;;-1:-1:-1;;;;;;;;;;;4115:37:74;;;;;;;;;;;3480:727;4115:59;;;;;;:::i;:::-;3480:727;;4115:37;;;302:6332;4115:37;;302:6332;4115:37;;;;;;1590:14:0;4115:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;4115:59;:37;;;;;-1:-1:-1;4115:37:74;;3967;;;302:6332;3967:37;;302:6332;3967:37;;;;;;1590:14:0;3967:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;3945:59;3967:37;;;;;-1:-1:-1;3967:37:74;;3370:53;;;;;;;;;;;;;;;:::i;:::-;;;;;3289:37;;;;302:6332;3289:37;;302:6332;3289:37;;;;;;1590:14:0;3289:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;;3289:37;;3370:53;3289:37;;;;;-1:-1:-1;3289:37:74;;3212;;;;302:6332;3212:37;;302:6332;3212:37;;;;;;1590:14:0;3212:37:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;3212:37;;;;;;;-1:-1:-1;3212:37:74;;2731:57;;;302:6332;2731:57;302:6332;2731:57;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3074:17:74;16724:29:8;;16587:43;;;;;:::i;:::-;302:6332:74;;16587:43:8;;;;16424:32;;;;;302:6332:74;16424:32:8;;302:6332:74;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;302:6332:74;16021:3:8;302:6332:74;;;;;;;;;;;-1:-1:-1;;;16314:19:8;;302:6332:74;;;;;16314:19:8;;302:6332:74;16314:19:8;302:6332:74;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;-1:-1:-1;;;16314:19:8;;302:6332:74;16170:185:8;16314:19;12810:59;16314:19;12810:59;16314:19;;;;15938:460;302:6332:74;;;16170:185:8;;;12810:59;16170:185;;;12810:59;;302:6332:74;12810:59:8;;;;;;302:6332:74;;;;;;12810:59:8;;;302:6332:74;;;;;;;;16170:185:8;;302:6332:74;;16170:185:8;;;;;;:::i;:::-;302:6332:74;;-1:-1:-1;;;12810:59:8;;302:6332:74;;12810:59:8;;;302:6332:74;;;;12810:59:8;;;;:::i;16314:19::-;;;;;;;;;;;;;:::i;:::-;;;;;302:6332:74;;;;;;;;;;-1:-1:-1;;;302:6332:74;;6854:12:8;302:6332:74;;;;;15698:126:8;13208:33;;:::i;:::-;;15698:126;;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;;;;;-1:-1:-1;;;302:6332:74;;;;;;;;2605:53;;;;;:::i;:::-;302:6332;;2605:53;;;;302:6332;-1:-1:-1;;;302:6332:74;;;;;;;;2502:38;;;;;:::i;:::-;302:6332;;2502:38;;;;2453:35;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2403:769;2828:7;302:6332;;;-1:-1:-1;;;2828:35:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;2828:35;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;;;;;;2828:35;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;2828:35;;;;;;2905:9;2828:35;;;;;2403:769;2905:9;;:::i;:::-;302:6332;2887:27;;-1:-1:-1;;;;;;;;;;;2877:38:74;;;;302:6332;;;;;;2877:38;;302:6332;2877:38;;302:6332;2877:38;;302:6332;2877:38;-1:-1:-1;;;;;;;;;;;2877:38:74;;;;;;;;2403:769;2942:24;;3008:12;2942:24;;:::i;:::-;3008:12;:::i;:::-;302:6332;3023:3;302:6332;;;;;;3023:3;302:6332;;;;;;;2980:53;;-1:-1:-1;;;;;;;;;;;2980:53:74;;;;302:6332;;-1:-1:-1;;;2980:53:74;;2828:35;302:6332;;;2990:42;;302:6332;2980:53;;302:6332;2980:53;302:6332;;;-1:-1:-1;;;;;;;;;;;2980:53:74;;;;;;;;2403:769;302:6332;;;;;27501:38:3;;302:6332:74;;;;27501:38:3;;3067:4:74;302:6332;27501:38:3;;302:6332:74;;27501:38:3;;;302:6332:74;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;302:6332:74;;7009:9:8;302:6332:74;;;7009:9:8;302:6332:74;7505:10:8;302:6332:74;-1:-1:-1;;;302:6332:74;;;;;;;;;7505:10:8;302:6332:74;;;;;;7505:10:8;302:6332:74;;3067:4;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;6854:12:8;302:6332:74;7009:9:8;302:6332:74;15610:11:8;302:6332:74;;;-1:-1:-1;;;;;302:6332:74;;;;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;15703:15:8;;302:6332:74;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;302:6332:74;15725:48:8;;302:6332:74;;;;;;;;;15703:77:8;302:6332:74;;15702:78:8;15698:126;;2403:769:74;-1:-1:-1;;;;;302:6332:74;;;;;;27635:8:3;302:6332:74;;;;;;;;;;15889:37:8;;302:6332:74;;;;;;15889:37:8;;;302:6332:74;15889:37:8;;;;;:::i;:::-;302:6332:74;15879:48:8;;302:6332:74;;;;;;;;15943:15:8;;302:6332:74;15961:16:8;2335:1:74;15961:16:8;;302:6332:74;15943:34:8;;;;;:::i;:::-;15938:460;;-1:-1:-1;302:6332:74;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;302:6332:74;;;16424:32:8;;302:6332:74;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2403:769:74;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;302:6332:74;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;302:6332:74;;;16587:43:8;;302:6332:74;12810:59:8;;;302:6332:74;;;;-1:-1:-1;;302:6332:74;;;12656:92:8;12810:59;;;302:6332:74;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2403:769:74;16678:31:8;;;;:::i;:::-;16724:8;;302:6332:74;;;16724:29:8;;2403:769:74;16720:176:8;;;14785:4;;;;;;:::i;:::-;2828:7:74;302:6332;;;-1:-1:-1;;;3106:55:74;;302:6332;;;;;-1:-1:-1;;;;;302:6332:74;;3106:55;;302:6332;;;;;;;;;;;3106:55;-1:-1:-1;;;;;;;;;;;3106:55:74;;;;;;;;2403:769;;;;3106:55;;;302:6332;3106:55;302:6332;3106:55;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;3074:17:74;16724:29:8;;16587:43;;;;;:::i;:::-;302:6332:74;;16587:43:8;;;;16424:32;;;;;302:6332:74;16424:32:8;;302:6332:74;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15698:126;13208:33;;:::i;:::-;;15698:126;;2980:53:74;;;;;:::i;:::-;302:6332;;2980:53;;;;2877:38;;;;;:::i;:::-;302:6332;;2877:38;;;;2828:35;;;;;;;;;;;;;:::i;:::-;;;;302:6332;-1:-1:-1;;;302:6332:74;;;;;;;;2189:38;;;;302:6332;;;;;;;;;;;;;;;;;;3038:18:5;302:6332:74;;;;;;;3038:18:5;302:6332:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;302:6332:74;;;;;;;3331:16:5;302:6332:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;302:6332:74;;;;;;;;;;;;;;1363:7;302:6332;;;;;;;;;;1363:35;;302:6332;;;;1363:35;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;1363:35;;;;;;;;;;;;;;;;302:6332;1428:9;;;;:::i;:::-;302:6332;1418:19;;-1:-1:-1;;;;;;;;;;;1408:30:74;;;;302:6332;;;;;;1408:30;;302:6332;1408:30;;302:6332;1408:30;;302:6332;1408:30;-1:-1:-1;;;;;;;;;;;1408:30:74;;;;;;;;;;;302:6332;1468:9;;;;;:::i;:::-;302:6332;1458:19;;-1:-1:-1;;;;;;;;;;;1448:30:74;;;;302:6332;;;;;;1448:30;;302:6332;1448:30;;302:6332;1448:30;;302:6332;1448:30;-1:-1:-1;;;;;;;;;;;1448:30:74;;;;;;;;302:6332;;;;;;;;;;;;;;:::i;:::-;1530:1;302:6332;;;;;;;;1542:20;;;:::i;:::-;302:6332;1572:20;;;:::i;:::-;302:6332;;;-1:-1:-1;;;1630:40:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;1630:40;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;1363:35;302:6332;;;;;;;;;;;;;;;:::i;:::-;1630:40;;;;;;;;;;;;;302:6332;1686:13;;1720:3;302:6332;;1701:17;;;;;1748:9;1739:32;1748:9;302:6332;1748:9;;;:::i;:::-;;302:6332;1739:32;:::i;:::-;1785:34;302:6332;1794:9;;;;:::i;:::-;;:21;302:6332;1785:34;:::i;:::-;302:6332;1686:13;;1701:17;;302:6332;;1630:40;;;;;;;;;;;;;:::i;:::-;;;302:6332;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:40;;;;;;;;302:6332;;;;;;;;:::i;:::-;;;;;;;;;1448:30;;;;;;:::i;:::-;302:6332;;1448:30;;;1408;;;;;:::i;:::-;302:6332;;1408:30;;;;1363:35;;;;;;;;;;;;;:::i;:::-;;;;302:6332;;;;;;;;;;;;;3485:19:5;302:6332:74;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3485:19:5;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6182:7;302:6332;;;-1:-1:-1;;;6182:35:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;6182:35;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;;;;;6182:35;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;6182:35;;;;;;6228:26;6182:35;;;;;302:6332;;;6228:26;:::i;6182:35::-;;;;;;;;;;;;;:::i;:::-;;;;302:6332;;;;;;;-1:-1:-1;;302:6332:74;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;5759:7;302:6332;;;-1:-1:-1;;;5759:37:74;;302:6332;;;5759:37;;;302:6332;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;5759:37;;302:6332;;;;;;;;5759:37;;;;;;;;;;;302:6332;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;302:6332:74;;;;;;2349:24:1;;302:6332:74;2349:24:1;;302:6332:74;;;;;;2349:24:1;;302:6332:74;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;302:6332:74;;2349:24:1;;;;;:::i;:::-;302:6332:74;;2349:24:1;302:6332:74;2349:24:1;302:6332:74;;5759:37;;;;;;;;;;;;;:::i;:::-;;;302:6332;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5759:37;;;;;;302:6332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:5;302:6332:74;;;;;;;2563:16:5;302:6332:74;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;302:6332:74;;;;;;-1:-1:-1;;;911:20:74;;1590:14:0;302:6332:74;911:20;;1590:14:0;;;;;302:6332:74;-1:-1:-1;;;302:6332:74;;;1590:14:0;-1:-1:-1;302:6332:74;911:20;302:6332;-1:-1:-1;;;;;;;;;;;911:20:74;;;;;;;1590:14:0;911:20:74;1590:14:0;911:20:74;302:6332;911:20;;;302:6332;;;;;;;;;;;891:52;;302:6332;;891:52;;1590:14:0;302:6332:74;1590:14:0;;;;:::i;:::-;873:8:74;1590:14:0;;;302:6332:74;891:52;;302:6332;-1:-1:-1;;;;;;;;;;;891:52:74;;;;;;;;302:6332;;;;963:39;;;;;;;;-1:-1:-1;;;;;963:39:74;;;;;1590:14:0;963:39:74;;;;;;725:42;302:6332;;963:39;;;302:6332;963:39;;;;;953:49;725:42;;-1:-1:-1;;;;;;725:42:74;;;;;;-1:-1:-1;;;;;725:42:74;;;;;;;1012:38;725:42;;-1:-1:-1;;;;;;725:42:74;;;;;-1:-1:-1;;;;;;;;;;;1061:31:74;;;;302:6332;;;;;1061:31;;-1:-1:-1;;;;;;;;;;;302:6332:74;1061:31;;302:6332;;1590:14:0;489:42:74;;;302:6332;;489:42;;302:6332;-1:-1:-1;;;911:20:74;302:6332;;489:42;302:6332;1061:31;;;;-1:-1:-1;;;;;;;;;;;1061:31:74;;;;;;;;302:6332;1102:22;-1:-1:-1;;;;;;;;;;;1102:22:74;;;;302:6332;;;;;;1102:22;;-1:-1:-1;;;;;;;;;;;302:6332:74;1102:22;;302:6332;;1590:14:0;561:42:74;;;302:6332;;561:42;;302:6332;-1:-1:-1;;;911:20:74;302:6332;;561:42;1102:22;;1061:31;1102:22;;-1:-1:-1;;;;;;;;;;;1102:22:74;;;;;;;;302:6332;1134:51;;-1:-1:-1;;;;;;;;;;;1134:51:74;;;;302:6332;;;;;;1134:51;;643:42;302:6332;1134:51;;302:6332;;1590:14:0;643:42:74;;;;302:6332;643:42;;302:6332;-1:-1:-1;;;911:20:74;302:6332;;643:42;1134:51;;1061:31;1134:51;;-1:-1:-1;;;;;;;;;;;1134:51:74;;;;;;;;302:6332;;1102:22;;;;;:::i;:::-;302:6332;;1102:22;;;;1061:31;;;;302:6332;1061:31;;:::i;:::-;302:6332;1061:31;;;;302:6332;;;;;;;;;963:39;302:6332;;;;;;;;1590:14:0;302:6332:74;;891:52;1590:14:0;891:52:74;;1590:14:0;891:52:74;;;;;;1590:14:0;891:52:74;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;891:52;;;;;-1:-1:-1;891:52:74;;911:20;;;;;;302:6332;911:20;;;;;;:::i;:::-;;;;302:6332;;;;;;-1:-1:-1;;302:6332:74;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;6468:59;302:6332;;:::i;:::-;6468:7;302:6332;;;-1:-1:-1;;;6468:59:74;;302:6332;6468:59;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;6468:59;;302:6332;;;6468:59;;;;;;302:6332;;;6468:59;;;302:6332;;;;;;;;;;;:::i;:::-;6561:1;302:6332;;;;;;;;6573:21;;;:::i;:::-;302:6332;6604:21;;;:::i;:::-;302:6332;;;;;;;;;;;;;;:::i;6468:59::-;;;;;;;;;;;;;;;;;:::i;:::-;;;302:6332;;;;;;;;;;;;;;6468:59;;;;;-1:-1:-1;6468:59:74;;302:6332;;;;-1:-1:-1;;;;;302:6332:74;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;302:6332:74;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;302:6332:74;;;;;;;;-1:-1:-1;;302:6332:74;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;302:6332:74;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;:::o;:::-;-1:-1:-1;;;;;302:6332:74;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1475:1;302:6332;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6267:365::-;6468:7;302:6332;;;-1:-1:-1;;;6468:59:74;;-1:-1:-1;;;;;;;;;;;6468:59:74;;;302:6332;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;6267:365;6468:59;;302:6332;;6468:59;;302:6332;;-1:-1:-1;;;;;302:6332:74;6468:59;;;;;;-1:-1:-1;;;6468:59:74;;;6267:365;302:6332;6604:21;302:6332;;;;;;:::i;:::-;6561:1;302:6332;;;;;;;;6538:25;6573:21;;;;:::i;:::-;302:6332;6604:21;:::i;:::-;302:6332;6267:365::o;6468:59::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;302:6332;;;;;;;;;;;;6468:59;;;;;;-1:-1:-1;6468:59:74;;1590:14:0;-1:-1:-1;;;;;1590:14:0;;;;302:6332:74;;-1:-1:-1;;302:6332:74;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;302:6332:74;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;302:6332:74;;;;;1590:14:0;:::o;:::-;;;;;;;;;302:6332:74;1590:14:0;:::o;725:42:74:-;6854:12:8;725:42:74;;-1:-1:-1;;;;;;725:42:74;-1:-1:-1;;;;;;;;;;;725:42:74;;;:::o;302:6332::-;;;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;302:6332:74;;;;;;;;-1:-1:-1;302:6332:74;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:42;302:6332;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;302:6332:74;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;302:6332:74;;;;;-1:-1:-1;302:6332:74;;;;;;;;;;;:::o;1243:204:1:-;1302:7;302:6332:74;;;;;;;1325:14:1;:::o;1298:143::-;302:6332:74;;;;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;302:6332:74;192:59:1;;;;;;302:6332:74;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;302:6332:74;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;2270:110;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;302:6332:74;;;;;;2349:24:1;;;;;302:6332:74;6252:1;302:6332;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;:::-;2270:110::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;302:6332:74;;;;;;2349:24:1;;;;;302:6332:74;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;13112:::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;302:6332:74;;;;;;13191:24:1;;;;;302:6332:74;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;809:3:74:-;;;;;;;;;;:::o;302:6332::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;302:6332:74;;;;:::o;:::-;;;:::o;14296:110:1:-;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;302:6332:74;;;;;;14375:24:1;;;;;302:6332:74;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;426:547:59:-;688:35;426:547;637:17;619:35;302:6332:74;;637:17:59;;;302:6332:74;619:35:59;;:::i;:::-;302:6332:74;;706:17:59;;302:6332:74;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;302:6332:74;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;3074:17:74;957:9:59:o;302:6332:74:-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;302:6332:74;1052:14:8;302:6332:74;;:::i;:::-;1052:14:8;;302:6332:74;;;;;;1109:10:8;302:6332:74;;;;;;1109:10:8;1077:1;302:6332:74;;1077:1:8;302:6332:74;;1077:1:8;302:6332:74;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;302:6332:74;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;302:6332:74;;11456:84:8;302:6332:74;11456:84:8;;;;;302:6332:74;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;302:6332:74:-;;;;;1109:10:8;302:6332:74;;;;;;-1:-1:-1;302:6332:74;;;;;;;;1048:135:8;302:6332:74;;;;;;1052:14:8;302:6332:74;:::i;:::-;1151:21:8;:::o;953:236::-;1052:14;;;302:6332:74;;;;;:::i;:::-;1052:21:8;;1109:10;;;;302:6332:74;;;;;;;;;;;;;;;1077:1:8;302:6332:74;;1077:1:8;302:6332:74;;1077:1:8;302:6332:74;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1077:1:8;11360:3;302:6332:74;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;302:6332:74;;11456:84:8;302:6332:74;11456:84:8;;;;;302:6332:74;11331:13:8;;302:6332:74;;;;;1109:10:8;302:6332:74;;;;;;-1:-1:-1;302:6332:74;;;;;;;;1048:135:8;302:6332:74;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;302:6332:74;1364:48:8;1381:9;302:6332:74;;;1364:48:8;302:6332:74;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;302:6332:74;;1364:48:8;;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;302:6332:74;;1364:48:8;;;;;;:::i;:::-;1458:12;302:6332:74;1458:29:8;;;-1:-1:-1;;;;;302:6332:74;1458:29:8;;;;;:::i;:::-;1540:11;302:6332:74;;;;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;-1:-1:-1;302:6332:74;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;302:6332:74;;;;;;;;;1364:48:8;302:6332:74;;1540:11:8;302:6332:74;;;;;-1:-1:-1;;;;;;302:6332:74;;;11142:1:8;302:6332:74;;;;;;;;;;;11097:47:8;11078:3;302:6332:74;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;302:6332:74;;;1364:48:8;302:6332:74;1392:19:8;;;:::i;1364:48::-;302:6332:74;1458:12:8;;302:6332:74;1458:29:8;;;-1:-1:-1;;;;;302:6332:74;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;302:6332:74;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;-1:-1:-1;302:6332:74;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;302:6332:74;;;;;;;;;1364:48:8;302:6332:74;;1540:11:8;302:6332:74;;;;;-1:-1:-1;;;;;;302:6332:74;;;11142:1:8;302:6332:74;;;;;;;;;;;11097:47:8;11078:3;302:6332:74;11054:13:8;;;;;11010:29;;;;643:59;;;;;;;;;;;;;;;:::i;:::-;302:6332:74;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;302:6332:74;4397:9:8;302:6332:74;4438:11:8;302:6332:74;-1:-1:-1;;;;;302:6332:74;;;;;;;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;302:6332:74;;;27635:8:3;302:6332:74;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;302:6332:74;4573:48:8;;302:6332:74;;;;;4438:11:8;302:6332:74;;;4551:77:8;302:6332:74;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;302:6332:74;;-1:-1:-1;;;4811:11:8;;302:6332:74;;4361:12:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;302:6332:74;;;;;;;4911:25:8;;;4361:12;4911:25;;302:6332:74;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;302:6332:74;;4951:12:8;;4984:74;302:6332:74;;12810:59:8;;;4984:74;;302:6332:74;4361:12:8;4984:74;;643:59;302:6332:74;4911:25:8;643:59;;302:6332:74;643:59:8;302:6332:74;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;302:6332:74;;5109:16:8;;;;;5178:8;302:6332:74;5178:8:8;;5165:22;5178:8;;:::i;:::-;302:6332:74;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;302:6332:74;;4361:12:8;5165:22;;302:6332:74;;;;;;;;;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;302:6332:74;4361:12:8;302:6332:74;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;302:6332:74;;;4361:12:8;1978:27;;302:6332:74;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;3074:17:74;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;302:6332:74;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;302:6332:74;;;;4361:12:8;2177:37;;302:6332:74;12810:59:8;;;302:6332:74;;;12810:59:8;;;302:6332:74;;;;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;302:6332:74;;;;-1:-1:-1;;;;;;302:6332:74;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;302:6332:74;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;302:6332:74;;;;4361:12:8;2281:43;;302:6332:74;12810:59:8;;;302:6332:74;;;;12810:59:8;;;302:6332:74;;;;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;302:6332:74;;5520:25:8;302:6332:74;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;302:6332:74;;5998:29:8;;5994:84;;302:6332:74;;6319:8:8;302:6332:74;6101:89:8;643:59;302:6332:74;;6132:37:8;;302:6332:74;;;6132:37:8;;;302:6332:74;6132:37:8;;;;;:::i;:::-;302:6332:74;6122:48:8;;6180:8;;;;:::i;:::-;302:6332:74;;;;;;;643:59:8;302:6332:74;643:59:8;;302:6332:74;;643:59:8;;302:6332:74;643:59:8;;;302:6332:74;6101:89:8;6319:8;:::i;:::-;302:6332:74;;;;;643:59:8;302:6332:74;;;;;;-1:-1:-1;;;;;302:6332:74;;;;;4438:11:8;302:6332:74;;;;;;6302:58:8;;302:6332:74;;;;6302:58:8;;302:6332:74;;;643:59:8;6302:58;;643:59;302:6332:74;643:59:8;;302:6332:74;;;27635:8:3;302:6332:74;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;302:6332:74;6230:48:8;;302:6332:74;;;;;;;;;643:59:8;;302:6332:74;;643:59:8;;;302:6332:74;4397:9:8;643:59;;;;;;302:6332:74;;;;;643:59:8;;;;;;;;5089:1309;302:6332:74;;;27635:8:3;302:6332:74;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;302:6332:74;6461:48:8;;302:6332:74;;;;;4438:11:8;302:6332:74;;;6439:77:8;302:6332:74;;643:59:8;;;302:6332:74;6664:15:8;302:6332:74;;27635:8:3;302:6332:74;;;;;;;;;;6696:37:8;;302:6332:74;;;;;;6696:37:8;;;302:6332:74;6696:37:8;;;;;:::i;:::-;302:6332:74;6686:48:8;;302:6332:74;;;;;4249:2493:8;:::o;643:59::-;302:6332:74;;-1:-1:-1;;;643:59:8;;302:6332:74;4361:12:8;643:59;;;;4911:25;643:59;;302:6332:74;643:59:8;302:6332:74;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;302:6332:74;6051:8:8;5094:13;302:6332:74;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;302:6332:74;4361:12:8;302:6332:74;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;302:6332:74;;;4361:12:8;3216:27;;302:6332:74;;;;;;;;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;302:6332:74;;;;;;-1:-1:-1;;;;;302:6332:74;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;302:6332:74;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;302:6332:74;;;;4361:12:8;3497:43;;302:6332:74;12810:59:8;;;302:6332:74;;;;12810:59:8;;;302:6332:74;;;;;;12810:59:8;302:6332:74;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;302:6332:74;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;302:6332:74;;3497:43:8;;;;302:6332:74;;;;3497:43:8;302:6332:74;;;;;;;;;3497:43:8;302:6332:74;;;3216:27:8;;;;302:6332:74;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;;302:6332:74;;;;;;;;;5337:92:8;5402:8;;302:6332:74;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;302:6332:74;;2281:43:8;;;;302:6332:74;;;;2281:43:8;302:6332:74;;;;;;;;;2281:43:8;302:6332:74;;;2177:37:8;;;;;:::i;:::-;302:6332:74;;2177:37:8;;;;2102:65;;;;;1978:27;;;302:6332:74;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;302:6332:74;;;;;;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;302:6332:74;;;;-1:-1:-1;;;;;302:6332:74;;;;;;;;;;;;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;302:6332:74;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;302:6332:74;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;302:6332:74;;;;;;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;302:6332:74;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;302:6332:74;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;302:6332:74;;;643:59:8;302:6332:74;;;4811:11:8;;;;;302:6332:74;4811:11:8;;:::i;:::-;302:6332:74;4811:11:8;;;;4547:255;4720:15;;;;;302:6332:74;;27635:8:3;302:6332:74;;;;;;;;;;4752:37:8;;302:6332:74;;;;;;4752:37:8;;;302:6332:74;4752:37:8;;;;;:::i;:::-;302:6332:74;4742:48:8;;302:6332:74;;;;;;;4713:78:8;:::o;11586:239::-;725:42:74;;;11652:12:8;302:6332:74;;11652:12:8;302:6332:74;;;11681:9:8;302:6332:74;;11681:9:8;302:6332:74;11707:10:8;302:6332:74;11645:19:8;11707:10;302:6332:74;;;;11586:239:8;302:6332:74;11645:19:8;11734:11;302:6332:74;725:42;302:6332;11762:25:8;302:6332:74;;11762:25:8;302:6332:74;;11804:14:8;302:6332:74;;:::i;:::-;;;;11586:239:8;:::o;302:6332:74:-;;;;;;;;;11645:19:8;11804:14;302:6332:74;11586:239:8:o;302:6332:74:-;11804:14:8;11645:19;302:6332:74;;;;;;;;;;;;;;;;11804:14:8;11645:19;302:6332:74;11645:19:8;302:6332:74;;;;11804:14:8;302:6332:74;;2270:110:1:o;302:6332:74:-;;;;;;;;;11707:10:8;11645:19;302:6332:74;-1:-1:-1;;;;;;;;;;;302:6332:74;;;;;;;;;;;;;;11645:19:8;302:6332:74;;11707:10:8;302:6332:74;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;302:6332:74;2771:3:8;302:6332:74;2771:3:8;302:6332:74;;;;2824:12:8;;;302:6332:74;;;;;;-1:-1:-1;;;;;302:6332:74;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;302:6332:74;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;302:6332:74;;;;2824:12:8;2815:49;;302:6332:74;12810:59:8;;;302:6332:74;;;12810:59:8;;;302:6332:74;;;;-1:-1:-1;302:6332:74;12810:59:8;302:6332:74;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;302:6332:74;;2678:18:8;;2941:90;2995:21;;;302:6332:74;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;302:6332:74;;;;;-1:-1:-1;;;;;302:6332:74;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;302:6332:74;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;302:6332:74;;;;2824:12:8;2815:49;;302:6332:74;12810:59:8;;;302:6332:74;;;12810:59:8;;;302:6332:74;;;;-1:-1:-1;302:6332:74;12810:59:8;302:6332:74;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;302:6332:74;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getMinLimits(address,address)":"05307621","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilitiesIntegral(bytes32,address,address)":"1fe0c49a","testGetLimitsIntegral()":"23bc9a29","testGetTokensIntegral()":"66f523f5","testPriceFuzzIntegral(uint256,uint256)":"37124eb0","testSwapBuyIncreasing()":"fe3ee58b","testSwapFuzzIntegral(uint256,bool)":"5d511088","testSwapSellIncreasingIntegral()":"b4f3fe0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getMinLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pair\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilitiesIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimitsIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokensIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzzIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzzIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasingIntegral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"testSwapFuzzIntegral(uint256,bool)\":{\"details\":\"Since TwapRelayer's calculateAmountOut function is internal, and using quoteSell would revert the transaction if calculateAmountOut is not enough, we need a threshold to cover this internal amount, applied to\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegralSwapAdapter.t.sol\":\"IntegralSwapAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/integral/IntegralSwapAdapter.sol\":{\"keccak256\":\"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98\",\"dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/IntegralSwapAdapter.t.sol\":{\"keccak256\":\"0x465e4df3a75322c29ce6a0354292e0d618f82d84bce063e030622fc33d08a0f3\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://428962d48f6a7bf95ccc291c722eadefc41b6f1141fa238c4f7f48d0f21be0bc\",\"dweb:/ipfs/QmSowALtRXXTVrZCtVaamFx41PCm48uFRzowpbBL2AQz8T\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getMinLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"pair","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilitiesIntegral"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimitsIntegral"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTokensIntegral"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzzIntegral"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasing"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzzIntegral"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasingIntegral"}],"devdoc":{"kind":"dev","methods":{"testSwapFuzzIntegral(uint256,bool)":{"details":"Since TwapRelayer's calculateAmountOut function is internal, and using quoteSell would revert the transaction if calculateAmountOut is not enough, we need a threshold to cover this internal amount, applied to"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegralSwapAdapter.t.sol":"IntegralSwapAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/integral/IntegralSwapAdapter.sol":{"keccak256":"0xba81dc8dd2e92b38d2de308f2d4fd5d43043a6646c5c5026cb0599328270913f","urls":["bzz-raw://cdd83b073508b386799138c43800f670b93c49357e7e04e6168a067b80300f98","dweb:/ipfs/QmZrMmCPf7ePH4jeQGzaxbDrt1LSSLSXRJHg6LfaSrVRVm"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/IntegralSwapAdapter.t.sol":{"keccak256":"0x465e4df3a75322c29ce6a0354292e0d618f82d84bce063e030622fc33d08a0f3","urls":["bzz-raw://428962d48f6a7bf95ccc291c722eadefc41b6f1141fa238c4f7f48d0f21be0bc","dweb:/ipfs/QmSowALtRXXTVrZCtVaamFx41PCm48uFRzowpbBL2AQz8T"],"license":"AGPL-3.0-or-later"}},"version":1},"id":74} \ No newline at end of file diff --git a/evm/out/Math.sol/Math.json b/evm/out/Math.sol/Math.json deleted file mode 100644 index 1a8b00a..0000000 --- a/evm/out/Math.sol/Math.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220eeb9de0d14e93d6b4ebdc70460182e42a39ab446f1f758e7f23ac8ee0558fa4f64736f6c634300081b0033","sourceMap":"281:26664:38:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220eeb9de0d14e93d6b4ebdc70460182e42a39ab446f1f758e7f23ac8ee0558fa4f64736f6c634300081b0033","sourceMap":"281:26664:38:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Factory.json b/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Factory.json deleted file mode 100644 index 9cc43d4..0000000 --- a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isFactoryPool","inputs":[{"name":"pool","type":"address","internalType":"contract IMaverickV2Pool"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lookup","inputs":[{"name":"startIndex","type":"uint256","internalType":"uint256"},{"name":"endIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"pools","type":"address[]","internalType":"contract IMaverickV2Pool[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isFactoryPool(address)":"578eaca4","lookup(uint256,uint256)":"b4b9d1f1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMaverickV2Pool\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"isFactoryPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endIndex\",\"type\":\"uint256\"}],\"name\":\"lookup\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Pool[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"IMaverickV2Factory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMaverickV2Pool","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"isFactoryPool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"startIndex","type":"uint256"},{"internalType":"uint256","name":"endIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"lookup","outputs":[{"internalType":"contract IMaverickV2Pool[]","name":"pools","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"IMaverickV2Factory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Pool.json b/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Pool.json deleted file mode 100644 index 84af825..0000000 --- a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Pool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMaverickV2Factory"}],"stateMutability":"view"},{"type":"function","name":"fee","inputs":[{"name":"tokenAIn","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getState","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IMaverickV2Pool.State","components":[{"name":"reserveA","type":"uint128","internalType":"uint128"},{"name":"reserveB","type":"uint128","internalType":"uint128"},{"name":"lastTwaD8","type":"int64","internalType":"int64"},{"name":"lastLogPriceD8","type":"int64","internalType":"int64"},{"name":"lastTimestamp","type":"uint40","internalType":"uint40"},{"name":"activeTick","type":"int32","internalType":"int32"},{"name":"isLocked","type":"bool","internalType":"bool"},{"name":"binCounter","type":"uint32","internalType":"uint32"},{"name":"protocolFeeRatioD3","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"params","type":"tuple","internalType":"struct IMaverickV2Pool.SwapParams","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"tokenAIn","type":"bool","internalType":"bool"},{"name":"exactOutput","type":"bool","internalType":"bool"},{"name":"tickLimit","type":"int32","internalType":"int32"}]},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"tokenA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"tokenB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"factory()":"c45a0155","fee(bool)":"2d9d1ca6","getState()":"1865c57d","swap(address,(uint256,bool,bool,int32),bytes)":"3eece7db","tokenA()":"0fc63d10","tokenB()":"5f64b55b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"tokenAIn\",\"type\":\"bool\"}],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"reserveA\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"reserveB\",\"type\":\"uint128\"},{\"internalType\":\"int64\",\"name\":\"lastTwaD8\",\"type\":\"int64\"},{\"internalType\":\"int64\",\"name\":\"lastLogPriceD8\",\"type\":\"int64\"},{\"internalType\":\"uint40\",\"name\":\"lastTimestamp\",\"type\":\"uint40\"},{\"internalType\":\"int32\",\"name\":\"activeTick\",\"type\":\"int32\"},{\"internalType\":\"bool\",\"name\":\"isLocked\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"binCounter\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"protocolFeeRatioD3\",\"type\":\"uint8\"}],\"internalType\":\"struct IMaverickV2Pool.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"tokenAIn\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"exactOutput\",\"type\":\"bool\"},{\"internalType\":\"int32\",\"name\":\"tickLimit\",\"type\":\"int32\"}],\"internalType\":\"struct IMaverickV2Pool.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenA\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenB\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"IMaverickV2Pool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IMaverickV2Factory","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"tokenAIn","type":"bool"}],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getState","outputs":[{"internalType":"struct IMaverickV2Pool.State","name":"","type":"tuple","components":[{"internalType":"uint128","name":"reserveA","type":"uint128"},{"internalType":"uint128","name":"reserveB","type":"uint128"},{"internalType":"int64","name":"lastTwaD8","type":"int64"},{"internalType":"int64","name":"lastLogPriceD8","type":"int64"},{"internalType":"uint40","name":"lastTimestamp","type":"uint40"},{"internalType":"int32","name":"activeTick","type":"int32"},{"internalType":"bool","name":"isLocked","type":"bool"},{"internalType":"uint32","name":"binCounter","type":"uint32"},{"internalType":"uint8","name":"protocolFeeRatioD3","type":"uint8"}]}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct IMaverickV2Pool.SwapParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"tokenAIn","type":"bool"},{"internalType":"bool","name":"exactOutput","type":"bool"},{"internalType":"int32","name":"tickLimit","type":"int32"}]},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"IMaverickV2Pool"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Quoter.json b/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Quoter.json deleted file mode 100644 index 7234df3..0000000 --- a/evm/out/MaverickV2SwapAdapter.sol/IMaverickV2Quoter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"calculateSwap","inputs":[{"name":"pool","type":"address","internalType":"contract IMaverickV2Pool"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"tokenAIn","type":"bool","internalType":"bool"},{"name":"exactOutput","type":"bool","internalType":"bool"},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"calculateSwap(address,uint128,bool,bool,int32)":"49b59311"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMaverickV2Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"tokenAIn\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"exactOutput\",\"type\":\"bool\"},{\"internalType\":\"int32\",\"name\":\"tickLimit\",\"type\":\"int32\"}],\"name\":\"calculateSwap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasEstimate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"IMaverickV2Quoter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMaverickV2Pool","name":"pool","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bool","name":"tokenAIn","type":"bool"},{"internalType":"bool","name":"exactOutput","type":"bool"},{"internalType":"int32","name":"tickLimit","type":"int32"}],"stateMutability":"nonpayable","type":"function","name":"calculateSwap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"IMaverickV2Quoter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.sol/IWETH9.json b/evm/out/MaverickV2SwapAdapter.sol/IWETH9.json deleted file mode 100644 index fe4f813..0000000 --- a/evm/out/MaverickV2SwapAdapter.sol/IWETH9.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit()\":{\"notice\":\"Deposit ether to get wrapped ether\"},\"withdraw(uint256)\":{\"notice\":\"Withdraw wrapped ether to get ether\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"IWETH9\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"deposit()":{"notice":"Deposit ether to get wrapped ether"},"withdraw(uint256)":{"notice":"Withdraw wrapped ether to get ether"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"IWETH9"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.sol/MaverickV2SwapAdapter.json b/evm/out/MaverickV2SwapAdapter.sol/MaverickV2SwapAdapter.json deleted file mode 100644 index 05c0e70..0000000 --- a/evm/out/MaverickV2SwapAdapter.sol/MaverickV2SwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"},{"name":"_quoter","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMaverickV2Factory"}],"stateMutability":"view"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maverickV2SwapCallback","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"calculatedPrices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"priceAt","inputs":[{"name":"pool","type":"address","internalType":"contract IMaverickV2Pool"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"sellAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"calculatedPrice","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMaverickV2Quoter"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60c03461009a57601f61138538819003918201601f19168301916001600160401b0383118484101761009e57808492604094855283398101031261009a57610052602061004b836100b2565b92016100b2565b6001600160a01b039182166080521660a0526040516112be90816100c78239608051818181610233015281816105ef01526108ac015260a0518181816101ef0152610db90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361009a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b0033","sourceMap":"339:7554:60:-:0;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;339:7554:60;;;807:38;;339:7554;;855:35;339:7554;;;;;;;;807:38;339:7554;;;;;;;;;;;;;;;855:35;339:7554;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;-1:-1:-1;339:7554:60;;;;;-1:-1:-1;339:7554:60;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b0033","sourceMap":"339:7554:60:-:0;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;;;;;:::i;:::-;7295:1;339:7554;;;;;;;;;;;;;;;;;;7401:13;;339:7554;7401:13;339:7554;7401:13;;;;;;;;;339:7554;7401:13;339:7554;7401:13;339:7554;7401:13;;;339:7554;-1:-1:-1;;;;;;339:7554:60;7381:34;;;:::i;:::-;339:7554;;;-1:-1:-1;;;7445:13:60;;339:7554;;;;;7445:13;;;;;;;339:7554;7445:13;;;339:7554;-1:-1:-1;339:7554:60;;;-1:-1:-1;;;;;339:7554:60;7425:34;339:7554;7425:34;:::i;:::-;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;7445:13;;;;339:7554;7445:13;339:7554;7445:13;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;339:7554;;;;;;;;;7401:13;;;;;;;;;;;;;;:::i;:::-;;;;339:7554;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;474:41;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;425:43;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1325:13;339:7554;1369:3;339:7554;;1340:27;;;;;1435:19;1410:45;1435:19;339:7554;1435:19;;;:::i;:::-;339:7554;1410:45;;;:::i;:::-;1388:67;;;;:::i;:::-;;;;;;:::i;:::-;;339:7554;1325:13;;1340:27;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6397:15;339:7554;;;:::i;:::-;;;;;;;;;;;;;;6397:15;;339:7554;;6397:15;;;;;;;339:7554;6397:15;;;339:7554;;;;;;;;;:::i;:::-;6446:1;339:7554;;;;;;;;;;;;;6508:14;;;339:7554;-1:-1:-1;;;;;339:7554:60;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;6536:20;339:7554;;;6572:14;;;:::i;:::-;339:7554;6600:14;;;:::i;:::-;339:7554;6532:166;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;6532:166;6645:14;;;;:::i;:::-;339:7554;6673:14;;;:::i;:::-;339:7554;6532:166;;;6397:15;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;339:7554;;;;;;-1:-1:-1;;339:7554:60;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5871:50:60;;5909:10;339:7554;5871:50;;339:7554;;;;;5871:7;-1:-1:-1;;;;;339:7554:60;5871:50;;;;;;;339:7554;5871:50;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:53:32;;339:7554:60;;;;1829:53:32;;339:7554:60;1829:53:32;;339:7554:60;5909:10;339:7554;;;;;;;;;;;1829:53:32;;;;;;:::i;:::-;3256:31:33;;;;;;339:7554:60;;;;;;;;;;3304:55:33;339:7554:60;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3304:55:33;;:::i;:::-;339:7554:60;;6960:22:32;;;;:57;;;;339:7554:60;6956:135:32;;;;339:7554:60;6956:135:32;7040:40;;;339:7554:60;7040:40:32;339:7554:60;;;;7040:40:32;6960:57;6987:30;;;;339:7554:60;6987:30:32;;;339:7554:60;;;;;;6987:30:32;;339:7554:60;:::i;:::-;6986:31:32;6960:57;;;;339:7554:60;;;;;;;;;;;;;3304:55:33;339:7554:60;;;;;;;;-1:-1:-1;;;339:7554:60;;;;;;;;;;;;-1:-1:-1;;;339:7554:60;;;;;;;5871:50;;;339:7554;5871:50;;339:7554;5871:50;;;;;;339:7554;5871:50;;;:::i;:::-;;;339:7554;;;;;;;:::i;:::-;5871:50;;;;;;-1:-1:-1;5871:50:60;;339:7554;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;6939:1;339:7554;;;;;;;;;6969:20;6951:38;;;:::i;:::-;339:7554;7017:19;6999:37;;;:::i;:::-;339:7554;;;7017:19;339:7554;;;;6939:1;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:20;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;;;;;;;;;;;;-1:-1:-1;;;7689:38:60;;339:7554;7689:38;;339:7554;;;;;;;;-1:-1:-1;339:7554:60;7689:38;339:7554;7689:7;-1:-1:-1;;;;;339:7554:60;7689:38;;;;;;;339:7554;7689:38;;;339:7554;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;339:7554:60;;;;;7818:3;339:7554;;7800:16;;;;;339:7554;;-1:-1:-1;;7863:8:60;339:7554;7863:8;;:::i;:::-;339:7554;;;;7837:37;;;;:::i;:::-;339:7554;;7785:13;;7800:16;;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;;7689:38;;;;;339:7554;7689:38;;;;;;:::i;:::-;;;339:7554;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7689:38;;;;;;339:7554;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;339:7554:60;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;339:7554:60;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;339:7554:60;;-1:-1:-1;;339:7554:60;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;339:7554:60;;;;;:::o;1846:569::-;;;;339:7554;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;;;2053:13:60;;-1:-1:-1;;;;;339:7554:60;;;;;;2053:13;339:7554;2053:13;339:7554;;2053:13;;;;;;;-1:-1:-1;2053:13:60;;;1846:569;-1:-1:-1;;;;;;339:7554:60;;;;;2032:35;2096:104;;;;339:7554;;-1:-1:-1;;;2121:15:60;;;339:7554;2053:13;339:7554;2121:15;;;;;;;:26;:32;:15;-1:-1:-1;;;;;2121:15:60;-1:-1:-1;2121:15:60;;;2096:104;2121:26;;339:7554;;;2121:32;:::i;:::-;2096:104;;339:7554;;;;;;2251:99;;2053:13;2251:99;;339:7554;;;;;;;;;;-1:-1:-1;339:7554:60;;;;;;;;;;;;2251:99;339:7554;-1:-1:-1;339:7554:60;;;;;2251:6;339:7554;2251:99;;;;;;;-1:-1:-1;;;2251:99:60;;;2096:104;339:7554;;;;;;;:::i;:::-;;;2053:13;2379:29;;339:7554;1846:569;:::o;2251:99::-;;;;339:7554;2251:99;;339:7554;2251:99;;;;;;339:7554;2251:99;;;:::i;:::-;;;339:7554;;;;2053:13;339:7554;;;;;2251:99;;;;;;;-1:-1:-1;2251:99:60;;2121:15;;;;;;;;;;;;;;:::i;:::-;;;;2096:104;339:7554;;-1:-1:-1;;;2168:15:60;;;339:7554;2053:13;339:7554;2168:15;;;;;;;:26;:32;:15;-1:-1:-1;;;;;2168:15:60;-1:-1:-1;2168:15:60;;;2096:104;2168:26;;339:7554;;;2168:32;:::i;:::-;2096:104;;;2168:15;;;;;;;;;;;;;;:::i;:::-;;;;2053:13;;;;;;;;;;;;;;:::i;:::-;;;;339:7554;;;;;;;;;:::o;:::-;;;6969:20;339:7554;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;2454:1069::-;;;339:7554;;;;;;;;;;;;;;;;;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;;:::i;:::-;-1:-1:-1;339:7554:60;;-1:-1:-1;339:7554:60;;;;;;;;2626:18;2660:20;;2656:63;;339:7554;;;;;;;;;2842:13;;339:7554;2842:13;;;;;;;;;;;-1:-1:-1;2842:13:60;;;2454:1069;-1:-1:-1;;;;;;339:7554:60;;;;;2821:35;2884:104;;;;339:7554;;-1:-1:-1;;;2909:15:60;;;339:7554;2842:13;339:7554;2909:15;;;;;;;;:32;:15;:26;:15;-1:-1:-1;2909:15:60;;;:26;;339:7554;;;2909:32;:::i;:::-;2884:104;;3018:9;339:7554;;;;;;;3050:13;3042:21;3050:13;;339:7554;;;4406:39;339:7554;;;;;;;:::i;:::-;;;;4088:187;;339:7554;3050:13;4088:187;;;339:7554;;;;4088:187;;339:7554;;;4363:10;;339:7554;4352:22;;339:7554;;4352:22;;;;;;:::i;:::-;339:7554;;-1:-1:-1;;;4406:39:60;;339:7554;;;;;4363:10;2842:13;4406:39;;;:::i;:::-;;;-1:-1:-1;4406:39:60;;;;;;;;3197:48;4406:39;-1:-1:-1;4406:39:60;;;3038:409;339:7554;;;;3197:48;:::i;:::-;339:7554;3183:11;;:62;3038:409;3485:9;339:7554;;;;;;;;3457:13;;339:7554;2454:1069;:::o;4406:39::-;;;;;339:7554;4406:39;339:7554;4406:39;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3038:409;339:7554;;5361:39;339:7554;;;;;;;;;:::i;:::-;;;;;5040:188;;339:7554;-1:-1:-1;5040:188:60;;;339:7554;;;;5040:188;;339:7554;;;5316:10;;339:7554;5305:22;;339:7554;;5305:22;;;;;;:::i;:::-;339:7554;;-1:-1:-1;;;5361:39:60;;339:7554;;;;;5316:10;2842:13;5361:39;;;:::i;:::-;;;-1:-1:-1;5361:39:60;;;;;;;3395:41;339:7554;-1:-1:-1;5361:39:60;;;3038:409;339:7554;;;3395:41;:::i;:::-;339:7554;3381:11;;:55;3038:409;;5361:39;;;;339:7554;5361:39;339:7554;5361:39;;;;;;;:::i;:::-;;;;;;2884:104;339:7554;;-1:-1:-1;;;2956:15:60;;;339:7554;2842:13;339:7554;2956:15;;;;;;;;:32;:15;:26;:15;-1:-1:-1;2956:15:60;;;:26;;339:7554;;;2956:32;:::i;:::-;2884:104;;;2842:13;;;;339:7554;2842:13;339:7554;2842:13;;;;;;;:::i;:::-;;;;2656:63;2696:12;;;;;;;:::o;339:7554::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;339:7554:60;;;;:::o;4421:582:33:-;;4593:8;;-1:-1:-1;339:7554:60;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;339:7554:60;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;339:7554:60;;;;4917:24:33;339:7554:60;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"66057":[{"start":563,"length":32},{"start":1519,"length":32},{"start":2220,"length":32}],"66060":[{"start":495,"length":32},{"start":3513,"length":32}]}},"methodIdentifiers":{"factory()":"c45a0155","getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","maverickV2SwapCallback(address,uint256,uint256,bytes)":"67ca7c91","price(bytes32,address,address,uint256[])":"aad6e488","priceAt(address,address,uint256)":"212dd070","quoter()":"c6bbd5a7","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_quoter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"maverickV2SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"calculatedPrices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMaverickV2Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"}],\"name\":\"priceAt\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"calculatedPrice\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quoter\",\"outputs\":[{\"internalType\":\"contract IMaverickV2Quoter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_quoter\":\"The address of the MaverickV2 quoter.\",\"factory_\":\"The address of the MaverickV2 factory.\"}},\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"maverickV2SwapCallback(address,uint256,uint256,bytes)\":{\"params\":{\"amountIn\":\"The amount of the token being swapped.\",\"data\":\"The data passed to the callback.\",\"tokenIn\":\"The token being swapped.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"calculatedPrices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"priceAt(address,address,uint256)\":{\"params\":{\"pool\":\"The pool to calculate the price for.\",\"sellAmount\":\"The amount of the token to calculate the price for.\",\"sellToken\":\"The token to calculate the price for.\"},\"returns\":{\"calculatedPrice\":\"The calculated price of the token.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"MaverickV2SwapAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the adapter with factory, quoter, and WETH addresses.\"},\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"maverickV2SwapCallback(address,uint256,uint256,bytes)\":{\"notice\":\"MaverickV2SwapCallback is the callback function for MaverickV2 pools.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"priceAt(address,address,uint256)\":{\"notice\":\"Calculate the price of a token at a specified amount.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"notice\":\"Adapter for swapping tokens on MaverickV2 pools.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/maverick-v2/MaverickV2SwapAdapter.sol\":\"MaverickV2SwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"address","name":"_quoter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IMaverickV2Factory","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"maverickV2SwapCallback"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"calculatedPrices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"contract IMaverickV2Pool","name":"pool","type":"address"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"uint256","name":"sellAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"priceAt","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"calculatedPrice","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quoter","outputs":[{"internalType":"contract IMaverickV2Quoter","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_quoter":"The address of the MaverickV2 quoter.","factory_":"The address of the MaverickV2 factory."}},"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"maverickV2SwapCallback(address,uint256,uint256,bytes)":{"params":{"amountIn":"The amount of the token being swapped.","data":"The data passed to the callback.","tokenIn":"The token being swapped."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"calculatedPrices":"array of prices as fractions corresponding to the provided amounts."}},"priceAt(address,address,uint256)":{"params":{"pool":"The pool to calculate the price for.","sellAmount":"The amount of the token to calculate the price for.","sellToken":"The token to calculate the price for."},"returns":{"calculatedPrice":"The calculated price of the token."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor to initialize the adapter with factory, quoter, and WETH addresses."},"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"maverickV2SwapCallback(address,uint256,uint256,bytes)":{"notice":"MaverickV2SwapCallback is the callback function for MaverickV2 pools."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"priceAt(address,address,uint256)":{"notice":"Calculate the price of a token at a specified amount."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/maverick-v2/MaverickV2SwapAdapter.sol":"MaverickV2SwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"}},"version":1},"id":60} \ No newline at end of file diff --git a/evm/out/MaverickV2SwapAdapter.t.sol/MaverickV2SwapAdapterTest.json b/evm/out/MaverickV2SwapAdapter.t.sol/MaverickV2SwapAdapterTest.json deleted file mode 100644 index 5069c9c..0000000 --- a/evm/out/MaverickV2SwapAdapter.t.sol/MaverickV2SwapAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilities","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetLimits","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetPoolIds","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testGetTokens","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testMavV2PoolBehaviour","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPrice","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceDecreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzz","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuy","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzz","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSell","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f51602061a7a45f395f51905f52915b600482106100f75760405161a46e90816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f51602061a7a45f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610160806040526004361015610013575f80fd5b5f905f3560e01c90816308c41745146156b1575080630a9254e41461514a578063111f33921461460d5780631c6e35e414613d525780631e1e26fa146133ae5780631ed7831c146133305780632ade3880146131715780633e5e3c23146130f35780633f7286f4146130755780634a36e37214612e9f5780634b13c57114612d825780635cca77b214612d2c57806366d9a9a014612b7e5780637f55213e14611cd35780638335a17f14611beb57806385226c8114611b595780638f1ed4c6146119c5578063916a17c61461173957806399cef81b14611571578063a00872f114611505578063a502846b146111c7578063b5508aa91461112e578063ba414fa614611109578063d170c3cc14611067578063d3479a0114610eed578063e20c9f7114610e5f578063fa7626d414610e3c5763fe3ee58b14610153575f80fd5b34610aa55780600319360112610aa55780610160906040516101758382615720565b600a8152601f19830180366020840137845b600a8110610dbb5750828060405160208101906370a0823160e01b8252306024820152602481526101b9604482615720565b51905f51602061a4195f395f51905f525afa506101e66101d7617e24565b60208082518301019101615ab1565b506101ef615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c615761022481600161023d9301600e556158b5565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549061025c61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908188526020526040872060405160208101906102ae816102a0888886618087565b03601f198101835282615720565b519020885260205260ff60036040892001541615610dad575b6001600160a01b0384165f908152600d602052604090209087526020526102a06103006040882093604051928391602083019586618087565b5190208552602052604084209060018201549160028101546103228185615d3d565b610cd5575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996610ca1575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528681606481835f51602061a3995f395f51905f525af18015610ad3578790610c8a575b5050610404618257565b9015908115610c75575b506109c35750505061041e618d3e565b828060405160208101906370a0823160e01b825230602482015260248152610447604482615720565b51905f51602061a3b95f395f51905f525afa506104656101d7617e24565b5061046e615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c61576102248160016104a39301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906104c261809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190610506816102a0888886618087565b519020885260205260ff60036040892001541615610c53575b6001600160a01b0384165f908152600d602052604090209087526020526102a06105586040882093604051928391602083019586618087565b51902085526020526040842090600182015491600281015461057a8185615d3d565b610b21575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996610ae2575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528681606481835f51602061a3995f395f51905f525af18015610ad3578790610ab8575b5050610657618257565b9015908115610aa8575b506109c357505050610671618d3e565b61067e6040519485615720565b600a8452825b8181106109ac575050815b600a81106107c057505060015b600981106106a8578380f35b6106b28184615d77565b515160018201908183116107ac57906106da610724926106d28388615d77565b515190617dd5565b61070160206106e98588615d77565b51015160206106f88489615d77565b51015190617dd5565b604061071b816107118689615d77565b5101519287615d77565b510151906163f2565b820b5f51602061a3995f395f51905f523b156107a8576040519063fe74f05b60e01b825260048201526001602482015282816044815f51602061a3995f395f51905f525afa801561079d57908391610781575b505060010161069c565b9061078b91615720565b81841261079957815f610777565b5080fd5b6040513d85823e3d90fd5b8280fd5b634e487b7160e01b84526011600452602484fd5b604051634b88b8ad60e11b8152602081600481875f51602061a3995f395f51905f525af1908115610917578491610977575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481885f51602061a3b95f395f51905f525af180156109505761095b575b50602054849060809061087f906001600160a01b03166108608688615d77565b51604051948580948193638307c65560e01b8352600160048401615b7b565b03925af1908115610950578591610922575b5061089c8387615d77565b526108a78286615d77565b5060405190631135fc2960e21b82526004820152602081602481875f51602061a3995f395f51905f525af180156109175790600192916108e9575b500161068f565b6109099060203d8111610910575b6109018183615720565b810190615b02565b505f6108e2565b503d6108f7565b6040513d86823e3d90fd5b610943915060803d8111610949575b61093b8183615720565b810190615b42565b5f610891565b503d610931565b6040513d87823e3d90fd5b6109729060203d8111610910576109018183615720565b610840565b90506020813d82116109a4575b8161099160209383615720565b810103126109a057515f6107f2565b5f80fd5b3d9150610984565b6020906109b76162fc565b82828801015201610684565b85809392899254905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019390935282606481835f51602061a3995f395f51905f525af1801561079d57610a8e575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610a99838093615720565b12610aa5578080610a2d565b80fd5b64174876e800915014155f610661565b610ac191615720565b858812610acf575f8661064d565b8580fd5b6040513d89823e3d90fd5b8880fd5b9095506020813d602011610b0e575b81610afe60209383615720565b810103126109a0575194816105cc565b3d9150610af1565b6040513d8b823e3d90fd5b610b2b8185615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b60405163348051d760e11b815281600482015288816024815f51602061a3995f395f51905f525afa908115610b1657606a60209392610be3928c91610c1d575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f198101845283615720565b64174876e8001015610bf5575061057f565b60405162461bcd60e51b815260206004820152908190610c19906024830190615783565b0390fd5b610c3991503d808e833e610c318183615720565b810190615a4f565b5f610b84565b634e487b7160e01b88526011600452602488fd5b610c5b618474565b5061051f565b634e487b7160e01b84526041600452602484fd5b69152d02c7e14af6800000915014155f61040e565b610c9391615720565b858812610acf575f866103fa565b9095506020813d602011610ccd575b81610cbd60209383615720565b810103126109a057519481610374565b3d9150610cb0565b610cdf8185615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b60405163348051d760e11b815281600482015288816024815f51602061a3995f395f51905f525afa908115610b1657606a60209392610d96928c91610c1d57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf55750610327565b610db5618474565b506102c7565b9280610e285750849260018101808211610e14578060640290606482048103610c3f5768056bc75e2d631000000290808204670de0b6b3a76400001490151715610e145790600191610e0d8286615d77565b5201610187565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b81526021600452602490fd5b5034610aa55780600319360112610aa557602060ff601e54166040519015158152f35b5034610aa55780600319360112610aa55760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610ece57610eca85610ebe81870382615720565b60405191829182615741565b0390f35b82546001600160a01b0316845260209093019260019283019201610ea7565b5034610aa55780600319360112610aa55760205460405163549387df60e11b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561105c5761103791610fe391849161103a575b50610f7d815161651f565b610fde610f8982615d4a565b5160405190610f99606083615720565b602d82527f4c696d697420666f722073656c6c20746f6b656e2073686f756c64206265206760208301526c0726561746572207468616e203609c1b604083015261634a565b615d57565b5160405190610ff3606083615720565b602c82527f4c696d697420666f722062757920746f6b656e2073686f756c6420626520677260208301526b06561746572207468616e20360a41b604083015261634a565b80f35b61105691503d8086833e61104e8183615720565b810190615f83565b5f610f72565b6040513d84823e3d90fd5b5034610aa5576040366003190112610aa557600435906001600160a01b0382168203610aa5576024356001600160401b0381116107995736602382011215610799578060040135926110b8846159b2565b916110c66040519384615720565b8483526024602084019560051b8201019036821161110557602401945b8186106110f55784611037858561617e565b85358152602095860195016110e3565b8480fd5b5034610aa55780600319360112610aa55760206111246160e3565b6040519015158152f35b5034610aa55780600319360112610aa55760195461114b816159b2565b916111596040519384615720565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061119b5760405180610eca8782615856565b6001602081926040516111b9816111b28189615931565b0382615720565b815201920192019190611186565b5034610aa5576040366003190112610aa5578060043560243560018060a01b036020541660405163549387df60e11b81527314cf6d2fe3e1b326114b07d22a6f6bb59e346c6760601b60048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f5260448201528481606481855afa9081156109505785916114eb575b5061125b81615d4a565b5184105f51602061a3995f395f51905f523b15610acf5760405190632631f2b160e11b8252600482015285816024815f51602061a3995f395f51905f525afa9081156114e05786916114cb575b50506112b390615d4a565b5182105f51602061a3995f395f51905f523b156111055760405190632631f2b160e11b8252600482015284816024815f51602061a3995f395f51905f525afa9081156109505785916114b6575b50505f51602061a3995f395f51905f523b1561149c57604051632631f2b160e11b8152662386f26fc100008411600482015284816024815f51602061a3995f395f51905f525afa9081156109505785916114a1575b50505f51602061a3995f395f51905f523b1561149c57604051632631f2b160e11b8152662386f26fc10000831160048201529284846024815f51602061a3995f395f51905f525afa928315610950578593611483575b6113fc939450604051916113c0606084615720565b6002835260403660208501376113d583615d4a565b526113df82615d57565b5260405195868094819363155adc9160e31b835260048301615e0f565b03925af1918215611476578192611452575b50805b825181101561144e578061143161142a60019386615d77565b5151616430565b61144860206114408387615d77565b510151616430565b01611411565b5080f35b61146f9192503d8084833e6114678183615720565b810190615d8b565b905f61140e565b50604051903d90823e3d90fd5b9290938161149091615720565b61149c578284926113ab565b505050fd5b816114ab91615720565b61149c57835f611355565b816114c091615720565b61149c57835f611300565b816114d591615720565b61110557845f6112a8565b6040513d88823e3d90fd5b6114ff91503d8087833e61104e8183615720565b5f611251565b5034610aa5576020366003190112610aa557600435601f548110156107995761152d906158e1565b91909161155d57604051610eca90611549816111b28187615931565b604051918291602083526020830190615783565b634e487b7160e01b81526004819052602490fd5b5034610aa55780600319360112610aa5576020546040516323eeca0160e01b815260048101839052600a6024820152908290829060449082906001600160a01b03165afa90811561105c5782916116f8575b50818151604051906115d6606083615720565b603882527f4e756d626572206f6620706f6f6c204944732073686f756c64206265206c657360208301527f73207468616e206f7220657175616c20746f206c696d6974000000000000000060408301525f51602061a3995f395f51905f523b156107a85761166f918391604051938492839263d17d4b0d60e01b84526004840152600a6024840152606060448401526064830190615783565b03815f51602061a3995f395f51905f525afa801561105c576116e3575b50508051611698575080f35b6116a461103791615d4a565b51604051906116b4604083615720565b602082527f506f6f6c2049442073686f756c642062652067726561746572207468616e2030602083015261634a565b816116ed91615720565b61079957815f61168c565b90503d8083833e6117098183615720565b81016020828203126107a85781516001600160401b0381116117355761172f9201616086565b5f6115c3565b8380fd5b5034610aa55780600319360112610aa557601c54611756816159b2565b906117646040519283615720565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106117a75760405180610eca87826157a7565b6040516117b3816156ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611926578460019794600297946020979461183e94549181811061190a575b8181106118ee575b8181106118d2575b8181106118b6575b81811061189a575b81811061187e575b818110611864575b10611850575b500382615720565b83820152815201920192019190611792565b6001600160e01b031916815286015f611836565b828a1b6001600160e01b0319168452928901928b01611830565b604083901b6001600160e01b0319168452928901928b01611828565b606083901b6001600160e01b0319168452928901928b01611820565b608083901b6001600160e01b0319168452928901928b01611818565b60a083901b6001600160e01b0319168452928901928b01611810565b60c083901b6001600160e01b0319168452928901928b01611808565b60e083901b6001600160e01b0319168452928901928b01611800565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117db565b5034610aa55780600319360112610aa55760205460405163ecbbc03360e01b81525f51602061a3d95f395f51905f52600482015282918290829060249082906001600160a01b03165afa90811561105c578291611b37575b50611a28815161651f565b6001600160a01b03611a3982615d4a565b51165f51602061a3995f395f51905f523b15611b3357604051906328a9b0fb60e11b825260048201525f51602061a4195f395f51905f52602482015282816044815f51602061a3995f395f51905f525afa90811561079d578391611b1e575b506001600160a01b0391611aac9150615d57565b51165f51602061a3995f395f51905f523b15611b1b57604051906328a9b0fb60e11b825260048201525f51602061a3b95f395f51905f52602482015281816044815f51602061a3995f395f51905f525afa801561105c57611b0a5750f35b81611b1491615720565b610aa55780f35b50fd5b81611b2891615720565b611b1b57815f611a98565b5050fd5b611b5391503d8084833e611b4b8183615720565b810190615ffc565b5f611a1d565b5034610aa55780600319360112610aa557601a54611b76816159b2565b91611b846040519384615720565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611bc65760405180610eca8782615856565b600160208192604051611bdd816111b28189615931565b815201920192019190611bb1565b5034610aa55780600319360112610aa55760408180611c5c8351611c0f8582615720565b60018152601f198501366020830137678ac7230489e80000611c3082615d4a565b52602054855163155adc9160e31b81529485936001600160a01b03909216928492839160048301615e0f565b03925af1918215611cca5750611ca5611037926020928591611cb0575b50611c8481516164cf565b611ca0611c9082615d4a565b5151611c9a615c5e565b9061634a565b615d4a565b510151611c9a615caa565b611cc491503d8087833e6114678183615720565b5f611c79565b513d84823e3d90fd5b5034610aa5576040366003190112610aa5576004359060243580151581036107995715612b785760015b60205460405163549387df60e11b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908390829060649082906001600160a01b03165afa90811561079d578391612b5e575b506002821015612b4a57600182149081156126a65792611d8c8195929394615d57565b5182105f51602061a3995f395f51905f523b156107995760405190632631f2b160e11b8252600482015281816024815f51602061a3995f395f51905f525afa801561105c57612691575b508060405160208101906370a0823160e01b825230602482015260248152611dff604482615720565b51905f51602061a4195f395f51905f525afa50611e1d6101d7617e24565b50611e26615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d5790611e5e61022483600188969501600e556158b5565b905560018060a01b0360115416600f5460e01b60105490611e7d61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190611ec1816102a0888886618087565b519020885260205260ff6003604089200154161561266f575b6001600160a01b0384165f908152600d602052604090209087526020526102a0611f136040882093604051928391602083019586618087565b519020855260205260408420906001820154916002810154611f358185615d3d565b612559578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996612520575b506001908201610100031b5f1901811b1985165f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528681606481835f51602061a3995f395f51905f525af1908115610ad357879161250b575b505061200a618257565b90159081156124ff575b5061241c57505050612024618d3e565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481875f51602061a4195f395f51905f525af18015610917576123fd575b505b6040516370a0823160e01b8152306004820152916020836024815f51602061a3b95f395f51905f525afa9283156109175784936123c6575b506040516370a0823160e01b8152306004820152946020866024815f51602061a4195f395f51905f525afa95861561095057859661238d575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f5260448201526064810192909252608482018490529094608091869160a4918391906001600160a01b03165af19384156114e057869461236c575b50835161216a578580f35b15612271576040516370a0823160e01b81523060048201526020816024815f51602061a3b95f395f51905f525afa9081156114e057869161223d575b506121ba926121b491615ee6565b9061656f565b516040516370a0823160e01b81523060048201526020816024815f51602061a4195f395f51905f525afa908115610917578491612209575b506121b49061220093615ee6565b5f808080808580f35b90506020813d602011612235575b8161222460209383615720565b810103126109a057516122006121f2565b3d9150612217565b90506020813d602011612269575b8161225860209383615720565b810103126109a057516121ba6121a6565b3d915061224b565b6040516370a0823160e01b81523060048201529193916020816024815f51602061a4195f395f51905f525afa9081156114e0578691612338575b506121b4906122b993615ee6565b516040516370a0823160e01b81523060048201526020816024815f51602061a3b95f395f51905f525afa908115610917578491612304575b506122ff926121b491615ee6565b612200565b90506020813d602011612330575b8161231f60209383615720565b810103126109a057516122ff6122f1565b3d9150612312565b90506020813d602011612364575b8161235360209383615720565b810103126109a057516122b96122ab565b3d9150612346565b61238691945060803d6080116109495761093b8183615720565b925f61215f565b945094506020843d6020116123be575b816123aa60209383615720565b810103126109a057608086945195906120e0565b3d915061239d565b935091506020833d6020116123f5575b816123e360209383615720565b810103126109a057849251915f6120a7565b3d91506123d6565b6124159060203d602011610910576109018183615720565b505f61206d565b92509250935054905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f51602061a3995f395f51905f525af1801561105c576124ea5760405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6124f5828092615720565b610aa55780610a2d565b5f19141590505f612014565b8161251591615720565b610acf57855f612000565b985094506020883d602011612551575b8161253d60209383615720565b810103126109a05796518997909481611f86565b3d9150612530565b612564879185615d3d565b61010003610100811161265b5760ff811161265b5760405163348051d760e11b8152600190911b600482015281816024815f51602061a3995f395f51905f525afa90811561105c57606a6020928461261f93610c19969261263f575b506040519485925f51602061a3f95f395f51905f52828501525f51602061a3795f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615720565b60405162461bcd60e51b8152602060048201529182916024830190615783565b6126549192503d8084833e610c318183615720565b90866125c0565b634e487b7160e01b82526011600452602482fd5b612677618474565b50611eda565b634e487b7160e01b85526041600452602485fd5b8161269b91615720565b61173557835f611dd6565b6126af90615d4a565b5184105f51602061a3995f395f51905f523b156117355760405190632631f2b160e11b8252600482015283816024815f51602061a3995f395f51905f525afa801561091757908491612b35575b508060405160208101906370a0823160e01b825230602482015260248152612725604482615720565b51905f51602061a4195f395f51905f525afa506127436101d7617e24565b5061274c615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c61576102248160016127819301600e556158b5565b905560018060a01b036011541693600f5460e01b601054906127a161809e565b6001600160a01b0388165f908152600d60205260409020909163ffffffff60e01b16908188526020526040872060405160208101906127e5816102a0888886618087565b519020885260205260ff60036040892001541615612b27575b6001600160a01b0388165f908152600d602052604090209087526020526102a06128376040882093604051928391602083019586618087565b5190208552602052604084209460018601549060028701549661285a8884615d3d565b612a1b575b8054604051630667f9d760e41b81526001600160a01b03841660048201526024810182905297989697899790946020866044815f51602061a3995f395f51905f525afa958615610b165789966129e2575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528681606481835f51602061a3995f395f51905f525af1908115610ad35787916129cd575b505083612938618257565b9190159182156129c2575b505061241c57505050612954618d3e565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481875f51602061a4195f395f51905f525af18015610917576129a3575b5061206f565b6129bb9060203d602011610910576109018183615720565b505f61299d565b14159050845f612943565b816129d791615720565b610acf57855f61292d565b985094506020883d602011612a13575b816129ff60209383615720565b810103126109a057965189979094816128b0565b3d91506129f2565b612a258884615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b976040519863348051d760e11b8a528060048b0152888a6024815f51602061a3995f395f51905f525afa998a15610b1657606a60209b612ade928c91612b0d575b506040519c8d915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f1981018c528b615720565b851015612aec57975061285f565b60405162461bcd60e51b81526020600482015280610c19602482018c615783565b612b2191503d808e833e610c318183615720565b5f612a7f565b612b2f618474565b506127fe565b81612b3f91615720565b6107a857825f6126fc565b634e487b7160e01b83526021600452602483fd5b612b7291503d8085833e61104e8183615720565b5f611d69565b80611cfd565b5034610aa55780600319360112610aa557601b54612b9b816159b2565b90612ba96040519283615720565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310612bec5760405180610eca87826157a7565b604051612bf8816156ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110612c8d5784600197946002979460209794612c7b94549181811061190a578181106118ee578181106118d2578181106118b65781811061189a5781811061187e57818110611864571061185057500382615720565b83820152815201920192019190612bd7565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612c20565b5034610aa55780600319360112610aa557611037604051612d4e604082615720565b60018152602036818301375f51602061a3d95f395f51905f52612d7082615d4a565b526020546001600160a01b031661617e565b5034610aa55780600319360112610aa5576020546040516348bd7dfd60e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561105c578291612e7d575b50612e0a815161647f565b612e1b612e1682615d4a565b615f76565b600a811015612b4a57612e2d906164cf565b612e39612e1682615d57565b600a811015612b4a57612e5791612e52612e169261651f565b615d67565b600a811015612e69576110379061647f565b634e487b7160e01b82526021600452602482fd5b612e9991503d8084833e612e918183615720565b810190615ef3565b5f612dff565b5034610aa55780600319360112610aa55760405190610160612ec18184615720565b600a8352601f1901366020840137805b600a8110613011575080612f08819360018060a01b03602054169060405194858094819363155adc9160e31b835260048301615e0f565b03925af190811561105c578291612ff7575b50815b60098110612f29578280f35b612f338183615d77565b51906001810191828211612fe357612f578591612f508587615d77565b51906163f2565b810b5f51602061a3995f395f51905f523b156107995760405190630a30b77160e01b825260048201526001602482015281816044815f51602061a3995f395f51905f525afa801561105c57612fce575b5050612fc86020611440600194612fc283611440878a615d77565b86615d77565b01612f1d565b81612fd891615720565b61173557835f612fa7565b634e487b7160e01b85526011600452602485fd5b61300b91503d8084833e6114678183615720565b5f612f1a565b600181018082116130615780606402906064820481036107ac5768056bc75e2d631000000290808204670de0b6b3a76400001490151715613061579060019161305a8286615d77565b5201612ed1565b634e487b7160e01b83526011600452602483fd5b5034610aa55780600319360112610aa55760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106130d457610eca85610ebe81870382615720565b82546001600160a01b03168452602090930192600192830192016130bd565b5034610aa55780600319360112610aa55760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061315257610eca85610ebe81870382615720565b82546001600160a01b031684526020909301926001928301920161313b565b5034610aa55780600319360112610aa557601d5461318e816159b2565b61319b6040519182615720565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b83831061329f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106132075786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613274575050505050602080600192970193019301909286959492936131fa565b9091929394602080613292600193605f198782030189528951615783565b9701950193929101613250565b6040516132ab816156ea565b82546001600160a01b031681526001830180546132c7816159b2565b916132d56040519384615720565b8183528a526020808b20908b9084015b83821061330b5750505050600192826020928360029501528152019201920191906131cb565b600160208192604051613322816111b2818a615931565b8152019301910190916132e5565b5034610aa55780600319360112610aa55760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061338f57610eca85610ebe81870382615720565b82546001600160a01b0316845260209093019260019283019201613378565b5034610aa55780600319360112610aa557808060405160208101906370a0823160e01b8252306024820152602481526133e8604482615720565b51905f51602061a4195f395f51905f525afa506134066101d7617e24565b5061340f615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd3576102248160016134449301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061346361809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906134a7816102a0888886618087565b519020865260205260ff60036040872001541615613d44575b6001600160a01b0384165f908152600d602052604090209085526020526102a06134f96040862093604051928391602083019586618087565b5190208352602052816040812091600183015492600281015461351c8186615d3d565b613c4a575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697613c11575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491613bfc575b50506135ff618257565b9015908115613be7575b50613a0f5782613617618d3e565b808060405160208101906370a0823160e01b825230602482015260248152613640604482615720565b51905f51602061a3b95f395f51905f525afa5061365e6101d7617e24565b50613667615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd35761022481600161369c9301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906136bb61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906136ff816102a0888886618087565b519020865260205260ff60036040872001541615613bc5575b6001600160a01b0384165f908152600d602052604090209085526020526102a06137516040862093604051928391602083019586618087565b519020835260205281604081209160018301549260028101546137748186615d3d565b613abb575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697613a82575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491613a6d575b5050613852618257565b9015908115613a5d575b50613a0f578261386a618d3e565b5f51602061a3995f395f51905f523b15610aa55760405163ca669fa760e01b815230600482015281908181602481835f51602061a3995f395f51905f525af1801561105c576139fa575b50506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481855f51602061a3b95f395f51905f525af1801561105c576139dd575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a3b95f395f51905f5260248201525f51602061a4195f395f51905f5260448201526001606482015268056bc75e2d63100000608482015290608090829060a490829086906001600160a01b03165af190811561105c576110379160209184916139be575b5061399e8151611c9a615c10565b6139b48260408301611ca5815151611c9a615c5e565b0151611c9a615cf8565b6139d7915060803d6080116109495761093b8183615720565b84613990565b6139f59060203d602011610910576109018183615720565b613903565b81613a0491615720565b610aa55780826138b4565b54905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b0390911660048201526024810191909152604481019290925281806064810161246c565b64174876e800915014158661385c565b81613a7791615720565b6107a8578286613848565b955095506020853d602011613ab3575b81613a9f60209383615720565b810103126109a057935194869490816137c6565b3d9150613a92565b90919250613ac98185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a613b81916020948a91613b97575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b64174876e8001015610bf5575090849291613779565b613bab91503d808c833e610c318183615720565b8a613b22565b634e487b7160e01b86526011600452602486fd5b613bcd618474565b50613718565b634e487b7160e01b82526041600452602482fd5b69152d02c7e14af6800000915014155f613609565b81613c0691615720565b6107a857825f6135f5565b955095506020853d602011613c42575b81613c2e60209383615720565b810103126109a0579351948694908161356e565b3d9150613c21565b90919250613c588185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a613d0f916020948a91613d2a57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf5575090849291613521565b613d3e91503d808c833e610c318183615720565b5f613b22565b613d4c618474565b506134c0565b5034610aa55780600319360112610aa557808060405160208101906370a0823160e01b825230602482015260248152613d8c604482615720565b51905f51602061a4195f395f51905f525afa50613daa6101d7617e24565b50613db3615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd357610224816001613de89301600e556158b5565b905560018060a01b0360115416600f5460e01b60105490613e0761809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190613e4b816102a0888886618087565b519020865260205260ff600360408720015416156145ff575b6001600160a01b0384165f908152600d602052604090209085526020526102a0613e9d6040862093604051928391602083019586618087565b51902083526020528160408120916001830154926002810154613ec08186615d3d565b61451f575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e05786976144e6575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af19081156109175784916144d1575b5050613fa3618257565b90159081156144bc575b50613a0f5782613fbb618d3e565b808060405160208101906370a0823160e01b825230602482015260248152613fe4604482615720565b51905f51602061a3b95f395f51905f525afa506140026101d7617e24565b5061400b615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd3576102248160016140409301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061405f61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906140a3816102a0888886618087565b519020865260205260ff600360408720015416156144ae575b6001600160a01b0384165f908152600d602052604090209085526020526102a06140f56040862093604051928391602083019586618087565b519020835260205281604081209160018301549260028101546141188186615d3d565b6143d3575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e057869761439a575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614385575b50506141f6618257565b9015908115614375575b50613a0f578261420e618d3e565b5f51602061a3995f395f51905f523b15610aa55760405163ca669fa760e01b815230600482015281908181602481835f51602061a3995f395f51905f525af1801561105c57614360575b50506020805460405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e8000060248201529081604481855f51602061a4195f395f51905f525af1801561105c57614343575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f52604482015260648101839052678ac7230489e80000608482015290608090829060a490829086906001600160a01b03165af190811561105c576110379160209184916139be575061399e8151611c9a615c10565b61435b9060203d602011610910576109018183615720565b6142aa565b8161436a91615720565b610aa5578082614258565b64174876e8009150141586614200565b8161438f91615720565b6107a85782866141ec565b955095506020853d6020116143cb575b816143b760209383615720565b810103126109a0579351948694908161416a565b3d91506143aa565b909192506143e18185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a614498916020948a91613b9757506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b64174876e8001015610bf557509084929161411d565b6144b6618474565b506140bc565b69152d02c7e14af6800000915014155f613fad565b816144db91615720565b6107a857825f613f99565b955095506020853d602011614517575b8161450360209383615720565b810103126109a05793519486949081613f12565b3d91506144f6565b9091925061452d8185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a6145e4916020948a91613d2a57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf5575090849291613ec5565b614607618474565b50613e64565b5034610aa55780600319360112610aa55761016060405161462e8282615720565b600a8152601f19820180366020840137835b84600a82106150d85780915060405160208101906370a0823160e01b825230602482015260248152614673604482615720565b51905f51602061a4195f395f51905f525afa506146916101d7617e24565b5061469a615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d576102248160016146cf9301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906146ee61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190614732816102a0888886618087565b519020895260205260ff600360408a20015416156150ca575b6001600160a01b0384165f908152600d602052604090209088526020526102a06147846040892093604051928391602083019586618087565b519020865260205284604081209160018301549260028101546147a78186615d3d565b614fea575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697614fb1575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614f9c575b505061488a618257565b9015908115614f87575b50614db557505050506148a5618d3e565b838060405160208101906370a0823160e01b8252306024820152602481526148ce604482615720565b51905f51602061a3b95f395f51905f525afa506148ec6101d7617e24565b506148f5615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d5761022481600161492a9301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061494961809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061498d816102a0888886618087565b519020895260205260ff600360408a2001541615614f79575b6001600160a01b0384165f908152600d602052604090209088526020526102a06149df6040892093604051928391602083019586618087565b51902086526020528460408120916001830154926002810154614a028186615d3d565b614e64575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697614e2b575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614e16575b5050614ae0618257565b9015908115614e06575b50614db55750505050614afb618d3e565b614b086040519384615720565b600a8352835b818110614d9e575050825b600a8110614beb57505060015b60098110614b32578280f35b614b3c8183615d77565b51516001820190818311612fe35781614b5d614b7c926106d2889588615d77565b614b6c60206106e98688615d77565b604061071b816107118789615d77565b810b5f51602061a3995f395f51905f523b15610799576040519063fe74f05b60e01b825260048201526001602482015281816044815f51602061a3995f395f51905f525afa801561105c57614bd6575b5050600101614b26565b81614be091615720565b6107a857825f614bcc565b604051634b88b8ad60e11b815290602082600481885f51602061a3995f395f51905f525af1918215610950578592614d6b575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481895f51602061a3b95f395f51905f525af180156114e057614d4f575b506020548590608090614caa906001600160a01b0316614c8c8588615d77565b51604051948580948193638307c65560e01b83528360048401615b7b565b03925af19081156114e0578691614d31575b50614cc78286615d77565b52614cd28185615d77565b5060405191631135fc2960e21b83526004830152602082602481885f51602061a3995f395f51905f525af191821561095057600192614d13575b5001614b19565b614d2a9060203d8111610910576109018183615720565b505f614d0c565b614d49915060803d81116109495761093b8183615720565b5f614cbc565b614d669060203d8111610910576109018183615720565b614c6c565b9091506020813d8211614d96575b81614d8660209383615720565b810103126109a05751905f614c1e565b3d9150614d79565b602090614da96162fc565b82828701015201614b0e565b82945054905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b0390911660048201526024810191909152604481019290925281806064810161246c565b64174876e800915014155f614aea565b81614e2091615720565b6107a857825f614ad6565b955095506020853d602011614e5c575b81614e4860209383615720565b810103126109a05793519489949081614a54565b3d9150614e3b565b90919250614e728185615d3d565b610100036101008111614f655760ff8111614f655760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a3995f395f51905f525afa8015614f5a57606a614f2a916020948d91614f40575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615720565b64174876e8001015610bf5575090879291614a07565b614f5491503d808f833e610c318183615720565b5f614ecb565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b614f81618474565b506149a6565b69152d02c7e14af6800000915014155f614894565b81614fa691615720565b6107a857825f614880565b955095506020853d602011614fe2575b81614fce60209383615720565b810103126109a057935194899490816147f9565b3d9150614fc1565b90919250614ff88185615d3d565b610100036101008111614f655760ff8111614f655760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a3995f395f51905f525afa8015614f5a57606a6150af916020948d91614f4057506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf55750908792916147ac565b6150d2618474565b5061474b565b615136576001810190818111615122578160640291606483048103615122576305f5e1000291808304620f424014901517156151225760019161511b8286615d77565b5201614640565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b85526021600452602485fd5b50346109a0575f3660031901126109a05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061a3995f395f51905f525afa908115615649576151d3916020915f91615697575b50604051809381926371ee464d60e01b8352604060048401526044830190615783565b6301512880602483015203815f5f51602061a3995f395f51905f525af1801561564957615668575b50604051611385808201908282106001600160401b03831117615654576040918391618ff48339730a7e848aca42d879ef06507fca0e7b33a0a63c1e815273b40afdb85a07f37ae217e7d6462e609900dd8d7a60208201520301905ff0801561564957602080546001600160a01b0319166001600160a01b039290921691821790555f51602061a3995f395f51905f523b156109a057604051906318caf8e360e31b8252600482015260406024820152601560448201527426b0bb32b934b1b5ab1929bbb0b820b230b83a32b960591b60648201525f81608481835f51602061a3995f395f51905f525af1801561564957615636575b505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f51602061a3995f395f51905f525af1801561105c57615621575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b815273b40afdb85a07f37ae217e7d6462e609900dd8d7a600482015260406024820152600660448201526528bab7ba32b960d11b60648201528181608481835f51602061a3995f395f51905f525af1801561105c5761560c575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b8152730a7e848aca42d879ef06507fca0e7b33a0a63c1e6004820152604060248201526007604482015266466163746f727960c81b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155f7575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81525f51602061a3b95f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155e2575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81525f51602061a4195f395f51905f52600482015260406024820152600360448201526247484f60e81b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155cd575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81527314cf6d2fe3e1b326114b07d22a6f6bb59e346c67600482015260406024820152600d60448201526c11d213d7d554d110d7d413d3d3609a1b60648201528181608481835f51602061a3995f395f51905f525af1801561105c57611b0a5750f35b816155d791615720565b610aa557805f615548565b816155ec91615720565b610aa557805f6154d6565b8161560191615720565b610aa557805f615463565b8161561691615720565b610aa557805f6153e6565b8161562b91615720565b610aa557805f61536a565b61564291505f90615720565b5f5f6152f1565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161568f575b8161568160209383615720565b810103126109a057516151fb565b3d9150615674565b6156ab91503d805f833e610c318183615720565b5f6151b0565b346109a05760403660031901126109a0576156e26020916156d1816156ea565b6004358152602435838201526159fa565b604051908152f35b604081019081106001600160401b0382111761565457604052565b606081019081106001600160401b0382111761565457604052565b90601f801991011681019081106001600160401b0382111761565457604052565b60206040818301928281528451809452019201905f5b8181106157645750505090565b82516001600160a01b0316845260209384019390920191600101615757565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106157d957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b80821061583357505050602080600192970193019301919392906157ca565b82516001600160e01b031916845260209384019390920191600190910190615814565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061588857505050505090565b90919293946020806158a6600193603f198682030187528951615783565b97019301930191939290615879565b600e548110156158cd57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156158cd57601f5f5260205f2001905f90565b90600182811c92168015615927575b602083101461591357565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615908565b5f9291815491615940836158f9565b8083529260018116908115615995575060011461595c57505050565b5f9081526020812093945091925b83831061597b575060209250010190565b60018160209294939454838587010152019101919061596a565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116156545760051b60200190565b8181029291811591840414171561512257565b81156159e6570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715615122576020615a31920151906159dc565b90565b6001600160401b03811161565457601f01601f191660200190565b6020818303126109a0578051906001600160401b0382116109a0570181601f820112156109a057805190615a8282615a34565b92615a906040519485615720565b828452602083830101116109a057815f9260208093018386015e8301015290565b908160209103126109a0575190565b601180546001600160a01b0319165f51602061a4195f395f51905f52179055565b601180546001600160a01b0319165f51602061a3b95f395f51905f52179055565b908160209103126109a0575180151581036109a05790565b91908260409103126109a057604051615b32816156ea565b6020808294805184520151910152565b906080828203126109a057615b73906040805193615b5f85615705565b805185526020810151602086015201615b1a565b604082015290565b5f51602061a3d95f395f51905f5281525f51602061a3b95f395f51905f5260208201525f51602061a4195f395f51905f52604082015260a08101939291906002821015615bce5760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b60405190615c1f606083615720565b602a8252690746572207468616e20360b41b6040837f43616c63756c6174656420616d6f756e742073686f756c64206265206772656160208201520152565b60405190615c6d606083615720565b6028825267072207468616e20360c41b6040837f5072696365206e756d657261746f722073686f756c642062652067726561746560208201520152565b60405190615cb9606083615720565b602a8252690746572207468616e20360b41b6040837f50726963652064656e6f6d696e61746f722073686f756c64206265206772656160208201520152565b60405190615d07606083615720565b60218252600360fc1b6040837f47617320757365642073686f756c642062652067726561746572207468616e2060208201520152565b9190820180921161512257565b8051156158cd5760200190565b8051600110156158cd5760400190565b8051600210156158cd5760600190565b80518210156158cd5760209160051b010190565b6020818303126109a0578051906001600160401b0382116109a0570181601f820112156109a0578051615dbd816159b2565b92615dcb6040519485615720565b81845260208085019260061b840101928184116109a057602001915b838310615df5575050505090565b6020604091615e048486615b1a565b815201920191615de7565b602060a060808301927314cf6d2fe3e1b326114b07d22a6f6bb59e346c6760601b81525f51602061a4195f395f51905f52838201525f51602061a3b95f395f51905f526040820152608060608201528451809452019201905f5b818110615e765750505090565b8251845260209384019390920191600101615e69565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b818110615ed05750505090565b8251845260209384019390920191600101615ec3565b9190820391821161512257565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a057815190615f27826159b2565b92615f356040519485615720565b82845260208085019360051b8201019182116109a057602001915b818310615f5d5750505090565b8251600a8110156109a057815260209283019201615f50565b51600a811015615bce5790565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a0578151615fb6816159b2565b92615fc46040519485615720565b81845260208085019260051b8201019283116109a057602001905b828210615fec5750505090565b8151815260209182019101615fdf565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a057815190616030826159b2565b9261603e6040519485615720565b82845260208085019360051b8201019182116109a057602001915b8183106160665750505090565b82516001600160a01b03811681036109a057815260209283019201616059565b9080601f830112156109a057815161609d816159b2565b926160ab6040519485615720565b81845260208085019260051b8201019283116109a057602001905b8282106160d35750505090565b81518152602091820191016160c6565b60085460ff1680156160f25790565b50604051630667f9d760e41b81525f51602061a3995f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a3995f395f51905f525afa908115615649575f9161614c575b50151590565b90506020813d602011616176575b8161616760209383615720565b810103126109a057515f616146565b3d915061615a565b6001600160a01b03811692919061619482615d4a565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183895af18015615649576161d4915f916162e2575b506165be565b15905f5b83518110156162da576161eb8185615d77565b51906040519163ecbbc03360e01b835260048301525f82602481838b5af1801561564957846162ba916001945f916162c0575b506162398a868060a01b0361623284615d4a565b511661665b565b61624c8a868060a01b0361623284615d57565b6162848261625a868b615d77565b51878060a01b0361626a85615d4a565b5116888060a01b0361627b86615d57565b5116918a61679d565b61628e8489615d77565b5190858060a01b0361629f82615d57565b5116906162b1878060a01b0391615d4a565b5116918761679d565b016161d8565b6162d491503d805f833e611b4b8183615720565b5f61621e565b505050509050565b6162f691503d805f833e612e918183615720565b5f6161ce565b6040519061630982615705565b815f81525f60208201526040805191616321836156ea565b5f83525f60208401520152565b615a319392606092825260208201528160408201520190615783565b5f51602061a3995f395f51905f523b156109a057616392915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190615783565b03815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f6163bb91615720565b565b905f51602061a3995f395f51905f523b156109a0575f916163926040519485938493636cd1e26960e11b85526004850161632e565b616412906020616407825182860151906159c9565b9351910151906159c9565b908082036164205750505f90565b111561642b57600190565b5f1990565b5f51602061a3995f395f51905f523b156109a05760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600360248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600160248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b905f51602061a3995f395f51905f523b156109a0576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f5b81518110156165f5576165d6612e168284615d77565b600a811015615bce576005146165ee576001016165c0565b5050600190565b50505f90565b5f5b81518110156165f557616613612e168284615d77565b600a811015615bce576009146165ee576001016165fd565b5f5b81518110156165f557616643612e168284615d77565b600a811015615bce576008146165ee5760010161662d565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f19604484015260448352616693606484615720565b82516001600160a01b038316915f91829182855af1906166b1617e24565b82616711575b5081616706575b50156166c957505050565b6167016163bb936040519063095ea7b360e01b602083015260248201525f6044820152604481526166fb606482615720565b82617e53565b617e53565b90503b15155f6166be565b80519192508115918215616729575b5050905f6166b7565b61673c9250602080918301019101615b02565b5f80616720565b60405190616752606083615720565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af1801561564957616806915f91617dbb575b50615d4a565b5161010052606060a0819052604051616862916168239082615720565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b60408201526101005161634a565b60a051505f806168ea61691860405161687d60a05182615720565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190615783565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af1801561564957616985915f91617da1575b506165fb565b906040519161699560a084615720565b60048352608036602085013715617d94575f5b6169b183615d4a565b526103e861010051046169c383615d57565b526101005160011c6169d483615d67565b528151600310156158cd5761010051608083015260405163155adc9160e31b8152935f8580616a0986868b8a60048601615e8c565b0381836001600160a01b0386165af1948515615649575f95617d78575b50616a39616a3386615d4a565b516159fa565b85515f1981019190821161512257616a57616a33616ab19389615d77565b60a0516040519290616a699084615720565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526163bd565b616abd616a3386615d4a565b85515f19810190811161512257616b58616b715f93616ae0616a3386958c615d77565b60a051604051929190616af39084615720565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190615783565b916044840152606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa5060a051604051616bd791616b9a9082615720565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617efa565b616c29616be386615d4a565b5151604060e081905280519190616bfa9083615720565b601882527f4e6f6d696e61746f722073686f756c646e277420626520300000000000000000602083015261634a565b616c7a6020616c3787615d4a565b51015160e05180519190616c4b9083615720565b601a82527f44656e6f6d696e61746f722073686f756c646e27742062652030000000000000602083015261634a565b616c86616a3386615d4a565b9460e05150616cc58660e05151616c9f60e05182615720565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617f3e565b616ccd6162fc565b5083515f19810190811161512257616ce59085615d77565b516005818102048103615122575f8060e0515160208101906370a0823160e01b825230602482015260248152616d1c604482615720565b51908b5afa50616d2d6101d7617e24565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e54600160401b81101561565457610224816001616d7e9301600e556158b5565b90556011546001600160a01b031661014052600f546010549060e01b616da261809e565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e051516020810190616deb816102a0888886618087565b5190205f5260205260ff600360e0515f2001541615617d6a575b610140516001600160a01b03165f908152600d60205260409020905f526020526102a0616e4360e0515f209360e05151928391602083019586618087565b5190205f5260205260e0515f206001810154916002820154616e658185615d3d565b617c54575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615617c14575f96617c20575b506001908201610100031b5f1901811b1985165f51602061a3995f395f51905f523b156109a05760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a3995f395f51905f525af18015617c1457617bff575b50616f41618257565b9015918215617bf1575b5050617afd575050616f5b618d3e565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a3995f395f51905f525af180156174515761012051608052617aca575b5060015b845181101561751e575f80617050617076616fb3856158e1565b50616fbe868b615d77565b516170626111b261702a60e0515194616fd960a05187615720565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e0515192838092615931565b60e05151635821efa160e01b602082015260a05160248201529586946084860190615783565b84810360231901604486015290615783565b90606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa50617098616a338284615d77565b5f8061710d6171318c6170ab878c615d77565b5160e05151916170bd60e05184615720565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190615783565b60448401929092526001600160a01b0316606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89617175617158878c615d77565b5160e05151638307c65560e01b8152958694859460048601615be2565b03816101205160018060a01b038a165af1908115617451576101205191617500575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156174e6576171e46171ef916a084595161401484a0000006171dc878c615d77565b5191026159dc565b9160e05101516159fa565b916172338260e0515161720460e05182615720565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617f3e565b6172768160e0515161724760e05182615720565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617f3e565b6172b98360e0515161728a60e05182615720565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617f3e565b60c05115617460576173ec926173276173919260a0515060e05151906172e160a05183615720565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617f81565b60a05160e05151919061733a9083615720565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e051830152836163bd565b60a05160e0515191906173a49083615720565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e051830152896163bd565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a3995f395f51905f525af191821561745157600192617433575b5001616f99565b61744a9060203d8111610910576109018183615720565b505f61742c565b60e051513d61012051823e3d90fd5b6174899061747a6174e194617473616743565b908d617f81565b617482616743565b908b617f81565b60e051519061749a60a05183615720565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617f81565b6173ec565b634e487b7160e01b61012051526011600452602461012051fd5b617518915060803d81116109495761093b8183615720565b5f617197565b505091509193925060696101005102610100518104606914610100511517156174e65760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015617451576175a2916101205191617aad575b5061662b565b156179505761760a8460e051516175bb60a05182615720565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617f3e565b60e0518051949061761b9086615720565b6001855260e051601f190136602087013761763585615d4a565b5260e0515163155adc9160e31b815261012051818061765a8888878c60048601615e8c565b03816101205160018060a01b0388165af19081617935575b506178c9576001617681617fb6565b6308c379a01461783b575b6174515761769b608094615d4a565b51946176be60e0515196879586948594638307c65560e01b865260048601615be2565b61012051919003926001600160a01b03165af1908161781e575b506177bc5760016176e7617fb6565b6308c379a014617739575b617451575b6163bb60e0515161770a60e05182615720565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617efa565b617741617fd1565b8061774d575b506176f2565b6101205160a05160e051519193506177b692919061776b9082615720565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152618043565b5f617747565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6178369060803d6080116109495761093b8183615720565b6176d8565b617843617fd1565b8061784f575b5061768c565b90506178c3610120519160a0515060e0515161786d60a05182615720565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152618043565b5f617849565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b61794b903d8061012051833e6114678183615720565b617672565b60a05160e051516179b2918691906179689082615720565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617f3e565b60e051805194906179c39086615720565b6001855260e051601f19013660208701376179dd85615d4a565b5260e051519363155adc9160e31b8552610120518580617a038488878c60048601615e8c565b03816101205160018060a01b0388165af190811561745157608095617a2c92617a925750615d4a565b5194617a4f60e0515196879586948594638307c65560e01b865260048601615be2565b61012051919003926001600160a01b03165af1801561745157617a73575b506176f7565b617a8b9060803d6080116109495761093b8183615720565b505f617a6d565b617aa8903d8061012051833e6114678183615720565b616800565b617ac491503d8061012051833e612e918183615720565b5f61759c565b6020813d602011617af5575b81617ae360209383615720565b810103126109a057516080525f616f95565b3d9150617ad6565b545f51602061a3995f395f51905f523b15617bea5760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a3995f395f51905f525af1801561745157617bcf575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61012051617bdc91615720565b61012051617bea5780617b6d565b6101205180fd5b600502141590505f80616f4b565b5f617c0991615720565b5f610120525f616f38565b60e051513d5f823e3d90fd5b9095506020813d602011617c4c575b81617c3c60209383615720565b810103126109a057519481616ebb565b3d9150617c2f565b617c5e8185615d3d565b6101000361010081116151225760ff81116151225760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a3995f395f51905f525afa918215617c1457617d1a606a6020946001945f91617d50575b5060e051519586915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615720565b1b836005021015617d2b5750616e6a565b60e0515162461bcd60e51b815260206004820152908190610c19906024830190615783565b617d6491503d805f833e610c318183615720565b5f617cb8565b617d72618474565b50616e05565b617d8d9195503d805f833e6114678183615720565b935f616a26565b61271061010051046169a8565b617db591503d805f833e612e918183615720565b5f61697f565b617dcf91503d805f833e61104e8183615720565b5f616800565b905f51602061a3995f395f51905f523b156109a05760405191638466f41560e01b8352600483015260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b3d15617e4e573d90617e3582615a34565b91617e436040519384615720565b82523d5f602084013e565b606090565b8151617e7e926001600160a01b03909216915f91829160200182855af1617e78617e24565b91618416565b80519081617e8a575050565b602080617e9b938301019101615b02565b15617ea257565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b5f6102a0617f27829360405192839163104c13eb60e21b6020840152602060248401526044830190615783565b6020815191016a636f6e736f6c652e6c6f675afa50565b617f6d617f275f93928493604051938492632d839cb360e21b6020850152604060248501526064840190615783565b90604483015203601f198101835282615720565b905f51602061a3995f395f51905f523b156109a0575f916163926040519485938493630389490b60e61b85526004850161632e565b5f9060033d11617fc257565b905060045f803e5f5160e01c90565b5f60443d10615a31576040513d600319016004823e8051913d60248401116001600160401b0384111761803d57828201928351916001600160401b038311618035573d840160031901858401602001116180355750615a3192910160200190615720565b949350505050565b92915050565b618075617f275f93926102a08594604051948593634b5c427760e01b6020860152604060248601526064850190615783565b83810360231901604485015290615783565b60209291908391805192839101825e019081520190565b6180a96014546158f9565b618166576040519081826020600e549283815201600e5f5260205f20925f5b81811061814d5750506180dd92500383615720565b81518060051b9080820460201490151715615122576180fb81615a34565b906181096040519283615720565b808252618118601f1991615a34565b013660208301375f5b8351811015618148578061813760019286615d77565b5160208260051b8501015201618121565b509150565b84548352600194850194879450602090930192016180c8565b604051615a31816111b2816014615931565b600781019061818782546158f9565b61824357600191500190604051808360208295549384815201905f5260205f20925f5b81811061822a5750506181bf92500383615720565b81518060051b9080820460201490151715615122576181dd81615a34565b906181eb6040519283615720565b8082526181fa601f1991615a34565b013660208301375f5b8351811015618148578061821960019286615d77565b5160208260051b8501015201618203565b84548352600194850194879450602090930192016181aa565b50615a316111b29160405192838092615931565b5f806020600f5460e01b6182a56024618270600d618178565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615720565b6011549151916001600160a01b03165afa906182bf617e24565b601054909290600581901b906001600160fb1b03811603615122575f938051602081115f1461834a57506020905b5f925b8284106182ff57505050509190565b9091929561830d8783615d3d565b83518110156158cd57830160200151600388901b91906001600160f81b031916881560088a8504141715615122576001921c1796019291906182f0565b906182ed565b905f806020600285015460e01b61836b602461827088618178565b60048601549151916001600160a01b03165afa6003618388617e24565b930154600581901b906001600160fb1b03811603615122575f938051602081115f1461841057506020905b5f925b8284106183c557505050509190565b909192956183d38783615d3d565b83518110156158cd57830160200151600388901b91906001600160f81b031916881560088a8504141715615122576001921c1796019291906183b6565b906183b3565b9061843a575080511561842b57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061846b575b61844b575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15618443565b601154600f546010546001600160a01b03909216915f9160e01b618498600d618178565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906184d1816102a0888886618087565b5190205f5260205260ff600360405f20015416618cfd575f51602061a3995f395f51905f523b156109a05760405163266cf10960e01b81525f81600481835f51602061a3995f395f51905f525af1801561564957618ce8575b50618535600d618350565b90506040516365bc948160e01b81528660048201528581602481835f51602061a3995f395f51905f525af19081156114e0578691618c80575b5080516185df57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618c78578160206185fa8361862b95615d77565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a3995f395f51905f525afa928315618c6d578893618c3a575b508215618be2575b61865d8282615d77565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a3995f395f51905f525afa908115618bd7578b91618ba6575b506186b8600d618350565b91909382155f14618b9f575f19905b5f51602061a3995f395f51905f523b15618b86576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a3995f395f51905f525af18015618b0b57908d91618b8a575b5050618738600d618350565b601154909491506001600160a01b03165f51602061a3995f395f51905f523b15618b86576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a3995f395f51905f525af18015618b7b57908c91618b62575b505082618b57575b505015618b4d578793889360ff601354166189d2575b6001868601610100031b5f1901851b16841c81036189c4575090618852917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896102a06188278d604051928391602083019586618087565b5190206188348686615d77565b51906040519283528a602084015260408301526060820152a1615d77565b51906040519060808201928284106001600160401b038511176156545760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906188bb816102a08d8d86618087565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190618916816102a0888886618087565b519020855260205260ff60036040862001541615618967576040948452600d6020528484209084526020526102a061895b858520938651928391602083019586618087565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016185e1565b9450618a1d93506189e38383615d77565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a3995f395f51905f525afa948515614f5a578a95618b1a575b50618a4986600d618e57565b959096618a5781600d618f30565b60115490939192906001600160a01b03165f51602061a3995f395f51905f523b15618b16576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a3995f395f51905f525af18015618b0b57908d91618af2575b505087618aea575b5094956187cc5750935091506001906189cc565b96505f618ad6565b81618afc91615720565b618b07578b5f618ace565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211618b45575b81618b3560209383615720565b810103126109a05751935f618a3d565b3d9150618b28565b91506001906189cc565b141590505f806187b6565b81618b6c91615720565b618b77578a5f6187ae565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81618b9491615720565b618b07578b5f61872c565b8c906186c7565b90506020813d8211618bcf575b81618bc060209383615720565b810103126109a057515f6186ad565b3d9150618bb3565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5618c32618c108484615d77565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1618653565b9092506020813d8211618c65575b81618c5560209383615720565b810103126109a05751915f61864b565b3d9150618c48565b6040513d8a823e3d90fd5b5050506188e9565b90503d8087833e618c918183615720565b8101604082820312618ce45781516001600160401b038111618ce05781618cb9918401616086565b916020810151906001600160401b038211610ade57618cd9929101616086565b505f61856e565b8780fd5b8680fd5b618cf59194505f90615720565b5f925f61852a565b91939092505f52600d60205260405f20905f526020526102a0618d2f60405f2093604051928391602083019586618087565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580618e15575b505f60105560ff1960135416601355618d896014546158f9565b80618d915750565b601f8111600114618da357505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110618e0a57505060145f525f602081208160145555565b5f8155600101618df1565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618e4c5750618d6f565b5f8155600101618e3f565b91905f5b6101008110618e6e57505090505f905f90565b8060ff0360ff8111615122576004850154600190911b906001600160a01b03165f51602061a3995f395f51905f523b156109a0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a3995f395f51905f525af1801561564957618f20575b50618efa84618350565b81618f16575b50618f0d57600101618e5b565b92505060019190565b905015155f618f00565b5f618f2a91615720565b5f618ef0565b91905f5b6101008110618f4757505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a3995f395f51905f523b156109a0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a3995f395f51905f525af1801561564957618fe3575b50618fc684618350565b81618fd9575b50618f0d57600101618f34565b905015155f618fcc565b5f618fed91615720565b5f618fbc56fe60c03461009a57601f61138538819003918201601f19168301916001600160401b0383118484101761009e57808492604094855283398101031261009a57610052602061004b836100b2565b92016100b2565b6001600160a01b039182166080521660a0526040516112be90816100c78239608051818181610233015281816105ef01526108ac015260a0518181816101ef0152610db90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361009a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4814cf6d2fe3e1b326114b07d22a6f6bb59e346c6700000000000000000000000073746453746f726167652066696e642853746453746f72616765293a2050616300000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fa2646970667358221220bae43ca7403f70453b04d8151f07828c1fb657532904f476624062272a2063fc64736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"270:9967:75:-:0;;;;;;3166:4:2;270:9967:75;;3166:4:2;270:9967:75;;;3166:4:2;270:9967:75;3166:4:2;270:9967:75;;1038:4:12;270:9967:75;;;1038:4:12;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;270:9967:75;;;;;;;;;:::i;:::-;564:29:65;270:9967:75;;-1:-1:-1;;;270:9967:75;;;;;564:29:65;;270:9967:75;;;;:::i;:::-;;;;-1:-1:-1;;;270:9967:75;;;;;564:29:65;;270:9967:75;;;;:::i;:::-;564:29:65;270:9967:75;;-1:-1:-1;;;270:9967:75;;;;564:29:65;;;270:9967:75;;;564:29:65;270:9967:75;;;564:29:65;270:9967:75;;;-1:-1:-1;;270:9967:75;;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;564:29:65;270:9967:75;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;270:9967:75;;;;;;;;;;;-1:-1:-1;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;270:9967:75;;;;;;;;;;;564:29:65;270:9967:75;;;;;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;;;;;;;;;;;3166:4:2;270:9967:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;270:9967:75;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610160806040526004361015610013575f80fd5b5f905f3560e01c90816308c41745146156b1575080630a9254e41461514a578063111f33921461460d5780631c6e35e414613d525780631e1e26fa146133ae5780631ed7831c146133305780632ade3880146131715780633e5e3c23146130f35780633f7286f4146130755780634a36e37214612e9f5780634b13c57114612d825780635cca77b214612d2c57806366d9a9a014612b7e5780637f55213e14611cd35780638335a17f14611beb57806385226c8114611b595780638f1ed4c6146119c5578063916a17c61461173957806399cef81b14611571578063a00872f114611505578063a502846b146111c7578063b5508aa91461112e578063ba414fa614611109578063d170c3cc14611067578063d3479a0114610eed578063e20c9f7114610e5f578063fa7626d414610e3c5763fe3ee58b14610153575f80fd5b34610aa55780600319360112610aa55780610160906040516101758382615720565b600a8152601f19830180366020840137845b600a8110610dbb5750828060405160208101906370a0823160e01b8252306024820152602481526101b9604482615720565b51905f51602061a4195f395f51905f525afa506101e66101d7617e24565b60208082518301019101615ab1565b506101ef615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c615761022481600161023d9301600e556158b5565b919091309083549060031b91821b915f19901b19161790565b905560018060a01b0360115416600f5460e01b6010549061025c61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908188526020526040872060405160208101906102ae816102a0888886618087565b03601f198101835282615720565b519020885260205260ff60036040892001541615610dad575b6001600160a01b0384165f908152600d602052604090209087526020526102a06103006040882093604051928391602083019586618087565b5190208552602052604084209060018201549160028101546103228185615d3d565b610cd5575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996610ca1575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528681606481835f51602061a3995f395f51905f525af18015610ad3578790610c8a575b5050610404618257565b9015908115610c75575b506109c35750505061041e618d3e565b828060405160208101906370a0823160e01b825230602482015260248152610447604482615720565b51905f51602061a3b95f395f51905f525afa506104656101d7617e24565b5061046e615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c61576102248160016104a39301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906104c261809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190610506816102a0888886618087565b519020885260205260ff60036040892001541615610c53575b6001600160a01b0384165f908152600d602052604090209087526020526102a06105586040882093604051928391602083019586618087565b51902085526020526040842090600182015491600281015461057a8185615d3d565b610b21575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996610ae2575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528681606481835f51602061a3995f395f51905f525af18015610ad3578790610ab8575b5050610657618257565b9015908115610aa8575b506109c357505050610671618d3e565b61067e6040519485615720565b600a8452825b8181106109ac575050815b600a81106107c057505060015b600981106106a8578380f35b6106b28184615d77565b515160018201908183116107ac57906106da610724926106d28388615d77565b515190617dd5565b61070160206106e98588615d77565b51015160206106f88489615d77565b51015190617dd5565b604061071b816107118689615d77565b5101519287615d77565b510151906163f2565b820b5f51602061a3995f395f51905f523b156107a8576040519063fe74f05b60e01b825260048201526001602482015282816044815f51602061a3995f395f51905f525afa801561079d57908391610781575b505060010161069c565b9061078b91615720565b81841261079957815f610777565b5080fd5b6040513d85823e3d90fd5b8280fd5b634e487b7160e01b84526011600452602484fd5b604051634b88b8ad60e11b8152602081600481875f51602061a3995f395f51905f525af1908115610917578491610977575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481885f51602061a3b95f395f51905f525af180156109505761095b575b50602054849060809061087f906001600160a01b03166108608688615d77565b51604051948580948193638307c65560e01b8352600160048401615b7b565b03925af1908115610950578591610922575b5061089c8387615d77565b526108a78286615d77565b5060405190631135fc2960e21b82526004820152602081602481875f51602061a3995f395f51905f525af180156109175790600192916108e9575b500161068f565b6109099060203d8111610910575b6109018183615720565b810190615b02565b505f6108e2565b503d6108f7565b6040513d86823e3d90fd5b610943915060803d8111610949575b61093b8183615720565b810190615b42565b5f610891565b503d610931565b6040513d87823e3d90fd5b6109729060203d8111610910576109018183615720565b610840565b90506020813d82116109a4575b8161099160209383615720565b810103126109a057515f6107f2565b5f80fd5b3d9150610984565b6020906109b76162fc565b82828801015201610684565b85809392899254905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019390935282606481835f51602061a3995f395f51905f525af1801561079d57610a8e575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610a99838093615720565b12610aa5578080610a2d565b80fd5b64174876e800915014155f610661565b610ac191615720565b858812610acf575f8661064d565b8580fd5b6040513d89823e3d90fd5b8880fd5b9095506020813d602011610b0e575b81610afe60209383615720565b810103126109a0575194816105cc565b3d9150610af1565b6040513d8b823e3d90fd5b610b2b8185615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b60405163348051d760e11b815281600482015288816024815f51602061a3995f395f51905f525afa908115610b1657606a60209392610be3928c91610c1d575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f198101845283615720565b64174876e8001015610bf5575061057f565b60405162461bcd60e51b815260206004820152908190610c19906024830190615783565b0390fd5b610c3991503d808e833e610c318183615720565b810190615a4f565b5f610b84565b634e487b7160e01b88526011600452602488fd5b610c5b618474565b5061051f565b634e487b7160e01b84526041600452602484fd5b69152d02c7e14af6800000915014155f61040e565b610c9391615720565b858812610acf575f866103fa565b9095506020813d602011610ccd575b81610cbd60209383615720565b810103126109a057519481610374565b3d9150610cb0565b610cdf8185615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b60405163348051d760e11b815281600482015288816024815f51602061a3995f395f51905f525afa908115610b1657606a60209392610d96928c91610c1d57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf55750610327565b610db5618474565b506102c7565b9280610e285750849260018101808211610e14578060640290606482048103610c3f5768056bc75e2d631000000290808204670de0b6b3a76400001490151715610e145790600191610e0d8286615d77565b5201610187565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b81526021600452602490fd5b5034610aa55780600319360112610aa557602060ff601e54166040519015158152f35b5034610aa55780600319360112610aa55760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610ece57610eca85610ebe81870382615720565b60405191829182615741565b0390f35b82546001600160a01b0316845260209093019260019283019201610ea7565b5034610aa55780600319360112610aa55760205460405163549387df60e11b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561105c5761103791610fe391849161103a575b50610f7d815161651f565b610fde610f8982615d4a565b5160405190610f99606083615720565b602d82527f4c696d697420666f722073656c6c20746f6b656e2073686f756c64206265206760208301526c0726561746572207468616e203609c1b604083015261634a565b615d57565b5160405190610ff3606083615720565b602c82527f4c696d697420666f722062757920746f6b656e2073686f756c6420626520677260208301526b06561746572207468616e20360a41b604083015261634a565b80f35b61105691503d8086833e61104e8183615720565b810190615f83565b5f610f72565b6040513d84823e3d90fd5b5034610aa5576040366003190112610aa557600435906001600160a01b0382168203610aa5576024356001600160401b0381116107995736602382011215610799578060040135926110b8846159b2565b916110c66040519384615720565b8483526024602084019560051b8201019036821161110557602401945b8186106110f55784611037858561617e565b85358152602095860195016110e3565b8480fd5b5034610aa55780600319360112610aa55760206111246160e3565b6040519015158152f35b5034610aa55780600319360112610aa55760195461114b816159b2565b916111596040519384615720565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061119b5760405180610eca8782615856565b6001602081926040516111b9816111b28189615931565b0382615720565b815201920192019190611186565b5034610aa5576040366003190112610aa5578060043560243560018060a01b036020541660405163549387df60e11b81527314cf6d2fe3e1b326114b07d22a6f6bb59e346c6760601b60048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f5260448201528481606481855afa9081156109505785916114eb575b5061125b81615d4a565b5184105f51602061a3995f395f51905f523b15610acf5760405190632631f2b160e11b8252600482015285816024815f51602061a3995f395f51905f525afa9081156114e05786916114cb575b50506112b390615d4a565b5182105f51602061a3995f395f51905f523b156111055760405190632631f2b160e11b8252600482015284816024815f51602061a3995f395f51905f525afa9081156109505785916114b6575b50505f51602061a3995f395f51905f523b1561149c57604051632631f2b160e11b8152662386f26fc100008411600482015284816024815f51602061a3995f395f51905f525afa9081156109505785916114a1575b50505f51602061a3995f395f51905f523b1561149c57604051632631f2b160e11b8152662386f26fc10000831160048201529284846024815f51602061a3995f395f51905f525afa928315610950578593611483575b6113fc939450604051916113c0606084615720565b6002835260403660208501376113d583615d4a565b526113df82615d57565b5260405195868094819363155adc9160e31b835260048301615e0f565b03925af1918215611476578192611452575b50805b825181101561144e578061143161142a60019386615d77565b5151616430565b61144860206114408387615d77565b510151616430565b01611411565b5080f35b61146f9192503d8084833e6114678183615720565b810190615d8b565b905f61140e565b50604051903d90823e3d90fd5b9290938161149091615720565b61149c578284926113ab565b505050fd5b816114ab91615720565b61149c57835f611355565b816114c091615720565b61149c57835f611300565b816114d591615720565b61110557845f6112a8565b6040513d88823e3d90fd5b6114ff91503d8087833e61104e8183615720565b5f611251565b5034610aa5576020366003190112610aa557600435601f548110156107995761152d906158e1565b91909161155d57604051610eca90611549816111b28187615931565b604051918291602083526020830190615783565b634e487b7160e01b81526004819052602490fd5b5034610aa55780600319360112610aa5576020546040516323eeca0160e01b815260048101839052600a6024820152908290829060449082906001600160a01b03165afa90811561105c5782916116f8575b50818151604051906115d6606083615720565b603882527f4e756d626572206f6620706f6f6c204944732073686f756c64206265206c657360208301527f73207468616e206f7220657175616c20746f206c696d6974000000000000000060408301525f51602061a3995f395f51905f523b156107a85761166f918391604051938492839263d17d4b0d60e01b84526004840152600a6024840152606060448401526064830190615783565b03815f51602061a3995f395f51905f525afa801561105c576116e3575b50508051611698575080f35b6116a461103791615d4a565b51604051906116b4604083615720565b602082527f506f6f6c2049442073686f756c642062652067726561746572207468616e2030602083015261634a565b816116ed91615720565b61079957815f61168c565b90503d8083833e6117098183615720565b81016020828203126107a85781516001600160401b0381116117355761172f9201616086565b5f6115c3565b8380fd5b5034610aa55780600319360112610aa557601c54611756816159b2565b906117646040519283615720565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106117a75760405180610eca87826157a7565b6040516117b3816156ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110611926578460019794600297946020979461183e94549181811061190a575b8181106118ee575b8181106118d2575b8181106118b6575b81811061189a575b81811061187e575b818110611864575b10611850575b500382615720565b83820152815201920192019190611792565b6001600160e01b031916815286015f611836565b828a1b6001600160e01b0319168452928901928b01611830565b604083901b6001600160e01b0319168452928901928b01611828565b606083901b6001600160e01b0319168452928901928b01611820565b608083901b6001600160e01b0319168452928901928b01611818565b60a083901b6001600160e01b0319168452928901928b01611810565b60c083901b6001600160e01b0319168452928901928b01611808565b60e083901b6001600160e01b0319168452928901928b01611800565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e08201520194019201916117db565b5034610aa55780600319360112610aa55760205460405163ecbbc03360e01b81525f51602061a3d95f395f51905f52600482015282918290829060249082906001600160a01b03165afa90811561105c578291611b37575b50611a28815161651f565b6001600160a01b03611a3982615d4a565b51165f51602061a3995f395f51905f523b15611b3357604051906328a9b0fb60e11b825260048201525f51602061a4195f395f51905f52602482015282816044815f51602061a3995f395f51905f525afa90811561079d578391611b1e575b506001600160a01b0391611aac9150615d57565b51165f51602061a3995f395f51905f523b15611b1b57604051906328a9b0fb60e11b825260048201525f51602061a3b95f395f51905f52602482015281816044815f51602061a3995f395f51905f525afa801561105c57611b0a5750f35b81611b1491615720565b610aa55780f35b50fd5b81611b2891615720565b611b1b57815f611a98565b5050fd5b611b5391503d8084833e611b4b8183615720565b810190615ffc565b5f611a1d565b5034610aa55780600319360112610aa557601a54611b76816159b2565b91611b846040519384615720565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611bc65760405180610eca8782615856565b600160208192604051611bdd816111b28189615931565b815201920192019190611bb1565b5034610aa55780600319360112610aa55760408180611c5c8351611c0f8582615720565b60018152601f198501366020830137678ac7230489e80000611c3082615d4a565b52602054855163155adc9160e31b81529485936001600160a01b03909216928492839160048301615e0f565b03925af1918215611cca5750611ca5611037926020928591611cb0575b50611c8481516164cf565b611ca0611c9082615d4a565b5151611c9a615c5e565b9061634a565b615d4a565b510151611c9a615caa565b611cc491503d8087833e6114678183615720565b5f611c79565b513d84823e3d90fd5b5034610aa5576040366003190112610aa5576004359060243580151581036107995715612b785760015b60205460405163549387df60e11b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908390829060649082906001600160a01b03165afa90811561079d578391612b5e575b506002821015612b4a57600182149081156126a65792611d8c8195929394615d57565b5182105f51602061a3995f395f51905f523b156107995760405190632631f2b160e11b8252600482015281816024815f51602061a3995f395f51905f525afa801561105c57612691575b508060405160208101906370a0823160e01b825230602482015260248152611dff604482615720565b51905f51602061a4195f395f51905f525afa50611e1d6101d7617e24565b50611e26615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d5790611e5e61022483600188969501600e556158b5565b905560018060a01b0360115416600f5460e01b60105490611e7d61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818852602052604087206040516020810190611ec1816102a0888886618087565b519020885260205260ff6003604089200154161561266f575b6001600160a01b0384165f908152600d602052604090209087526020526102a0611f136040882093604051928391602083019586618087565b519020855260205260408420906001820154916002810154611f358185615d3d565b612559578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615610b16578996612520575b506001908201610100031b5f1901811b1985165f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528681606481835f51602061a3995f395f51905f525af1908115610ad357879161250b575b505061200a618257565b90159081156124ff575b5061241c57505050612024618d3e565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481875f51602061a4195f395f51905f525af18015610917576123fd575b505b6040516370a0823160e01b8152306004820152916020836024815f51602061a3b95f395f51905f525afa9283156109175784936123c6575b506040516370a0823160e01b8152306004820152946020866024815f51602061a4195f395f51905f525afa95861561095057859661238d575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f5260448201526064810192909252608482018490529094608091869160a4918391906001600160a01b03165af19384156114e057869461236c575b50835161216a578580f35b15612271576040516370a0823160e01b81523060048201526020816024815f51602061a3b95f395f51905f525afa9081156114e057869161223d575b506121ba926121b491615ee6565b9061656f565b516040516370a0823160e01b81523060048201526020816024815f51602061a4195f395f51905f525afa908115610917578491612209575b506121b49061220093615ee6565b5f808080808580f35b90506020813d602011612235575b8161222460209383615720565b810103126109a057516122006121f2565b3d9150612217565b90506020813d602011612269575b8161225860209383615720565b810103126109a057516121ba6121a6565b3d915061224b565b6040516370a0823160e01b81523060048201529193916020816024815f51602061a4195f395f51905f525afa9081156114e0578691612338575b506121b4906122b993615ee6565b516040516370a0823160e01b81523060048201526020816024815f51602061a3b95f395f51905f525afa908115610917578491612304575b506122ff926121b491615ee6565b612200565b90506020813d602011612330575b8161231f60209383615720565b810103126109a057516122ff6122f1565b3d9150612312565b90506020813d602011612364575b8161235360209383615720565b810103126109a057516122b96122ab565b3d9150612346565b61238691945060803d6080116109495761093b8183615720565b925f61215f565b945094506020843d6020116123be575b816123aa60209383615720565b810103126109a057608086945195906120e0565b3d915061239d565b935091506020833d6020116123f5575b816123e360209383615720565b810103126109a057849251915f6120a7565b3d91506123d6565b6124159060203d602011610910576109018183615720565b505f61206d565b92509250935054905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b039091166004820152602481019190915260448101929092528180606481015b0381835f51602061a3995f395f51905f525af1801561105c576124ea5760405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b6124f5828092615720565b610aa55780610a2d565b5f19141590505f612014565b8161251591615720565b610acf57855f612000565b985094506020883d602011612551575b8161253d60209383615720565b810103126109a05796518997909481611f86565b3d9150612530565b612564879185615d3d565b61010003610100811161265b5760ff811161265b5760405163348051d760e11b8152600190911b600482015281816024815f51602061a3995f395f51905f525afa90811561105c57606a6020928461261f93610c19969261263f575b506040519485925f51602061a3f95f395f51905f52828501525f51602061a3795f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f198101835282615720565b60405162461bcd60e51b8152602060048201529182916024830190615783565b6126549192503d8084833e610c318183615720565b90866125c0565b634e487b7160e01b82526011600452602482fd5b612677618474565b50611eda565b634e487b7160e01b85526041600452602485fd5b8161269b91615720565b61173557835f611dd6565b6126af90615d4a565b5184105f51602061a3995f395f51905f523b156117355760405190632631f2b160e11b8252600482015283816024815f51602061a3995f395f51905f525afa801561091757908491612b35575b508060405160208101906370a0823160e01b825230602482015260248152612725604482615720565b51905f51602061a4195f395f51905f525afa506127436101d7617e24565b5061274c615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015610c61576102248160016127819301600e556158b5565b905560018060a01b036011541693600f5460e01b601054906127a161809e565b6001600160a01b0388165f908152600d60205260409020909163ffffffff60e01b16908188526020526040872060405160208101906127e5816102a0888886618087565b519020885260205260ff60036040892001541615612b27575b6001600160a01b0388165f908152600d602052604090209087526020526102a06128376040882093604051928391602083019586618087565b5190208552602052604084209460018601549060028701549661285a8884615d3d565b612a1b575b8054604051630667f9d760e41b81526001600160a01b03841660048201526024810182905297989697899790946020866044815f51602061a3995f395f51905f525afa958615610b165789966129e2575b506001908201610100031b5f1901811b198516915f51602061a3995f395f51905f523b15610ade576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529086901b9190911760448201528681606481835f51602061a3995f395f51905f525af1908115610ad35787916129cd575b505083612938618257565b9190159182156129c2575b505061241c57505050612954618d3e565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018390529081604481875f51602061a4195f395f51905f525af18015610917576129a3575b5061206f565b6129bb9060203d602011610910576109018183615720565b505f61299d565b14159050845f612943565b816129d791615720565b610acf57855f61292d565b985094506020883d602011612a13575b816129ff60209383615720565b810103126109a057965189979094816128b0565b3d91506129f2565b612a258884615d3d565b610100036101008111610c3f5760ff8111610c3f576001901b976040519863348051d760e11b8a528060048b0152888a6024815f51602061a3995f395f51905f525afa998a15610b1657606a60209b612ade928c91612b0d575b506040519c8d915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018c838201520301601f1981018c528b615720565b851015612aec57975061285f565b60405162461bcd60e51b81526020600482015280610c19602482018c615783565b612b2191503d808e833e610c318183615720565b5f612a7f565b612b2f618474565b506127fe565b81612b3f91615720565b6107a857825f6126fc565b634e487b7160e01b83526021600452602483fd5b612b7291503d8085833e61104e8183615720565b5f611d69565b80611cfd565b5034610aa55780600319360112610aa557601b54612b9b816159b2565b90612ba96040519283615720565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b838310612bec5760405180610eca87826157a7565b604051612bf8816156ea565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b816007840110612c8d5784600197946002979460209794612c7b94549181811061190a578181106118ee578181106118d2578181106118b65781811061189a5781811061187e57818110611864571061185057500382615720565b83820152815201920192019190612bd7565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612c20565b5034610aa55780600319360112610aa557611037604051612d4e604082615720565b60018152602036818301375f51602061a3d95f395f51905f52612d7082615d4a565b526020546001600160a01b031661617e565b5034610aa55780600319360112610aa5576020546040516348bd7dfd60e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f526044820152908290829060649082906001600160a01b03165afa90811561105c578291612e7d575b50612e0a815161647f565b612e1b612e1682615d4a565b615f76565b600a811015612b4a57612e2d906164cf565b612e39612e1682615d57565b600a811015612b4a57612e5791612e52612e169261651f565b615d67565b600a811015612e69576110379061647f565b634e487b7160e01b82526021600452602482fd5b612e9991503d8084833e612e918183615720565b810190615ef3565b5f612dff565b5034610aa55780600319360112610aa55760405190610160612ec18184615720565b600a8352601f1901366020840137805b600a8110613011575080612f08819360018060a01b03602054169060405194858094819363155adc9160e31b835260048301615e0f565b03925af190811561105c578291612ff7575b50815b60098110612f29578280f35b612f338183615d77565b51906001810191828211612fe357612f578591612f508587615d77565b51906163f2565b810b5f51602061a3995f395f51905f523b156107995760405190630a30b77160e01b825260048201526001602482015281816044815f51602061a3995f395f51905f525afa801561105c57612fce575b5050612fc86020611440600194612fc283611440878a615d77565b86615d77565b01612f1d565b81612fd891615720565b61173557835f612fa7565b634e487b7160e01b85526011600452602485fd5b61300b91503d8084833e6114678183615720565b5f612f1a565b600181018082116130615780606402906064820481036107ac5768056bc75e2d631000000290808204670de0b6b3a76400001490151715613061579060019161305a8286615d77565b5201612ed1565b634e487b7160e01b83526011600452602483fd5b5034610aa55780600319360112610aa55760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106130d457610eca85610ebe81870382615720565b82546001600160a01b03168452602090930192600192830192016130bd565b5034610aa55780600319360112610aa55760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061315257610eca85610ebe81870382615720565b82546001600160a01b031684526020909301926001928301920161313b565b5034610aa55780600319360112610aa557601d5461318e816159b2565b61319b6040519182615720565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b83831061329f5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106132075786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613274575050505050602080600192970193019301909286959492936131fa565b9091929394602080613292600193605f198782030189528951615783565b9701950193929101613250565b6040516132ab816156ea565b82546001600160a01b031681526001830180546132c7816159b2565b916132d56040519384615720565b8183528a526020808b20908b9084015b83821061330b5750505050600192826020928360029501528152019201920191906131cb565b600160208192604051613322816111b2818a615931565b8152019301910190916132e5565b5034610aa55780600319360112610aa55760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061338f57610eca85610ebe81870382615720565b82546001600160a01b0316845260209093019260019283019201613378565b5034610aa55780600319360112610aa557808060405160208101906370a0823160e01b8252306024820152602481526133e8604482615720565b51905f51602061a4195f395f51905f525afa506134066101d7617e24565b5061340f615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd3576102248160016134449301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061346361809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906134a7816102a0888886618087565b519020865260205260ff60036040872001541615613d44575b6001600160a01b0384165f908152600d602052604090209085526020526102a06134f96040862093604051928391602083019586618087565b5190208352602052816040812091600183015492600281015461351c8186615d3d565b613c4a575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697613c11575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491613bfc575b50506135ff618257565b9015908115613be7575b50613a0f5782613617618d3e565b808060405160208101906370a0823160e01b825230602482015260248152613640604482615720565b51905f51602061a3b95f395f51905f525afa5061365e6101d7617e24565b50613667615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd35761022481600161369c9301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906136bb61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906136ff816102a0888886618087565b519020865260205260ff60036040872001541615613bc5575b6001600160a01b0384165f908152600d602052604090209085526020526102a06137516040862093604051928391602083019586618087565b519020835260205281604081209160018301549260028101546137748186615d3d565b613abb575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697613a82575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491613a6d575b5050613852618257565b9015908115613a5d575b50613a0f578261386a618d3e565b5f51602061a3995f395f51905f523b15610aa55760405163ca669fa760e01b815230600482015281908181602481835f51602061a3995f395f51905f525af1801561105c576139fa575b50506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481855f51602061a3b95f395f51905f525af1801561105c576139dd575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a3b95f395f51905f5260248201525f51602061a4195f395f51905f5260448201526001606482015268056bc75e2d63100000608482015290608090829060a490829086906001600160a01b03165af190811561105c576110379160209184916139be575b5061399e8151611c9a615c10565b6139b48260408301611ca5815151611c9a615c5e565b0151611c9a615cf8565b6139d7915060803d6080116109495761093b8183615720565b84613990565b6139f59060203d602011610910576109018183615720565b613903565b81613a0491615720565b610aa55780826138b4565b54905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b0390911660048201526024810191909152604481019290925281806064810161246c565b64174876e800915014158661385c565b81613a7791615720565b6107a8578286613848565b955095506020853d602011613ab3575b81613a9f60209383615720565b810103126109a057935194869490816137c6565b3d9150613a92565b90919250613ac98185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a613b81916020948a91613b97575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b64174876e8001015610bf5575090849291613779565b613bab91503d808c833e610c318183615720565b8a613b22565b634e487b7160e01b86526011600452602486fd5b613bcd618474565b50613718565b634e487b7160e01b82526041600452602482fd5b69152d02c7e14af6800000915014155f613609565b81613c0691615720565b6107a857825f6135f5565b955095506020853d602011613c42575b81613c2e60209383615720565b810103126109a0579351948694908161356e565b3d9150613c21565b90919250613c588185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a613d0f916020948a91613d2a57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf5575090849291613521565b613d3e91503d808c833e610c318183615720565b5f613b22565b613d4c618474565b506134c0565b5034610aa55780600319360112610aa557808060405160208101906370a0823160e01b825230602482015260248152613d8c604482615720565b51905f51602061a4195f395f51905f525afa50613daa6101d7617e24565b50613db3615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd357610224816001613de89301600e556158b5565b905560018060a01b0360115416600f5460e01b60105490613e0761809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190613e4b816102a0888886618087565b519020865260205260ff600360408720015416156145ff575b6001600160a01b0384165f908152600d602052604090209085526020526102a0613e9d6040862093604051928391602083019586618087565b51902083526020528160408120916001830154926002810154613ec08186615d3d565b61451f575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e05786976144e6575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af19081156109175784916144d1575b5050613fa3618257565b90159081156144bc575b50613a0f5782613fbb618d3e565b808060405160208101906370a0823160e01b825230602482015260248152613fe4604482615720565b51905f51602061a3b95f395f51905f525afa506140026101d7617e24565b5061400b615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015613bd3576102248160016140409301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061405f61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b16908186526020526040852060405160208101906140a3816102a0888886618087565b519020865260205260ff600360408720015416156144ae575b6001600160a01b0384165f908152600d602052604090209085526020526102a06140f56040862093604051928391602083019586618087565b519020835260205281604081209160018301549260028101546141188186615d3d565b6143d3575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e057869761439a575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614385575b50506141f6618257565b9015908115614375575b50613a0f578261420e618d3e565b5f51602061a3995f395f51905f523b15610aa55760405163ca669fa760e01b815230600482015281908181602481835f51602061a3995f395f51905f525af1801561105c57614360575b50506020805460405163095ea7b360e01b81526001600160a01b039091166004820152678ac7230489e8000060248201529081604481855f51602061a4195f395f51905f525af1801561105c57614343575b50602054604051638307c65560e01b81525f51602061a3d95f395f51905f5260048201525f51602061a4195f395f51905f5260248201525f51602061a3b95f395f51905f52604482015260648101839052678ac7230489e80000608482015290608090829060a490829086906001600160a01b03165af190811561105c576110379160209184916139be575061399e8151611c9a615c10565b61435b9060203d602011610910576109018183615720565b6142aa565b8161436a91615720565b610aa5578082614258565b64174876e8009150141586614200565b8161438f91615720565b6107a85782866141ec565b955095506020853d6020116143cb575b816143b760209383615720565b810103126109a0579351948694908161416a565b3d91506143aa565b909192506143e18185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a614498916020948a91613b9757506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b64174876e8001015610bf557509084929161411d565b6144b6618474565b506140bc565b69152d02c7e14af6800000915014155f613fad565b816144db91615720565b6107a857825f613f99565b955095506020853d602011614517575b8161450360209383615720565b810103126109a05793519486949081613f12565b3d91506144f6565b9091925061452d8185615d3d565b610100036101008111613bb15760ff8111613bb15760405163348051d760e11b8152600190911b6004820181905286826024815f51602061a3995f395f51905f525afa8015610ad357606a6145e4916020948a91613d2a57506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018a838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf5575090849291613ec5565b614607618474565b50613e64565b5034610aa55780600319360112610aa55761016060405161462e8282615720565b600a8152601f19820180366020840137835b84600a82106150d85780915060405160208101906370a0823160e01b825230602482015260248152614673604482615720565b51905f51602061a4195f395f51905f525afa506146916101d7617e24565b5061469a615ac0565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d576102248160016146cf9301600e556158b5565b905560018060a01b0360115416600f5460e01b601054906146ee61809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190614732816102a0888886618087565b519020895260205260ff600360408a20015416156150ca575b6001600160a01b0384165f908152600d602052604090209088526020526102a06147846040892093604051928391602083019586618087565b519020865260205284604081209160018301549260028101546147a78186615d3d565b614fea575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697614fb1575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915269152d02c7e14af680000090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614f9c575b505061488a618257565b9015908115614f87575b50614db557505050506148a5618d3e565b838060405160208101906370a0823160e01b8252306024820152602481526148ce604482615720565b51905f51602061a3b95f395f51905f525afa506148ec6101d7617e24565b506148f5615ae1565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561267d5761022481600161492a9301600e556158b5565b905560018060a01b0360115416600f5460e01b6010549061494961809e565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061498d816102a0888886618087565b519020895260205260ff600360408a2001541615614f79575b6001600160a01b0384165f908152600d602052604090209088526020526102a06149df6040892093604051928391602083019586618087565b51902086526020528460408120916001830154926002810154614a028186615d3d565b614e64575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f51602061a3995f395f51905f525afa9687156114e0578697614e2b575b506001908201610100031b5f1901811b198616915f51602061a3995f395f51905f523b15610acf576040516370ca10bb60e01b81526001600160a01b0386166004820152602481019190915264174876e80090911b9190911760448201528381606481835f51602061a3995f395f51905f525af1908115610917578491614e16575b5050614ae0618257565b9015908115614e06575b50614db55750505050614afb618d3e565b614b086040519384615720565b600a8352835b818110614d9e575050825b600a8110614beb57505060015b60098110614b32578280f35b614b3c8183615d77565b51516001820190818311612fe35781614b5d614b7c926106d2889588615d77565b614b6c60206106e98688615d77565b604061071b816107118789615d77565b810b5f51602061a3995f395f51905f523b15610799576040519063fe74f05b60e01b825260048201526001602482015281816044815f51602061a3995f395f51905f525afa801561105c57614bd6575b5050600101614b26565b81614be091615720565b6107a857825f614bcc565b604051634b88b8ad60e11b815290602082600481885f51602061a3995f395f51905f525af1918215610950578592614d6b575b506020805460405163095ea7b360e01b81526001600160a01b03909116600482015264174876e80060248201529081604481895f51602061a3b95f395f51905f525af180156114e057614d4f575b506020548590608090614caa906001600160a01b0316614c8c8588615d77565b51604051948580948193638307c65560e01b83528360048401615b7b565b03925af19081156114e0578691614d31575b50614cc78286615d77565b52614cd28185615d77565b5060405191631135fc2960e21b83526004830152602082602481885f51602061a3995f395f51905f525af191821561095057600192614d13575b5001614b19565b614d2a9060203d8111610910576109018183615720565b505f614d0c565b614d49915060803d81116109495761093b8183615720565b5f614cbc565b614d669060203d8111610910576109018183615720565b614c6c565b9091506020813d8211614d96575b81614d8660209383615720565b810103126109a05751905f614c1e565b3d9150614d79565b602090614da96162fc565b82828701015201614b0e565b82945054905f51602061a3995f395f51905f523b156107a8576040516370ca10bb60e01b81526001600160a01b0390911660048201526024810191909152604481019290925281806064810161246c565b64174876e800915014155f614aea565b81614e2091615720565b6107a857825f614ad6565b955095506020853d602011614e5c575b81614e4860209383615720565b810103126109a05793519489949081614a54565b3d9150614e3b565b90919250614e728185615d3d565b610100036101008111614f655760ff8111614f655760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a3995f395f51905f525afa8015614f5a57606a614f2a916020948d91614f40575b506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615720565b64174876e8001015610bf5575090879291614a07565b614f5491503d808f833e610c318183615720565b5f614ecb565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b614f81618474565b506149a6565b69152d02c7e14af6800000915014155f614894565b81614fa691615720565b6107a857825f614880565b955095506020853d602011614fe2575b81614fce60209383615720565b810103126109a057935194899490816147f9565b3d9150614fc1565b90919250614ff88185615d3d565b610100036101008111614f655760ff8111614f655760405163348051d760e11b8152600190911b6004820181905289826024815f51602061a3995f395f51905f525afa8015614f5a57606a6150af916020948d91614f4057506040519485915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f198101845283615720565b69152d02c7e14af68000001015610bf55750908792916147ac565b6150d2618474565b5061474b565b615136576001810190818111615122578160640291606483048103615122576305f5e1000291808304620f424014901517156151225760019161511b8286615d77565b5201614640565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b85526021600452602485fd5b50346109a0575f3660031901126109a05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f51602061a3995f395f51905f525afa908115615649576151d3916020915f91615697575b50604051809381926371ee464d60e01b8352604060048401526044830190615783565b6301512880602483015203815f5f51602061a3995f395f51905f525af1801561564957615668575b50604051611385808201908282106001600160401b03831117615654576040918391618ff48339730a7e848aca42d879ef06507fca0e7b33a0a63c1e815273b40afdb85a07f37ae217e7d6462e609900dd8d7a60208201520301905ff0801561564957602080546001600160a01b0319166001600160a01b039290921691821790555f51602061a3995f395f51905f523b156109a057604051906318caf8e360e31b8252600482015260406024820152601560448201527426b0bb32b934b1b5ab1929bbb0b820b230b83a32b960591b60648201525f81608481835f51602061a3995f395f51905f525af1801561564957615636575b505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f51602061a3995f395f51905f525af1801561105c57615621575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b815273b40afdb85a07f37ae217e7d6462e609900dd8d7a600482015260406024820152600660448201526528bab7ba32b960d11b60648201528181608481835f51602061a3995f395f51905f525af1801561105c5761560c575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b8152730a7e848aca42d879ef06507fca0e7b33a0a63c1e6004820152604060248201526007604482015266466163746f727960c81b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155f7575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81525f51602061a3b95f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155e2575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81525f51602061a4195f395f51905f52600482015260406024820152600360448201526247484f60e81b60648201528181608481835f51602061a3995f395f51905f525af1801561105c576155cd575b50505f51602061a3995f395f51905f523b15610aa557806040516318caf8e360e31b81527314cf6d2fe3e1b326114b07d22a6f6bb59e346c67600482015260406024820152600d60448201526c11d213d7d554d110d7d413d3d3609a1b60648201528181608481835f51602061a3995f395f51905f525af1801561105c57611b0a5750f35b816155d791615720565b610aa557805f615548565b816155ec91615720565b610aa557805f6154d6565b8161560191615720565b610aa557805f615463565b8161561691615720565b610aa557805f6153e6565b8161562b91615720565b610aa557805f61536a565b61564291505f90615720565b5f5f6152f1565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161568f575b8161568160209383615720565b810103126109a057516151fb565b3d9150615674565b6156ab91503d805f833e610c318183615720565b5f6151b0565b346109a05760403660031901126109a0576156e26020916156d1816156ea565b6004358152602435838201526159fa565b604051908152f35b604081019081106001600160401b0382111761565457604052565b606081019081106001600160401b0382111761565457604052565b90601f801991011681019081106001600160401b0382111761565457604052565b60206040818301928281528451809452019201905f5b8181106157645750505090565b82516001600160a01b0316845260209384019390920191600101615757565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106157d957505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b80821061583357505050602080600192970193019301919392906157ca565b82516001600160e01b031916845260209384019390920191600190910190615814565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061588857505050505090565b90919293946020806158a6600193603f198682030187528951615783565b97019301930191939290615879565b600e548110156158cd57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f548110156158cd57601f5f5260205f2001905f90565b90600182811c92168015615927575b602083101461591357565b634e487b7160e01b5f52602260045260245ffd5b91607f1691615908565b5f9291815491615940836158f9565b8083529260018116908115615995575060011461595c57505050565b5f9081526020812093945091925b83831061597b575060209250010190565b60018160209294939454838587010152019101919061596a565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116156545760051b60200190565b8181029291811591840414171561512257565b81156159e6570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a0000001490151715615122576020615a31920151906159dc565b90565b6001600160401b03811161565457601f01601f191660200190565b6020818303126109a0578051906001600160401b0382116109a0570181601f820112156109a057805190615a8282615a34565b92615a906040519485615720565b828452602083830101116109a057815f9260208093018386015e8301015290565b908160209103126109a0575190565b601180546001600160a01b0319165f51602061a4195f395f51905f52179055565b601180546001600160a01b0319165f51602061a3b95f395f51905f52179055565b908160209103126109a0575180151581036109a05790565b91908260409103126109a057604051615b32816156ea565b6020808294805184520151910152565b906080828203126109a057615b73906040805193615b5f85615705565b805185526020810151602086015201615b1a565b604082015290565b5f51602061a3d95f395f51905f5281525f51602061a3b95f395f51905f5260208201525f51602061a4195f395f51905f52604082015260a08101939291906002821015615bce5760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b9081526001600160a01b039182166020820152911660408201525f6060820152608081019190915260a00190565b60405190615c1f606083615720565b602a8252690746572207468616e20360b41b6040837f43616c63756c6174656420616d6f756e742073686f756c64206265206772656160208201520152565b60405190615c6d606083615720565b6028825267072207468616e20360c41b6040837f5072696365206e756d657261746f722073686f756c642062652067726561746560208201520152565b60405190615cb9606083615720565b602a8252690746572207468616e20360b41b6040837f50726963652064656e6f6d696e61746f722073686f756c64206265206772656160208201520152565b60405190615d07606083615720565b60218252600360fc1b6040837f47617320757365642073686f756c642062652067726561746572207468616e2060208201520152565b9190820180921161512257565b8051156158cd5760200190565b8051600110156158cd5760400190565b8051600210156158cd5760600190565b80518210156158cd5760209160051b010190565b6020818303126109a0578051906001600160401b0382116109a0570181601f820112156109a0578051615dbd816159b2565b92615dcb6040519485615720565b81845260208085019260061b840101928184116109a057602001915b838310615df5575050505090565b6020604091615e048486615b1a565b815201920191615de7565b602060a060808301927314cf6d2fe3e1b326114b07d22a6f6bb59e346c6760601b81525f51602061a4195f395f51905f52838201525f51602061a3b95f395f51905f526040820152608060608201528451809452019201905f5b818110615e765750505090565b8251845260209384019390920191600101615e69565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b818110615ed05750505090565b8251845260209384019390920191600101615ec3565b9190820391821161512257565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a057815190615f27826159b2565b92615f356040519485615720565b82845260208085019360051b8201019182116109a057602001915b818310615f5d5750505090565b8251600a8110156109a057815260209283019201615f50565b51600a811015615bce5790565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a0578151615fb6816159b2565b92615fc46040519485615720565b81845260208085019260051b8201019283116109a057602001905b828210615fec5750505090565b8151815260209182019101615fdf565b6020818303126109a0578051906001600160401b0382116109a057019080601f830112156109a057815190616030826159b2565b9261603e6040519485615720565b82845260208085019360051b8201019182116109a057602001915b8183106160665750505090565b82516001600160a01b03811681036109a057815260209283019201616059565b9080601f830112156109a057815161609d816159b2565b926160ab6040519485615720565b81845260208085019260051b8201019283116109a057602001905b8282106160d35750505090565b81518152602091820191016160c6565b60085460ff1680156160f25790565b50604051630667f9d760e41b81525f51602061a3995f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f51602061a3995f395f51905f525afa908115615649575f9161614c575b50151590565b90506020813d602011616176575b8161616760209383615720565b810103126109a057515f616146565b3d915061615a565b6001600160a01b03811692919061619482615d4a565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183895af18015615649576161d4915f916162e2575b506165be565b15905f5b83518110156162da576161eb8185615d77565b51906040519163ecbbc03360e01b835260048301525f82602481838b5af1801561564957846162ba916001945f916162c0575b506162398a868060a01b0361623284615d4a565b511661665b565b61624c8a868060a01b0361623284615d57565b6162848261625a868b615d77565b51878060a01b0361626a85615d4a565b5116888060a01b0361627b86615d57565b5116918a61679d565b61628e8489615d77565b5190858060a01b0361629f82615d57565b5116906162b1878060a01b0391615d4a565b5116918761679d565b016161d8565b6162d491503d805f833e611b4b8183615720565b5f61621e565b505050509050565b6162f691503d805f833e612e918183615720565b5f6161ce565b6040519061630982615705565b815f81525f60208201526040805191616321836156ea565b5f83525f60208401520152565b615a319392606092825260208201528160408201520190615783565b5f51602061a3995f395f51905f523b156109a057616392915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190615783565b03815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f6163bb91615720565b565b905f51602061a3995f395f51905f523b156109a0575f916163926040519485938493636cd1e26960e11b85526004850161632e565b616412906020616407825182860151906159c9565b9351910151906159c9565b908082036164205750505f90565b111561642b57600190565b5f1990565b5f51602061a3995f395f51905f523b156109a05760405190636d83fe6960e11b825260048201525f60248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600360248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600160248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f51602061a3995f395f51905f523b156109a0576040519063260a5b1560e21b82526004820152600260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b905f51602061a3995f395f51905f523b156109a0576040519163260a5b1560e21b8352600483015260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b5f5b81518110156165f5576165d6612e168284615d77565b600a811015615bce576005146165ee576001016165c0565b5050600190565b50505f90565b5f5b81518110156165f557616613612e168284615d77565b600a811015615bce576009146165ee576001016165fd565b5f5b81518110156165f557616643612e168284615d77565b600a811015615bce576008146165ee5760010161662d565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f19604484015260448352616693606484615720565b82516001600160a01b038316915f91829182855af1906166b1617e24565b82616711575b5081616706575b50156166c957505050565b6167016163bb936040519063095ea7b360e01b602083015260248201525f6044820152604481526166fb606482615720565b82617e53565b617e53565b90503b15155f6166be565b80519192508115918215616729575b5050905f6166b7565b61673c9250602080918301019101615b02565b5f80616720565b60405190616752606083615720565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b60c09490945260405163549387df60e11b8152600481018290526001600160a01b0380841660248301528416604482015291939290915f8180606481016101208490520381836001600160a01b0389165af1801561564957616806915f91617dbb575b50615d4a565b5161010052606060a0819052604051616862916168239082615720565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b60408201526101005161634a565b60a051505f806168ea61691860405161687d60a05182615720565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190615783565b6001600160a01b038a811660448401528716606483015261010051608483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b8152600481018390526001600160a01b038086166024830152821660448201525f8180606481010381836001600160a01b0389165af1801561564957616985915f91617da1575b506165fb565b906040519161699560a084615720565b60048352608036602085013715617d94575f5b6169b183615d4a565b526103e861010051046169c383615d57565b526101005160011c6169d483615d67565b528151600310156158cd5761010051608083015260405163155adc9160e31b8152935f8580616a0986868b8a60048601615e8c565b0381836001600160a01b0386165af1948515615649575f95617d78575b50616a39616a3386615d4a565b516159fa565b85515f1981019190821161512257616a57616a33616ab19389615d77565b60a0516040519290616a699084615720565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526163bd565b616abd616a3386615d4a565b85515f19810190811161512257616b58616b715f93616ae0616a3386958c615d77565b60a051604051929190616af39084615720565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b602086015260a05160248601526084850190615783565b916044840152606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa5060a051604051616bd791616b9a9082615720565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b6040820152617efa565b616c29616be386615d4a565b5151604060e081905280519190616bfa9083615720565b601882527f4e6f6d696e61746f722073686f756c646e277420626520300000000000000000602083015261634a565b616c7a6020616c3787615d4a565b51015160e05180519190616c4b9083615720565b601a82527f44656e6f6d696e61746f722073686f756c646e27742062652030000000000000602083015261634a565b616c86616a3386615d4a565b9460e05150616cc58660e05151616c9f60e05182615720565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b6020820152617f3e565b616ccd6162fc565b5083515f19810190811161512257616ce59085615d77565b516005818102048103615122575f8060e0515160208101906370a0823160e01b825230602482015260248152616d1c604482615720565b51908b5afa50616d2d6101d7617e24565b50601180546001600160a01b0319166001600160a01b038a16179055600f805463ffffffff19166370a08231179055600e54600160401b81101561565457610224816001616d7e9301600e556158b5565b90556011546001600160a01b031661014052600f546010549060e01b616da261809e565b610140516001600160a01b03165f908152600d60205260409020909163ffffffff60e01b1690815f5260205260e0515f2060e051516020810190616deb816102a0888886618087565b5190205f5260205260ff600360e0515f2001541615617d6a575b610140516001600160a01b03165f908152600d60205260409020905f526020526102a0616e4360e0515f209360e05151928391602083019586618087565b5190205f5260205260e0515f206001810154916002820154616e658185615d3d565b617c54575b825460e05151630667f9d760e41b8152610140516001600160a01b0316600482015260248101829052949091906020866044815f51602061a3995f395f51905f525afa958615617c14575f96617c20575b506001908201610100031b5f1901811b1985165f51602061a3995f395f51905f523b156109a05760e051516370ca10bb60e01b8152610140516001600160a01b0316600482015260248101939093526005840290911b1760448201525f81606481835f51602061a3995f395f51905f525af18015617c1457617bff575b50616f41618257565b9015918215617bf1575b5050617afd575050616f5b618d3e565b60e05151634b88b8ad60e11b8152602081600481610120515f51602061a3995f395f51905f525af180156174515761012051608052617aca575b5060015b845181101561751e575f80617050617076616fb3856158e1565b50616fbe868b615d77565b516170626111b261702a60e0515194616fd960a05187615720565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b60e05187015260e0515192838092615931565b60e05151635821efa160e01b602082015260a05160248201529586946084860190615783565b84810360231901604486015290615783565b90606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa50617098616a338284615d77565b5f8061710d6171318c6170ab878c615d77565b5160e05151916170bd60e05184615720565b601783527f544553543a205377617070696e67202564206f66202573000000000000000000602084015260e0515194859363038fd88960e31b602086015260a05160248601526084850190615783565b60448401929092526001600160a01b0316606483015203601f198101835282615720565b6020815191016a636f6e736f6c652e6c6f675afa508460808a89617175617158878c615d77565b5160e05151638307c65560e01b8152958694859460048601615be2565b03816101205160018060a01b038a165af1908115617451576101205191617500575b508051806a084595161401484a0000008102046a084595161401484a00000014811517156174e6576171e46171ef916a084595161401484a0000006171dc878c615d77565b5191026159dc565b9160e05101516159fa565b916172338260e0515161720460e05182615720565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152617f3e565b6172768160e0515161724760e05182615720565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152617f3e565b6172b98360e0515161728a60e05182615720565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152617f3e565b60c05115617460576173ec926173276173919260a0515060e05151906172e160a05183615720565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b60e05183015285617f81565b60a05160e05151919061733a9083615720565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e00000000000000000060e051830152836163bd565b60a05160e0515191906173a49083615720565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b60e051830152896163bd565b60e0515190631135fc2960e21b82526080516004830152602082602481610120515f51602061a3995f395f51905f525af191821561745157600192617433575b5001616f99565b61744a9060203d8111610910576109018183615720565b505f61742c565b60e051513d61012051823e3d90fd5b6174899061747a6174e194617473616743565b908d617f81565b617482616743565b908b617f81565b60e051519061749a60a05183615720565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b60e05183015289617f81565b6173ec565b634e487b7160e01b61012051526011600452602461012051fd5b617518915060803d81116109495761093b8183615720565b5f617197565b505091509193925060696101005102610100518104606914610100511517156174e65760e051516348bd7dfd60e01b81526101208051600483018890526001600160a01b0387811660248501528681166044850152915160649485900497949192849291839188165af18015617451576175a2916101205191617aad575b5061662b565b156179505761760a8460e051516175bb60a05182615720565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b60e051820152617f3e565b60e0518051949061761b9086615720565b6001855260e051601f190136602087013761763585615d4a565b5260e0515163155adc9160e31b815261012051818061765a8888878c60048601615e8c565b03816101205160018060a01b0388165af19081617935575b506178c9576001617681617fb6565b6308c379a01461783b575b6174515761769b608094615d4a565b51946176be60e0515196879586948594638307c65560e01b865260048601615be2565b61012051919003926001600160a01b03165af1908161781e575b506177bc5760016176e7617fb6565b6308c379a014617739575b617451575b6163bb60e0515161770a60e05182615720565b601781527f544553543a20416c6c207465737473207061737365642e0000000000000000006020820152617efa565b617741617fd1565b8061774d575b506176f2565b6101205160a05160e051519193506177b692919061776b9082615720565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b60e051820152618043565b5f617747565b60e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6178369060803d6080116109495761093b8183615720565b6176d8565b617843617fd1565b8061784f575b5061768c565b90506178c3610120519160a0515060e0515161786d60a05182615720565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a202573000000000000000060e051820152618043565b5f617849565b60e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b61794b903d8061012051833e6114678183615720565b617672565b60a05160e051516179b2918691906179689082615720565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b60e051820152617f3e565b60e051805194906179c39086615720565b6001855260e051601f19013660208701376179dd85615d4a565b5260e051519363155adc9160e31b8552610120518580617a038488878c60048601615e8c565b03816101205160018060a01b0388165af190811561745157608095617a2c92617a925750615d4a565b5194617a4f60e0515196879586948594638307c65560e01b865260048601615be2565b61012051919003926001600160a01b03165af1801561745157617a73575b506176f7565b617a8b9060803d6080116109495761093b8183615720565b505f617a6d565b617aa8903d8061012051833e6114678183615720565b616800565b617ac491503d8061012051833e612e918183615720565b5f61759c565b6020813d602011617af5575b81617ae360209383615720565b810103126109a057516080525f616f95565b3d9150617ad6565b545f51602061a3995f395f51905f523b15617bea5760e051516370ca10bb60e01b815261012051610140516001600160a01b03166004830152602482019290925260448101929092528180606481010381610120515f51602061a3995f395f51905f525af1801561745157617bcf575b60e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61012051617bdc91615720565b61012051617bea5780617b6d565b6101205180fd5b600502141590505f80616f4b565b5f617c0991615720565b5f610120525f616f38565b60e051513d5f823e3d90fd5b9095506020813d602011617c4c575b81617c3c60209383615720565b810103126109a057519481616ebb565b3d9150617c2f565b617c5e8185615d3d565b6101000361010081116151225760ff81116151225760e0515163348051d760e11b81526001821b60048201525f816024815f51602061a3995f395f51905f525afa918215617c1457617d1a606a6020946001945f91617d50575b5060e051519586915f51602061a3f95f395f51905f52828401525f51602061a3795f395f51905f5260e05184015269030ba32b9103a3430b7160b51b60a0518401528051918291018484015e81015f838201520301601f198101855284615720565b1b836005021015617d2b5750616e6a565b60e0515162461bcd60e51b815260206004820152908190610c19906024830190615783565b617d6491503d805f833e610c318183615720565b5f617cb8565b617d72618474565b50616e05565b617d8d9195503d805f833e6114678183615720565b935f616a26565b61271061010051046169a8565b617db591503d805f833e612e918183615720565b5f61697f565b617dcf91503d805f833e61104e8183615720565b5f616800565b905f51602061a3995f395f51905f523b156109a05760405191638466f41560e01b8352600483015260248201525f816044815f51602061a3995f395f51905f525afa8015615649576163b15750565b3d15617e4e573d90617e3582615a34565b91617e436040519384615720565b82523d5f602084013e565b606090565b8151617e7e926001600160a01b03909216915f91829160200182855af1617e78617e24565b91618416565b80519081617e8a575050565b602080617e9b938301019101615b02565b15617ea257565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b5f6102a0617f27829360405192839163104c13eb60e21b6020840152602060248401526044830190615783565b6020815191016a636f6e736f6c652e6c6f675afa50565b617f6d617f275f93928493604051938492632d839cb360e21b6020850152604060248501526064840190615783565b90604483015203601f198101835282615720565b905f51602061a3995f395f51905f523b156109a0575f916163926040519485938493630389490b60e61b85526004850161632e565b5f9060033d11617fc257565b905060045f803e5f5160e01c90565b5f60443d10615a31576040513d600319016004823e8051913d60248401116001600160401b0384111761803d57828201928351916001600160401b038311618035573d840160031901858401602001116180355750615a3192910160200190615720565b949350505050565b92915050565b618075617f275f93926102a08594604051948593634b5c427760e01b6020860152604060248601526064850190615783565b83810360231901604485015290615783565b60209291908391805192839101825e019081520190565b6180a96014546158f9565b618166576040519081826020600e549283815201600e5f5260205f20925f5b81811061814d5750506180dd92500383615720565b81518060051b9080820460201490151715615122576180fb81615a34565b906181096040519283615720565b808252618118601f1991615a34565b013660208301375f5b8351811015618148578061813760019286615d77565b5160208260051b8501015201618121565b509150565b84548352600194850194879450602090930192016180c8565b604051615a31816111b2816014615931565b600781019061818782546158f9565b61824357600191500190604051808360208295549384815201905f5260205f20925f5b81811061822a5750506181bf92500383615720565b81518060051b9080820460201490151715615122576181dd81615a34565b906181eb6040519283615720565b8082526181fa601f1991615a34565b013660208301375f5b8351811015618148578061821960019286615d77565b5160208260051b8501015201618203565b84548352600194850194879450602090930192016181aa565b50615a316111b29160405192838092615931565b5f806020600f5460e01b6182a56024618270600d618178565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283615720565b6011549151916001600160a01b03165afa906182bf617e24565b601054909290600581901b906001600160fb1b03811603615122575f938051602081115f1461834a57506020905b5f925b8284106182ff57505050509190565b9091929561830d8783615d3d565b83518110156158cd57830160200151600388901b91906001600160f81b031916881560088a8504141715615122576001921c1796019291906182f0565b906182ed565b905f806020600285015460e01b61836b602461827088618178565b60048601549151916001600160a01b03165afa6003618388617e24565b930154600581901b906001600160fb1b03811603615122575f938051602081115f1461841057506020905b5f925b8284106183c557505050509190565b909192956183d38783615d3d565b83518110156158cd57830160200151600388901b91906001600160f81b031916881560088a8504141715615122576001921c1796019291906183b6565b906183b3565b9061843a575080511561842b57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061846b575b61844b575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15618443565b601154600f546010546001600160a01b03909216915f9160e01b618498600d618178565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f2060405160208101906184d1816102a0888886618087565b5190205f5260205260ff600360405f20015416618cfd575f51602061a3995f395f51905f523b156109a05760405163266cf10960e01b81525f81600481835f51602061a3995f395f51905f525af1801561564957618ce8575b50618535600d618350565b90506040516365bc948160e01b81528660048201528581602481835f51602061a3995f395f51905f525af19081156114e0578691618c80575b5080516185df57608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b8151811015618c78578160206185fa8361862b95615d77565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f51602061a3995f395f51905f525afa928315618c6d578893618c3a575b508215618be2575b61865d8282615d77565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f51602061a3995f395f51905f525afa908115618bd7578b91618ba6575b506186b8600d618350565b91909382155f14618b9f575f19905b5f51602061a3995f395f51905f523b15618b86576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f51602061a3995f395f51905f525af18015618b0b57908d91618b8a575b5050618738600d618350565b601154909491506001600160a01b03165f51602061a3995f395f51905f523b15618b86576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f51602061a3995f395f51905f525af18015618b7b57908c91618b62575b505082618b57575b505015618b4d578793889360ff601354166189d2575b6001868601610100031b5f1901851b16841c81036189c4575090618852917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896102a06188278d604051928391602083019586618087565b5190206188348686615d77565b51906040519283528a602084015260408301526060820152a1615d77565b51906040519060808201928284106001600160401b038511176156545760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906188bb816102a08d8d86618087565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d60205260408420818552602052604084206040516020810190618916816102a0888886618087565b519020855260205260ff60036040862001541615618967576040948452600d6020528484209084526020526102a061895b858520938651928391602083019586618087565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b016185e1565b9450618a1d93506189e38383615d77565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f51602061a3995f395f51905f525afa948515614f5a578a95618b1a575b50618a4986600d618e57565b959096618a5781600d618f30565b60115490939192906001600160a01b03165f51602061a3995f395f51905f523b15618b16576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f51602061a3995f395f51905f525af18015618b0b57908d91618af2575b505087618aea575b5094956187cc5750935091506001906189cc565b96505f618ad6565b81618afc91615720565b618b07578b5f618ace565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211618b45575b81618b3560209383615720565b810103126109a05751935f618a3d565b3d9150618b28565b91506001906189cc565b141590505f806187b6565b81618b6c91615720565b618b77578a5f6187ae565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b81618b9491615720565b618b07578b5f61872c565b8c906186c7565b90506020813d8211618bcf575b81618bc060209383615720565b810103126109a057515f6186ad565b3d9150618bb3565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5618c32618c108484615d77565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1618653565b9092506020813d8211618c65575b81618c5560209383615720565b810103126109a05751915f61864b565b3d9150618c48565b6040513d8a823e3d90fd5b5050506188e9565b90503d8087833e618c918183615720565b8101604082820312618ce45781516001600160401b038111618ce05781618cb9918401616086565b916020810151906001600160401b038211610ade57618cd9929101616086565b505f61856e565b8780fd5b8680fd5b618cf59194505f90615720565b5f925f61852a565b91939092505f52600d60205260405f20905f526020526102a0618d2f60405f2093604051928391602083019586618087565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580618e15575b505f60105560ff1960135416601355618d896014546158f9565b80618d915750565b601f8111600114618da357505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b818110618e0a57505060145f525f602081208160145555565b5f8155600101618df1565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b818110618e4c5750618d6f565b5f8155600101618e3f565b91905f5b6101008110618e6e57505090505f905f90565b8060ff0360ff8111615122576004850154600190911b906001600160a01b03165f51602061a3995f395f51905f523b156109a0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a3995f395f51905f525af1801561564957618f20575b50618efa84618350565b81618f16575b50618f0d57600101618e5b565b92505060019190565b905015155f618f00565b5f618f2a91615720565b5f618ef0565b91905f5b6101008110618f4757505090505f905f90565b60048401546001821b906001600160a01b03165f51602061a3995f395f51905f523b156109a0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f51602061a3995f395f51905f525af1801561564957618fe3575b50618fc684618350565b81618fd9575b50618f0d57600101618f34565b905015155f618fcc565b5f618fed91615720565b5f618fbc56fe60c03461009a57601f61138538819003918201601f19168301916001600160401b0383118484101761009e57808492604094855283398101031261009a57610052602061004b836100b2565b92016100b2565b6001600160a01b039182166080521660a0526040516112be90816100c78239608051818181610233015281816105ef01526108ac015260a0518181816101ef0152610db90152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361009a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063212dd07014610a4e57806323eeca011461086b57806348bd7dfd146107a557806367ca7c91146105715780638307c6551461050b578063a9270fbe146103e4578063aad6e48814610262578063c45a01551461021e578063c6bbd5a7146101da5763ecbbc0330361000e57346101d65760203660031901126101d6576040516100ab606082610b39565b6002815260208101604036823760043560601c60405162fc63d160e41b8152602081600481855afa9182156101ae576004926020925f916101b9575b506001600160a01b03166100fa86610ede565b52604051635f64b55b60e01b815292839182905afa9081156101ae575f9161017f575b509091906001600160a01b031661013382610eeb565b52604051918291602083019060208452518091526040830191905f5b81811061015d575050500390f35b82516001600160a01b031684528594506020938401939092019160010161014f565b6101a1915060203d6020116101a7575b6101998183610b39565b810190610b8b565b5f61011d565b503d61018f565b6040513d5f823e3d90fd5b6101d09150833d85116101a7576101998183610b39565b5f6100e7565b5f80fd5b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d6575f3660031901126101d6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101d65760803660031901126101d65761027b610a9b565b610283610ab1565b5060643567ffffffffffffffff81116101d657366023820112156101d6578060040135906102b082610b5b565b916102be6040519384610b39565b8083526024602084019160051b830101913683116101d657602401905b8282106103d4575050508051916102f183610b5b565b926102ff6040519485610b39565b80845261030e601f1991610b5b565b015f5b8181106103b157505060043560601c905f5b8351811015610360578061034461033c60019387610efb565b518486610ceb565b61034e8288610efb565b526103598187610efb565b5001610323565b846040518091602082016020835281518091526020604084019201905f5b81811061038c575050500390f35b825180518552602090810151818601528695506040909401939092019160010161037e565b6020906040516103c081610b01565b5f81525f8382015282828801015201610311565b81358152602091820191016102db565b346101d65760046101206103f736610ac7565b9160409391935194858092631865c57d60e01b825260601c5afa9283156101ae575f936104da575b506040519261042f606085610b39565b600284526020840192604036853781516020909201516001600160801b03908116939216916001600160a01b03908116911610156104bf5761047084610ede565b5261047a83610eeb565b52905b604051918291602083019060208452518091526040830191905f5b8181106104a6575050500390f35b8251845285945060209384019390920191600101610498565b906104c984610ede565b526104d383610eeb565b529061047d565b6104fd9193506101203d8111610504575b6104f58183610b39565b810190610bd9565b918361041f565b503d6104eb565b346101d65760a03660031901126101d657610524610a9b565b61052c610ab1565b5060643560028110156101d65760809161054c9160843591600435610f0f565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101d65760803660031901126101d6576004356001600160a01b038116908190036101d65760643567ffffffffffffffff81116101d657366023820112156101d657806004013567ffffffffffffffff81116101d65781013660248201116101d6576040516315e3ab2960e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f9161076b575b501561073557602090829003126101d6576024013560018060a01b0381168091036101d6575f809160405160208101916323b872dd60e01b83526024820152336044820152602435606482015260648152610683608482610b39565b519082855af13d15610729573d67ffffffffffffffff8111610715576106cb91604051916106bb6020601f19601f8401160184610b39565b82523d5f602084013e5b8361122a565b80519081151591826106f2575b50506106e057005b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101d657602061070d9101610bcc565b1582806106d8565b634e487b7160e01b5f52604160045260245ffd5b6106cb906060906106c5565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd119858dd1bdc9e541bdbdb60921b6044820152606490fd5b90506020813d60201161079d575b8161078660209383610b39565b810103126101d65761079790610bcc565b84610627565b3d9150610779565b346101d6576107b336610ac7565b5050506040516107c4608082610b39565b6003815260208101606036823760016107dc83610ede565b5260026107e883610eeb565b528151600210156108575760036060830152604051906020820192602083525180935260408201905f935b8085106108205783830384f35b9091825190600a8210156108435760208160019382935201930194019390610813565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101d65760403660031901126101d6576004356024358101808211610a3a5760405163b4b9d1f160e01b8152600481019290925260248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101ae575f91610998575b5080519061090a6108f483610b5b565b926109026040519485610b39565b808452610b5b565b602083019190601f19013683375f5b8151811015610953576001906bffffffffffffffffffffffff1961093d8285610efb565b5160601b1661094c8287610efb565b5201610919565b505090604051918291602083019060208452518091526040830191905f5b81811061097f575050500390f35b8251845285945060209384019390920191600101610971565b90503d805f833e6109a98183610b39565b8101906020818303126101d65780519067ffffffffffffffff82116101d657019080601f830112156101d6578151906109e182610b5b565b926109ef6040519485610b39565b82845260208085019360051b8201019182116101d657602001915b818310610a1a57505050816108e4565b82516001600160a01b03811681036101d657815260209283019201610a0a565b634e487b7160e01b5f52601160045260245ffd5b346101d65760603660031901126101d6576004356001600160a01b03811681036101d657610a89604091610a80610a9b565b60443591610ceb565b60208251918051835201516020820152f35b602435906001600160a01b03821682036101d657565b604435906001600160a01b03821682036101d657565b60609060031901126101d657600435906024356001600160a01b03811681036101d657906044356001600160a01b03811681036101d65790565b6040810190811067ffffffffffffffff82111761071557604052565b6080810190811067ffffffffffffffff82111761071557604052565b90601f8019910116810190811067ffffffffffffffff82111761071557604052565b67ffffffffffffffff81116107155760051b60200190565b60405190610b8082610b01565b5f6020838281520152565b908160209103126101d657516001600160a01b03811681036101d65790565b51906001600160801b03821682036101d657565b51908160070b82036101d657565b519081151582036101d657565b90816101209103126101d65760405190610120820182811067ffffffffffffffff82111761071557604052610c0d81610baa565b8252610c1b60208201610baa565b6020830152610c2c60408201610bbe565b6040830152610c3d60608201610bbe565b6060830152608081015164ffffffffff811681036101d657608083015260a08101518060030b81036101d65760a0830152610c7a60c08201610bcc565b60c083015260e08101519063ffffffff821682036101d6576101009160e0840152015160ff811681036101d65761010082015290565b60030b6063190190637fffffff198212637fffffff831317610a3a57565b60030b60640190637fffffff8213637fffffff19831217610a3a57565b919091610cf6610b73565b5060405162fc63d160e41b81526001600160a01b03919091169290602081600481875afa9081156101ae575f91610ebf575b506001600160a01b039182169116148015610e5c57604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610d7b916001600160801b03935f91610e3d575b50015160030b610cce565b925b604051946349b5931160e01b8652600486015216602484015260448301525f606483015260030b608482015260608160a4815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ae575f905f92610e03575b5060405191610df983610b01565b8252602082015290565b9150506060813d606011610e35575b81610e1f60609383610b39565b810103126101d65760208151910151905f610deb565b3d9150610e12565b610e5691506101203d8111610504576104f58183610b39565b5f610d70565b604051631865c57d60e01b815261012081600481875afa80156101ae5760a0610e9a916001600160801b03935f91610ea0575b50015160030b610cb0565b92610d7d565b610eb991506101203d8111610504576104f58183610b39565b5f610e8f565b610ed8915060203d6020116101a7576101998183610b39565b5f610d28565b8051156108575760200190565b8051600110156108575760400190565b80518210156108575760209160051b010190565b9290604051936060850185811067ffffffffffffffff821117610715576040525f85525f6020860152604051610f4481610b01565b5f81525f602082015260408601528483156111a7575060601c9060405162fc63d160e41b8152602081600481865afa9081156101ae575f91611188575b506001600160a01b03828116911614801561114c57604051631865c57d60e01b815261012081600481875afa9081156101ae57610fcc9160a0915f91610e3d5750015160030b610cce565b905b5a956002811015610843576001036110a6579360409161103b95835192610ff484610b1d565b8352602083015260018383015260030b6060820152815190336020830152602082526110208383610b39565b8251633eece7db60e01b8152958692839233600485016111c6565b03815f865af19182156101ae5761105c935f93611074575b50828652610ceb565b60408301525b5a8103908111610a3a57602082015290565b61109791935060403d60401161109f575b61108f8183610b39565b8101906111b0565b50915f611053565b503d611085565b6040906111029594928251916110bb83610b1d565b86835260208301525f8383015260030b6060820152815190336020830152602082526110e78383610b39565b8251633eece7db60e01b8152968792839233600485016111c6565b03815f855af180156101ae57611121945f9161112b575b508652610ceb565b6040830152611062565b611144915060403d60401161109f5761108f8183610b39565b90505f611119565b604051631865c57d60e01b815261012081600481875afa9081156101ae576111829160a0915f91610ea05750015160030b610cb0565b90610fce565b6111a1915060203d6020116101a7576101998183610b39565b5f610f81565b94505050505090565b91908260409103126101d6576020825192015190565b9192606060e09460209360018060a01b0316855280518486015283810151151560408601526040810151151582860152015160030b608084015260c060a084015280519182918260c0860152018484015e5f828201840152601f01601f1916010190565b9061124e575080511561123f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061127f575b61125f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561125756fea2646970667358221220f3ef5375aaed25576a473447336d380f40555b4f9090d9d18f46219133f4367064736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4814cf6d2fe3e1b326114b07d22a6f6bb59e346c6700000000000000000000000073746453746f726167652066696e642853746453746f72616765293a2050616300000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fa2646970667358221220bae43ca7403f70453b04d8151f07828c1fb657532904f476624062272a2063fc64736f6c634300081b0033","sourceMap":"270:9967:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7726:30;270:9967;;;;;;;;:::i;:::-;880:2;270:9967;;-1:-1:-1;;880:2:75;;;270:9967;880:2;;;;7771:13;7786:19;880:2;7786:19;;;;270:9967;;;;;880:2;27501:38:3;;1590:14:0;;;;27501:38:3;;8077:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;880:2:75;270:9967;;;27568:30:3;;;;;;:::i;:::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7548:13;270:9967;;;7505:10:8;270:9967:75;;:::i;:::-;8077:4;;;;270:9967;;;;;;;;;6036:17;;;270:9967;;;;;;;;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;880:2;270:9967;;;;;;880:2;15735:37:8;;;;;;;;;;:::i;:::-;;880:2:75;;15735:37:8;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;880:2;270:9967;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;7766:283:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;880:2;270:9967;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;880:2:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;880:2;270:9967;;;;15943:15:8;7548:13:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;7766:283:75;270:9967;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;880:2;270:9967;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;7766:283:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;920:14;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;7766:283:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;7766:283:75;16720:176:8;;;14785:4;;;;;:::i;:::-;270:9967:75;;;;880:2;27501:38:3;;1590:14:0;;;;27501:38:3;;8077:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7548:13;270:9967;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;880:2;270:9967;;;;;;880:2;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;880:2;270:9967;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;7766:283:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;880:2;270:9967;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;880:2:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;880:2;270:9967;;;;15943:15:8;7548:13:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;7766:283:75;270:9967;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;880:2;270:9967;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;7766:283:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;972:13;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;7766:283:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;7766:283:75;16720:176:8;;;14785:4;;;;;:::i;:::-;270:9967:75;;;;;;:::i;:::-;880:2;270:9967;;;;;;;;;8251:13;;;8266:19;880:2;8266:19;;;;8536:13;;7548;8551:23;880:2;8551:23;;;;270:9967;;;8576:3;8604:9;;;;:::i;:::-;;270:9967;7548:13;880:2;;;;;;;;8632:13;:30;8750:53;8632:13;;;;;:::i;:::-;;270:9967;8632:30;;:::i;:::-;8705:21;880:2;8686:9;;;;:::i;:::-;;:17;270:9967;880:2;8705:13;;;;:::i;:::-;;:21;270:9967;8705:21;;:::i;:::-;270:9967;8783:13;8750:9;;;;;:::i;:::-;;:15;;880:2;8783:13;;:::i;:::-;;:19;;8750:53;;:::i;:::-;880:2;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;270:9967:75;;1590:14:0;;;;2943:24:1;;270:9967:75;2943:24:1;;270:9967:75;7548:13;27501:38:3;270:9967:75;;;2943:24:1;;27501:38:3;2943:24:1;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;;;;8576:3:75;;;7548:13;880:2;8536:13;;2943:24:1;;;;;:::i;:::-;270:9967:75;;;;;2943:24:1;;;;270:9967:75;;;;2943:24:1;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;2943:24:1;270:9967:75;;;880:2;-1:-1:-1;;;523:5:65;;6854:12:8;270:9967:75;523:5:65;27501:38:3;270:9967:75;523:5:65;8287:3:75;270:9967;;-1:-1:-1;;;8319:13:75;;880:2;270:9967;;;8319:13;-1:-1:-1;;;;;;;;;;;8319:13:75;;;;;;;;;;;8287:3;-1:-1:-1;880:2:75;497:42;;270:9967;;-1:-1:-1;;;8347:52:75;;-1:-1:-1;;;;;270:9967:75;;;;8347:52;;270:9967;972:13;27501:38:3;972:13:75;;270:9967;;;27501:38:3;270:9967:75;8347:52;-1:-1:-1;;;;;;;;;;;8347:52:75;;;;;;;;8287:3;-1:-1:-1;880:2:75;497:42;270:9967;;8426:47;;;;-1:-1:-1;;;;;270:9967:75;8462:10;;;;:::i;:::-;270:9967;;;1590:14:0;;;;;;;;;8426:47:75;;7548:13;270:9967;8426:47;;;:::i;:::-;;;;;;;;;;;;;;8287:3;8414:59;;;;;:::i;:::-;;;;;;:::i;:::-;;270:9967;;1590:14:0;;;;8487:23:75;;270:9967;8487:23;;270:9967;880:2;8487:23;27501:38:3;8487:23:75;;-1:-1:-1;;;;;;;;;;;8487:23:75;;;;;;;7548:13;8487:23;;;;8287:3;;880:2;8251:13;;8487:23;;;880:2;8487:23;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;270:9967;;1590:14:0;270:9967:75;;1590:14:0;;;;8426:47:75;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;270:9967;;1590:14:0;270:9967:75;;1590:14:0;;;;8347:52:75;;;880:2;8347:52;;;;;;;;;:::i;:::-;;;8319:13;;;880:2;8319:13;;;;;;;;;1590:14:0;8319:13:75;;;:::i;:::-;;;1590:14:0;;;;;8319:13:75;;;1590:14:0;-1:-1:-1;270:9967:75;;8319:13;;;-1:-1:-1;8319:13:75;;270:9967;880:2;270:9967;;;:::i;:::-;;;;;;;;;;16720:176:8;270:9967:75;;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;270:9967:75;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;270:9967:75;;;;;16769:41:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;12810:59:8;270:9967:75;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;270:9967:75;;-1:-1:-1;;;16824:61:8;;880:2:75;270:9967;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;270:9967:75;12810:59:8;27501:38:3;270:9967:75;;12810:59:8;-1:-1:-1;;;7981:3:75;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;270:9967:75;;;16769:41:8;;;;270:9967:75;;;16724:29:8;972:13:75;16736:17:8;;;;16724:29;;;16587:43;;;;:::i;:::-;270:9967:75;;;;;16587:43:8;;;;270:9967:75;;;;16587:43:8;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;16587:43:8;270:9967:75;;;16424:32:8;;;;880:2:75;16424:32:8;;880:2:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;15938:460:8;16028:34;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;7548:13;270:9967;;;;1590:14:0;;;16314:19:8;;;270:9967:75;16314:19:8;;270:9967:75;16314:19:8;;27501:38:3;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;880:2:75;16314:19:8;;16170:185;16314:19;;;;;15938:460;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;972:13:75;16103:21:8;12810:59;;;15938:460;;;12810:59;270:9967:75;;-1:-1:-1;;;12810:59:8;;880:2:75;270:9967;12810:59:8;;270:9967:75;;;;;;27501:38:3;270:9967:75;;;;:::i;:::-;12810:59:8;;;16314:19;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;270:9967:75;-1:-1:-1;;;523:5:65;;6854:12:8;270:9967:75;523:5:65;27501:38:3;270:9967:75;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;27501:38:3;270:9967:75;;16724:29:8;920:14:75;16736:17:8;;;;16724:29;;;16587:43;;;;:::i;:::-;270:9967:75;;;;;16587:43:8;;;;16424:32;;;;880:2:75;16424:32:8;;880:2:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;7548:13;270:9967;;;;1590:14:0;;;16314:19:8;;;270:9967:75;16314:19:8;;270:9967:75;16314:19:8;;27501:38:3;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;880:2:75;16314:19:8;;16170:185;16314:19;;;;;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;920:14:75;16103:21:8;12810:59;;;15938:460;;;15698:126;13208:33;;:::i;:::-;;15698:126;;7807:3:75;972:13;;;;7826:213;;880:2;7548:13;880:2;;;;;;;523:5:65;7981:3:75;523:5:65;;7981:3:75;523:5:65;;;;;;;;;;;;7997:8:75;523:5:65;;;;;;;7968:37:75;7548:13;7968:37;;;;;:::i;:::-;270:9967;880:2;7771:13;;523:5:65;-1:-1:-1;;;523:5:65;;;270:9967:75;523:5:65;;270:9967:75;523:5:65;972:13:75;-1:-1:-1;;;972:13:75;;;270:9967;972:13;;;;270:9967;;;;;;;;;;;;;;;1016:26:12;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:5;270:9967:75;;;;;;;2421:18:5;270:9967:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1600:7;497:42;270:9967;;-1:-1:-1;;;1600:34:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;1600:34;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;;;;;;1600:34;;270:9967;;-1:-1:-1;;;;;270:9967:75;1600:34;;;;;;;1762:70;1600:34;1771:9;1600:34;;;;;270:9967;;1645:26;270:9967;;1645:26;:::i;:::-;1681:71;1690:9;;;:::i;:::-;270:9967;;;;;;;;:::i;:::-;;972:13;;270:9967;1600:7;270:9967;;;-1:-1:-1;;;270:9967:75;;;;1681:71;:::i;:::-;1771:9;:::i;:::-;270:9967;;;;;;;;:::i;:::-;;972:13;;270:9967;1600:7;270:9967;;;-1:-1:-1;;;270:9967:75;;;;1762:70;:::i;:::-;270:9967;;1600:34;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;270:9967;;1590:14:0;270:9967:75;;1590:14:0;;;;270:9967:75;;;;;;;-1:-1:-1;;270:9967:75;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;270:9967:75;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;270:9967:75;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;270:9967:75;;;;;;;;;1136:42;270:9967;;;;;497:42;270:9967;;;1590:14:0;;;2001:34:75;;796:42;270:9967;;;2001:34;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;2001:34;;;;;;;;;;;;;;;;270:9967;2065:9;;;;:::i;:::-;270:9967;2055:19;;-1:-1:-1;;;;;;;;;;;2045:30:75;;;;270:9967;;1590:14:0;;;;2045:30:75;;270:9967;2045:30;;270:9967;2045:30;;270:9967;2045:30;-1:-1:-1;;;;;;;;;;;2045:30:75;;;;;;;;;;;270:9967;2105:9;;;;;:::i;:::-;270:9967;2095:19;;-1:-1:-1;;;;;;;;;;;2085:30:75;;;;270:9967;;1590:14:0;;;;2085:30:75;;270:9967;2085:30;;270:9967;2085:30;;270:9967;2085:30;-1:-1:-1;;;;;;;;;;;2085:30:75;;;;;;;;;;;270:9967;2125:25;;-1:-1:-1;;;;;;;;;;;2125:25:75;;;;270:9967;;-1:-1:-1;;;2125:25:75;;2145:4;2135:14;;270:9967;2125:25;;270:9967;2125:25;270:9967;;;-1:-1:-1;;;;;;;;;;;2125:25:75;;;;;;;;;;;270:9967;2160:25;;-1:-1:-1;;;;;;;;;;;2160:25:75;;;;270:9967;;-1:-1:-1;;;2160:25:75;;2145:4;2170:14;;270:9967;2160:25;;270:9967;;2160:25;270:9967;;;-1:-1:-1;;;;;;;;;;;2160:25:75;;;;;;;;;;;270:9967;2337:39;270:9967;;;;;;;;;;:::i;:::-;2237:1;270:9967;;880:2;270:9967;;880:2;;;2249:20;;;:::i;:::-;270:9967;2279:20;;;:::i;:::-;270:9967;;;1590:14:0;;;;;;;;;2337:39:75;;270:9967;2337:39;;;:::i;:::-;;;;;;;;;;;;;;270:9967;2392:13;;2426:3;270:9967;;2407:17;;;;;2454:9;2445:32;2454:9;270:9967;2454:9;;;:::i;:::-;;270:9967;2445:32;:::i;:::-;2491:34;270:9967;2500:9;;;;:::i;:::-;;:21;270:9967;2491:34;:::i;:::-;880:2;2392:13;;2407:17;;270:9967;;2337:39;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;270:9967;;;1590:14:0;;;;;;;;2160:25:75;;;;;;;;:::i;:::-;270:9967;;2160:25;;;;;270:9967;;;;;2125:25;;;;;:::i;:::-;270:9967;;2125:25;;;;2085:30;;;;;:::i;:::-;270:9967;;2085:30;;;;2045;;;;;:::i;:::-;270:9967;;2045:30;;;;;270:9967;;1590:14:0;270:9967:75;;1590:14:0;;;;2001:34:75;;;;;;;;;;;;;:::i;:::-;;;;270:9967;;;;;;;-1:-1:-1;;270:9967:75;;;;;;534:59:65;270:9967:75;534:59:65;;;;;;;;:::i;:::-;270:9967:75;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;9712:7;497:42;270:9967;;-1:-1:-1;;;9712:33:75;;270:9967;9712:33;;270:9967;;;9673:2;270:9967;;;;;;;;;9712:33;;270:9967;;-1:-1:-1;;;;;270:9967:75;9712:33;;;;;;;;;;;270:9967;;;;;;;;;;;;:::i;:::-;;972:13;;270:9967;9712:7;270:9967;;;;;;;;-1:-1:-1;;;;;;;;;;;14510:29:1;;;;270:9967:75;;;;;;1590:14:0;;;;;;;;14510:29:1;;270:9967:75;14510:29:1;;270:9967:75;9673:2;270:9967;;;;;9712:33;270:9967;;;;;;;;:::i;:::-;14510:29:1;;-1:-1:-1;;;;;;;;;;;14510:29:1;;;;;;;;270:9967:75;;;;;9903:117;;270:9967;;;9903:117;9958:10;9941:68;9958:10;;:::i;:::-;270:9967;;;;;;;;:::i;:::-;9712:7;972:13;;270:9967;9712:7;270:9967;;;9941:68;:::i;14510:29:1:-;;;;;:::i;:::-;270:9967:75;;14510:29:1;;;;9712:33:75;;;;;;;;;;;;:::i;:::-;;;:7;270:9967;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;:::i;:::-;9712:33;;;270:9967;;;;;;;;;;;;;;;;;3190:18:5;270:9967:75;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3190:18:5;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;1136:42;270:9967;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;1590:14:0;270:9967:75;1590:14:0;270:9967:75;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;9439:7;497:42;270:9967;;-1:-1:-1;;;9439:23:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;9439:23;;270:9967;;;;;;;9439:23;;270:9967;;-1:-1:-1;;;;;270:9967:75;9439:23;;;;;;;;;;;270:9967;;9473:26;270:9967;;9473:26;:::i;:::-;-1:-1:-1;;;;;9518:9:75;;;:::i;:::-;270:9967;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;270:9967:75;;1590:14:0;;;;3533:24:1;;270:9967:75;3533:24:1;;270:9967:75;-1:-1:-1;;;;;;;;;;;9439:23:75;497:42;;270:9967;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;;;;270:9967:75;-1:-1:-1;;;;;;270:9967:75;9552:9;;-1:-1:-1;9552:9:75;:::i;:::-;270:9967;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;270:9967:75;;1590:14:0;;;;3533:24:1;;270:9967:75;3533:24:1;;270:9967:75;-1:-1:-1;;;;;;;;;;;9439:23:75;497:42;;270:9967;3533:24:1;;;;-1:-1:-1;;;;;;;;;;;3533:24:1;;;;;;;;270:9967:75;;3533:24:1;;;;;:::i;:::-;270:9967:75;;3533:24:1;270:9967:75;3533:24:1;270:9967:75;;3533:24:1;;;;;:::i;:::-;270:9967:75;;3533:24:1;;;;;270:9967:75;;;9439:23;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;270:9967;;;;;;;;;;;;;2707:18:5;270:9967:75;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;270:9967:75;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:39;270:9967;;;;;;:::i;:::-;2683:1;270:9967;;-1:-1:-1;;880:2:75;;270:9967;880:2;;;;2708:5;2695:18;;;:::i;:::-;270:9967;880:2;497:42;270:9967;;-1:-1:-1;;;2761:39:75;;270:9967;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;2761:39;;;:::i;:::-;;;;;;;;;;;2977:9;2955:126;2761:39;880:2;2761:39;;;;;270:9967;;2811:26;270:9967;;2811:26;:::i;:::-;2847:98;2869:9;;;:::i;:::-;;270:9967;972:13;;:::i;:::-;2847:98;;:::i;:::-;2977:9;:::i;:::-;;:21;270:9967;972:13;;:::i;2761:39::-;;;;;;;;;;;;;:::i;:::-;;;;;270:9967;1590:14:0;270:9967:75;;1590:14:0;;;;270:9967:75;;;;;;;-1:-1:-1;;270:9967:75;;;;;;;;;;;;;;;;5702:38;;;270:9967;5702:38;270:9967;497:42;270:9967;;-1:-1:-1;;;5833:34:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;5833:34;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;;;;;;5833:34;;270:9967;;-1:-1:-1;;;;;270:9967:75;5833:34;;;;;;;;;;;5702:38;972:13;;;;;;;270:9967;5882:21;;;;;;;5986:9;;;;;;;;:::i;:::-;270:9967;5968:27;;-1:-1:-1;;;;;;;;;;;5958:38:75;;;;270:9967;;1590:14:0;;;;5958:38:75;;270:9967;5958:38;;270:9967;5958:38;;270:9967;5958:38;-1:-1:-1;;;;;;;;;;;5958:38:75;;;;;;;;5878:489;270:9967;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;6029:4:75;270:9967;27501:38:3;;270:9967:75;;27501:38:3;;;270:9967:75;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;;;;;;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;;;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;5878:489:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;;;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;270:9967:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;;;;;;15943:15:8;270:9967:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;270:9967:75;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;;;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5878:489:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;-1:-1:-1;;270:9967:75;;;12656:92:8;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5878:489:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;5878:489:75;16720:176:8;;;14785:4;;;;;:::i;:::-;270:9967:75;497:42;;270:9967;;-1:-1:-1;;;6068:56:75;;-1:-1:-1;;;;;270:9967:75;;;;6068:56;;270:9967;-1:-1:-1;;270:9967:75;972:13;;270:9967;;;;;6068:56;-1:-1:-1;;;;;;;;;;;6068:56:75;;;;;;;;5878:489;;;270:9967;;-1:-1:-1;;;6400:37:75;;6431:4;270:9967;6400:37;;270:9967;;;;;;-1:-1:-1;;;;;;;;;;;6400:37:75;;;;;;;;;;;5878:489;-1:-1:-1;270:9967:75;;-1:-1:-1;;;6469:36:75;;6431:4;270:9967;6469:36;;270:9967;;;;;;-1:-1:-1;;;;;;;;;;;6469:36:75;;;;;;;;;;;5878:489;-1:-1:-1;270:9967:75;497:42;270:9967;;-1:-1:-1;;;6549:52:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;6549:52;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;972:13;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;972:13;;270:9967;5833:34;972:13;;;;;;;;;270:9967;;;;;972:13;;270:9967;;6549:52;;270:9967;;1590:14:0;-1:-1:-1;;;;;270:9967:75;6549:52;;;;;;;;;;;5878:489;270:9967;;;6612:749;;270:9967;;;6612:749;6662:21;;;270:9967;;-1:-1:-1;;;6770:37:75;;6431:4;270:9967;6770:37;;270:9967;;;;;-1:-1:-1;;;;;;;;;;;6770:37:75;;;;;;;;;;;6658:693;6770:52;;;;;;:::i;:::-;;;:::i;:::-;270:9967;;;-1:-1:-1;;;6946:36:75;;6431:4;270:9967;6946:36;;270:9967;;;;;-1:-1:-1;;;;;;;;;;;6946:36:75;;;;;;;;;;;6658:693;6932:50;;;;;;:::i;:::-;6612:749;;;;;270:9967;;;6946:36;;;270:9967;6946:36;;270:9967;6946:36;;;;;;1590:14:0;6946:36:75;;;:::i;:::-;;;1590:14:0;;;;;6932:50:75;6946:36;;;;;-1:-1:-1;6946:36:75;;6770:37;;;270:9967;6770:37;;270:9967;6770:37;;;;;;1590:14:0;6770:37:75;;;:::i;:::-;;;1590:14:0;;;;;6770:52:75;:37;;;;;-1:-1:-1;6770:37:75;;6658:693;270:9967;;-1:-1:-1;;;7120:36:75;;6431:4;270:9967;7120:36;;270:9967;;;;;;;;-1:-1:-1;;;;;;;;;;;7120:36:75;;;;;;;;;;;6658:693;7106:50;;;;;;:::i;:::-;270:9967;;;-1:-1:-1;;;7266:37:75;;6431:4;270:9967;7266:37;;270:9967;;;;;-1:-1:-1;;;;;;;;;;;7266:37:75;;;;;;;;;;;6658:693;7266:52;;;;;;:::i;:::-;6658:693;;7266:37;;;270:9967;7266:37;;270:9967;7266:37;;;;;;1590:14:0;7266:37:75;;;:::i;:::-;;;1590:14:0;;;;;7266:52:75;:37;;;;;-1:-1:-1;7266:37:75;;7120:36;;;270:9967;7120:36;;270:9967;7120:36;;;;;;1590:14:0;7120:36:75;;;:::i;:::-;;;1590:14:0;;;;;7106:50:75;7120:36;;;;;-1:-1:-1;7120:36:75;;6549:52;;;;;972:13;6549:52;972:13;6549:52;;;;;;;:::i;:::-;;;;;6469:36;;;;;270:9967;6469:36;;270:9967;6469:36;;;;;;1590:14:0;6469:36:75;;;:::i;:::-;;;1590:14:0;;;;972:13:75;1590:14:0;;;6469:36:75;;;;;;;-1:-1:-1;6469:36:75;;6400:37;;;;;270:9967;6400:37;;270:9967;6400:37;;;;;;1590:14:0;6400:37:75;;;:::i;:::-;;;1590:14:0;;;;;;;6400:37:75;;;;;;;-1:-1:-1;6400:37:75;;6068:56;;;270:9967;6068:56;270:9967;6068:56;;;;;;;:::i;:::-;;;;;16720:176:8;270:9967:75;;;;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;270:9967:75;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;270:9967:75;;;;16769:41:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;16769:41;;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;270:9967:75;;-1:-1:-1;;;16824:61:8;;270:9967:75;;16824:61:8;;12810:59;;270:9967:75;12810:59:8;;270:9967:75;12810:59:8;270:9967:75;;;12810:59:8;-1:-1:-1;;;5833:34:75;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;270:9967:75;;16769:41:8;;;16724:29;-1:-1:-1;;16736:17:8;;;-1:-1:-1;6036:17:75;16724:29:8;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;270:9967:75;16424:32:8;;270:9967:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;270:9967:75;;;;;16314:19:8;;270:9967:75;16314:19:8;270:9967:75;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;270:9967:75;16314:19:8;;16170:185;16314:19;270:9967:75;16314:19:8;;;;15938:460;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;270:9967:75;;-1:-1:-1;;;12810:59:8;;270:9967:75;;12810:59:8;;270:9967:75;;;;;;;;;:::i;16314:19:8:-;;;;;;;;;;;;;;:::i;:::-;;;;;270:9967:75;-1:-1:-1;;;523:5:65;;6854:12:8;270:9967:75;523:5:65;270:9967:75;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;;5958:38;;;;;:::i;:::-;270:9967;;5958:38;;;;5878:489;6222:9;;;:::i;:::-;270:9967;6204:27;;-1:-1:-1;;;;;;;;;;;6194:38:75;;;;270:9967;;1590:14:0;;;;6194:38:75;;270:9967;6194:38;;270:9967;6194:38;;270:9967;6194:38;-1:-1:-1;;;;;;;;;;;6194:38:75;;;;;;;;;;;5878:489;270:9967;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;6265:4:75;270:9967;27501:38:3;;270:9967:75;;27501:38:3;;;270:9967:75;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;;;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;;;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;5878:489:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;;;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;270:9967:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;;;;;;15943:15:8;270:9967:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;;:::i;:::-;15938:460;;5878:489:75;270:9967;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;;;;;;;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;5878:489:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;5878:489:75;16678:31:8;;;;;:::i;:::-;16724:8;;;270:9967:75;;;16724:29:8;;5878:489:75;16720:176:8;;;;14785:4;;;;;:::i;:::-;270:9967:75;497:42;;270:9967;;-1:-1:-1;;;6302:54:75;;-1:-1:-1;;;;;270:9967:75;;;;6302:54;;270:9967;972:13;;;270:9967;;;;;972:13;270:9967;6302:54;-1:-1:-1;;;;;;;;;;;6302:54:75;;;;;;;;5878:489;;;;6302:54;;;270:9967;6302:54;270:9967;6302:54;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;270:9967:75;16424:32:8;;270:9967:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;;;;;1590:14:0;;;;16314:19:8;;;270:9967:75;16314:19:8;;270:9967:75;16314:19:8;;270:9967:75;16314:19:8;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;270:9967:75;16314:19:8;16170:185;16314:19;;;;;15938:460;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;12810:59;270:9967:75;;-1:-1:-1;;;12810:59:8;;270:9967:75;;12810:59:8;;270:9967:75;;;;;;;;:::i;16314:19:8:-;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;6194:38:75;;;;;:::i;:::-;270:9967;;6194:38;;;;972:13;-1:-1:-1;;;972:13:75;;;270:9967;972:13;270:9967;;972:13;5833:34;;;;;;;;;;;;;:::i;:::-;;;;5702:38;;;;270:9967;;;;;;;;;;;;;2883:26:5;270:9967:75;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2883:26:5;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;1136:42;270:9967;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;270:9967:75;1590:14:0;270:9967:75;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;;;;;;1590:14:0;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;10190:38;270:9967;;;;;;:::i;:::-;10124:1;270:9967;;;;;;;880:2;-1:-1:-1;;;;;;;;;;;10136:44:75;;;:::i;:::-;270:9967;;497:42;-1:-1:-1;;;;;270:9967:75;10190:38;:::i;270:9967::-;;;;;;;;;;;;;8986:7;497:42;270:9967;;-1:-1:-1;;;8986:40:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;8986:40;;270:9967;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;-1:-1:-1;;;;;;;;;;;270:9967:75;;;;;;;;;8986:40;;270:9967;;-1:-1:-1;;;;;270:9967:75;8986:40;;;;;;;;;;;270:9967;;9037:32;270:9967;;9037:32;:::i;:::-;9096:15;;;;:::i;:::-;;:::i;:::-;270:9967;;;;;;9114:29;;;:::i;:::-;9171:15;;;;:::i;:::-;270:9967;;;;;;9245:15;9189:28;;9245:15;9189:28;;:::i;:::-;9245:15;:::i;:::-;270:9967;;;;;;9263:33;;;:::i;270:9967::-;-1:-1:-1;;;972:13:75;;;270:9967;972:13;270:9967;;972:13;8986:40;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;270:9967;;;;;;;;;;;;;;;;;;;;;:::i;:::-;880:2;270:9967;;-1:-1:-1;;880:2:75;270:9967;880:2;;;;3271:13;3286:19;880:2;3286:19;;;;270:9967;;3411:39;270:9967;;1136:42;270:9967;;;;880:2;497:42;270:9967;;;;1590:14:0;;;;;;;;;3411:39:75;;270:9967;3411:39;;;:::i;:::-;;;;;;;;;;;;;;3266:108;3466:13;;3481:23;880:2;3481:23;;;;270:9967;;;3506:3;3534:9;;;;:::i;:::-;;880:2;3350:1;880:2;;;;;;;;3534:41;3561:13;;;;;;:::i;:::-;;3534:41;;:::i;:::-;880:2;;-1:-1:-1;;;;;;;;;;;16153:24:1;;;;270:9967:75;;1590:14:0;;;;16153:24:1;;270:9967:75;16153:24:1;;270:9967:75;3350:1;270:9967;;;;16153:24:1;;;;-1:-1:-1;;;;;;;;;;;16153:24:1;;;;;;;;3506:3:75;3648:9;;3687:38;880:2;3696:13;3350:1;3648:9;3639:34;3648:9;;;;;:::i;3639:34::-;3696:13;;:::i;3687:38::-;880:2;3466:13;;16153:24:1;;;;;:::i;:::-;270:9967:75;;16153:24:1;;;;880:2:75;-1:-1:-1;;;523:5:65;;;270:9967:75;523:5:65;;270:9967:75;523:5:65;3411:39:75;;;;;;;;;;;;;:::i;:::-;;;;3307:3;3350:1;880:2;;;;;;;523:5:65;3339:3:75;523:5:65;;3339:3:75;523:5:65;;;;;;;;;;;;3355:8:75;523:5:65;;;;;;;3326:37:75;3350:1;3326:37;;;;;:::i;:::-;270:9967;880:2;3271:13;;523:5:65;-1:-1:-1;;;523:5:65;;;270:9967:75;523:5:65;;270:9967:75;523:5:65;270:9967:75;;;;;;;;;;;;;;;;;;3038:18:5;270:9967:75;;;;;;;3038:18:5;270:9967:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;270:9967:75;;;;;;;3331:16:5;270:9967:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3485:19:5;270:9967:75;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3485:19:5;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:42;270:9967;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;1136:42;270:9967;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:5;270:9967:75;;;;;;;2563:16:5;270:9967:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27501:38:3;;;1590:14:0;;;;27501:38:3;;4836:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7505:10:8;270:9967:75;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;27501:38:3;270:9967:75;;;;;;27501:38:3;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;27501:38:3;270:9967:75;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;27501:38:3;270:9967:75;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;27501:38:3;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;27501:38:3;270:9967:75;;;;;15943:15:8;7505:10;15943:15;;270:9967:75;15961:16:8;7009:9;15961:16;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;270:9967:75;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;27501:38:3;270:9967:75;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;270:9967:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;920:14;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;270:9967:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;270:9967:75;16720:176:8;;;14785:4;;;:::i;:::-;270:9967:75;;;;27501:38:3;;;1590:14:0;;;;27501:38:3;;4836:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7505:10:8;270:9967:75;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;27501:38:3;270:9967:75;;;;;;27501:38:3;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;27501:38:3;270:9967:75;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;27501:38:3;270:9967:75;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;27501:38:3;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;27501:38:3;270:9967:75;;;;;15943:15:8;7505:10;15943:15;;270:9967:75;15961:16:8;7009:9;15961:16;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;270:9967:75;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;27501:38:3;270:9967:75;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;270:9967:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;972:13;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;270:9967:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;270:9967:75;16720:176:8;;;14785:4;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;4956:23:75;;;;270:9967;;-1:-1:-1;;;4956:23:75;;4836:4;270:9967;4956:23;;270:9967;;;;;27501:38:3;270:9967:75;;-1:-1:-1;;;;;;;;;;;4956:23:75;;;;;;;;270:9967;-1:-1:-1;;27501:38:3;497:42:75;;270:9967;;-1:-1:-1;;;4989:52:75;;-1:-1:-1;;;;;270:9967:75;;;;4989:52;;270:9967;972:13;27501:38:3;972:13:75;;270:9967;;;27501:38:3;270:9967:75;4989:52;-1:-1:-1;;;;;;;;;;;4989:52:75;;;;;;;;270:9967;-1:-1:-1;27501:38:3;497:42:75;270:9967;;-1:-1:-1;;;5085:52:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;5085:52;;270:9967;-1:-1:-1;;;;;;;;;;;27501:38:3;972:13:75;;270:9967;-1:-1:-1;;;;;;;;;;;27501:38:3;972:13:75;;270:9967;1136:42;972:13;;;;4786:6;972:13;;;270:9967;;972:13;;270:9967;;5085:52;;270:9967;;;;-1:-1:-1;;;;;270:9967:75;5085:52;;;;;;;5533:63;5085:52;27501:38:3;5085:52:75;;;;;270:9967;;5148:127;270:9967;;972:13;;:::i;5148:127::-;5395:128;5307:11;270:9967;5307:11;;5285:100;5307:11;;270:9967;972:13;;:::i;5395:128::-;5542:13;270:9967;972:13;;:::i;5085:52::-;;;;972:13;5085:52;972:13;5085:52;;;;;;;:::i;:::-;;;;4989;;;27501:38:3;4989:52:75;27501:38:3;4989:52:75;;;;;;;:::i;:::-;;;4956:23;;;;;:::i;:::-;270:9967;;4956:23;;;;16720:176:8;270:9967:75;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;270:9967:75;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;270:9967:75;;;;16769:41:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;972:13:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;27501:38:3;16424:32:8;;27501:38:3;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;270:9967:75;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;27501:38:3;16314:19:8;;;;;15938:460;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;972:13:75;16103:21:8;12810:59;;;15938:460;;;;;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;270:9967:75;-1:-1:-1;;;523:5:65;;6854:12:8;270:9967:75;523:5:65;27501:38:3;270:9967:75;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;27501:38:3;270:9967:75;;16724:29:8;920:14:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;27501:38:3;16424:32:8;;27501:38:3;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;270:9967:75;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;27501:38:3;16314:19:8;;;;;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;920:14:75;16103:21:8;12810:59;;;15938:460;;;;;;;16314:19;;;;;;;;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;270:9967:75;;;;;;;;;;;;;;;;;27501:38:3;;;1590:14:0;;;;27501:38:3;;3906:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7505:10:8;270:9967:75;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;27501:38:3;270:9967:75;;;;;;27501:38:3;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;27501:38:3;270:9967:75;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;27501:38:3;270:9967:75;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;27501:38:3;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;27501:38:3;270:9967:75;;;;;15943:15:8;7505:10;15943:15;;270:9967:75;15961:16:8;7009:9;15961:16;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;270:9967:75;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;27501:38:3;270:9967:75;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;270:9967:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;920:14;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;270:9967:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;270:9967:75;16720:176:8;;;14785:4;;;:::i;:::-;270:9967:75;;;;27501:38:3;;;1590:14:0;;;;27501:38:3;;3906:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;7505:10:8;270:9967:75;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;27501:38:3;270:9967:75;;;;;;27501:38:3;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;27501:38:3;270:9967:75;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;27501:38:3;270:9967:75;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;27501:38:3;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;27501:38:3;270:9967:75;;;;;15943:15:8;7505:10;15943:15;;270:9967:75;15961:16:8;7009:9;15961:16;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;270:9967:75;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;27501:38:3;270:9967:75;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;270:9967:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;972:13;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;270:9967:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;270:9967:75;16720:176:8;;;14785:4;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;4026:23:75;;;;270:9967;;-1:-1:-1;;;4026:23:75;;3906:4;270:9967;4026:23;;270:9967;;;;;27501:38:3;270:9967:75;;-1:-1:-1;;;;;;;;;;;4026:23:75;;;;;;;;270:9967;-1:-1:-1;;27501:38:3;497:42:75;;270:9967;;-1:-1:-1;;;4059:45:75;;-1:-1:-1;;;;;270:9967:75;;;;4059:45;;270:9967;3862:5;27501:38:3;972:13:75;;270:9967;;;27501:38:3;270:9967:75;4059:45;-1:-1:-1;;;;;;;;;;;4059:45:75;;;;;;;;270:9967;-1:-1:-1;27501:38:3;497:42:75;270:9967;;-1:-1:-1;;;4148:53:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;4148:53;;270:9967;-1:-1:-1;;;;;;;;;;;27501:38:3;972:13:75;;270:9967;-1:-1:-1;;;;;;;;;;;27501:38:3;972:13:75;;270:9967;972:13;;;;;;3862:5;972:13;;;270:9967;;972:13;;270:9967;;4148:53;;270:9967;;;;-1:-1:-1;;;;;270:9967:75;4148:53;;;;;;;4597:63;4148:53;27501:38:3;4148:53:75;;;;;270:9967;4212:127;270:9967;;972:13;;:::i;4059:45::-;;;27501:38:3;4059:45:75;27501:38:3;4059:45:75;;;;;;;:::i;:::-;;;4026:23;;;;;:::i;:::-;270:9967;;4026:23;;;;16724:29:8;972:13:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;27501:38:3;16424:32:8;;27501:38:3;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;270:9967:75;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;27501:38:3;16314:19:8;;;;;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;972:13:75;16103:21:8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;16724:29;920:14:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;27501:38:3;16424:32:8;;27501:38:3;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;7505:10;270:9967:75;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;27501:38:3;16314:19:8;;;;;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;920:14:75;16103:21:8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;880:2;270:9967;;-1:-1:-1;;880:2:75;;;270:9967;880:2;;;;7771:13;7786:19;;880:2;7786:19;;;;270:9967;;;;;880:2;27501:38:3;;1590:14:0;;;;27501:38:3;;8077:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;880:2;270:9967;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;880:2;270:9967;;;;;;880:2;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;880:2;270:9967;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;7766:283:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;880:2;270:9967;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;880:2:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;880:2;270:9967;;;;;15943:15:8;880:2:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;7766:283:75;270:9967;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;880:2;270:9967;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;7766:283:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;920:14;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;7766:283:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;7766:283:75;16720:176:8;;;14785:4;;;;;;:::i;:::-;270:9967:75;;;;880:2;27501:38:3;;1590:14:0;;;;27501:38:3;;8077:4:75;27501:38:3;;;270:9967:75;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;270:9967:75;;7009:9:8;270:9967:75;;;7009:9:8;270:9967:75;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;880:2;270:9967;;;7505:10:8;270:9967:75;;:::i;:::-;;;1136:42;270:9967;;;;6854:12:8;270:9967:75;;7009:9:8;270:9967:75;;1590:14:0;15610:11:8;270:9967:75;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;;;880:2;270:9967;;;;;;880:2;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;270:9967:75;;880:2;270:9967;;15610:11:8;270:9967:75;;;15703:77:8;270:9967:75;;15702:78:8;15698:126;;7766:283:75;-1:-1:-1;;;;;270:9967:75;;;;;;27635:8:3;270:9967:75;;;;;;;;880:2;270:9967;15889:37:8;;270:9967:75;;;;;;15889:37:8;;;880:2:75;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;270:9967:75;;880:2;270:9967;;;;;15943:15:8;880:2:75;15943:15:8;;270:9967:75;15961:16:8;972:13:75;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;7766:283:75;270:9967;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;270:9967:75;;;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;880:2;270:9967;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;7766:283:75;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;270:9967:75;;;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;972:13;270:9967;;;12656:92:8;;;;12810:59;;;270:9967:75;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;7766:283:75;16678:31:8;;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;7766:283:75;16720:176:8;;;14785:4;;;;;;:::i;:::-;270:9967:75;;;;;;:::i;:::-;880:2;270:9967;;;;;;;;;8251:13;;;8266:19;880:2;8266:19;;;;8536:13;;880:2;8551:23;880:2;8551:23;;;;270:9967;;;8576:3;8604:9;;;;:::i;:::-;;270:9967;880:2;;;;;;;;;8632:13;:30;8750:53;8632:13;;;;;;:::i;:30::-;8705:21;880:2;8686:9;;;;:::i;8705:21::-;270:9967;8783:13;8750:9;;;;;:::i;:53::-;880:2;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;270:9967:75;;1590:14:0;;;;2943:24:1;;270:9967:75;2943:24:1;;270:9967:75;880:2;27501:38:3;270:9967:75;;;2943:24:1;;27501:38:3;2943:24:1;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;8576:3:75;;;880:2;;8536:13;;2943:24:1;;;;;:::i;:::-;270:9967:75;;2943:24:1;;;;8287:3:75;270:9967;;-1:-1:-1;;;8319:13:75;;270:9967;880:2;270:9967;;;8319:13;-1:-1:-1;;;;;;;;;;;8319:13:75;;;;;;;;;;;8287:3;-1:-1:-1;880:2:75;497:42;;270:9967;;-1:-1:-1;;;8347:52:75;;-1:-1:-1;;;;;270:9967:75;;;;8347:52;;270:9967;972:13;27501:38:3;972:13:75;;270:9967;;;27501:38:3;270:9967:75;8347:52;-1:-1:-1;;;;;;;;;;;8347:52:75;;;;;;;;8287:3;-1:-1:-1;880:2:75;497:42;270:9967;;8426:47;;;;-1:-1:-1;;;;;270:9967:75;8462:10;;;;:::i;:::-;270:9967;;;1590:14:0;;;;;;;;;8426:47:75;;;270:9967;8426:47;;;:::i;:::-;;;;;;;;;;;;;;8287:3;8414:59;;;;;:::i;:::-;;;;;;:::i;:::-;;270:9967;;1590:14:0;;;;8487:23:75;;270:9967;8487:23;;270:9967;880:2;8487:23;27501:38:3;8487:23:75;;-1:-1:-1;;;;;;;;;;;8487:23:75;;;;;;;880:2;8487:23;;;8287:3;;880:2;8251:13;;8487:23;;;880:2;8487:23;;;;;;;;;:::i;:::-;;;;;8426:47;;;;;;;;;;;;;;:::i;:::-;;;;8347:52;;;880:2;8347:52;;;;;;;;;:::i;:::-;;;8319:13;;;;880:2;8319:13;;;;;;;;;1590:14:0;8319:13:75;;;:::i;:::-;;;1590:14:0;;;;;8319:13:75;;;;;;;-1:-1:-1;8319:13:75;;270:9967;880:2;270:9967;;;:::i;:::-;;;;;;;;;;16720:176:8;270:9967:75;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;270:9967:75;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;270:9967:75;;;;16769:41:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;16769:41;12810:59;16724:29;972:13:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;880:2:75;16424:32:8;;880:2:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;880:2:75;270:9967;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;880:2:75;16314:19:8;;;;;15938:460;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;972:13:75;16103:21:8;12810:59;;;15938:460;;;;;;;16314:19;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;270:9967:75;-1:-1:-1;;;523:5:65;;6854:12:8;270:9967:75;523:5:65;27501:38:3;270:9967:75;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;16724:29;920:14:75;16736:17:8;;;;16724:29;;;16587:43;;;;;:::i;:::-;270:9967:75;;16587:43:8;;;;16424:32;;;;;880:2:75;16424:32:8;;880:2:75;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;-1:-1:-1;;;16314:19:8;;880:2:75;270:9967;;;;16314:19:8;;270:9967:75;;;16314:19:8;270:9967:75;27501:38:3;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;880:2:75;16314:19:8;;;;;270:9967:75;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;12810:59:8;;;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;;;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;920:14:75;16103:21:8;12810:59;;;15938:460;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;7807:3:75;972:13;;880:2;;;;;;;;;523:5:65;7885:3:75;523:5:65;;7885:3:75;523:5:65;;;;;;;;;;;;7901:7:75;523:5:65;;;;;;;880:2:75;7872:36;;;;;:::i;:::-;270:9967;880:2;7771:13;;523:5:65;270:9967:75;;;-1:-1:-1;523:5:65;;270:9967:75;523:5:65;;-1:-1:-1;523:5:65;972:13:75;-1:-1:-1;;;972:13:75;;;270:9967;972:13;;270:9967;972:13;270:9967;;;;;;;-1:-1:-1;;270:9967:75;;;;;;-1:-1:-1;;;1084:20:75;;1590:14:0;270:9967:75;1084:20;;1590:14:0;;;;;270:9967:75;-1:-1:-1;;;270:9967:75;;;1590:14:0;-1:-1:-1;270:9967:75;1084:20;270:9967;-1:-1:-1;;;;;;;;;;;1084:20:75;;;;;;;1590:14:0;1084:20:75;1590:14:0;1084:20:75;270:9967;1084:20;;;270:9967;;;;1590:14:0;;;;;;;1064:52:75;;270:9967;;1064:52;;1590:14:0;270:9967:75;1590:14:0;;;;:::i;:::-;1046:8:75;1590:14:0;;;270:9967:75;1064:52;;270:9967;-1:-1:-1;;;;;;;;;;;1064:52:75;;;;;;;;270:9967;;;;1136:42;;;;;;;;-1:-1:-1;;;;;1136:42:75;;;;;270:9967;1136:42;;;;;;572;270:9967;;497:42;1590:14:0;497:42:75;;270:9967;1136:42;;;270:9967;1136:42;;;;;1590:14:0;497:42:75;;-1:-1:-1;;;;;;497:42:75;-1:-1:-1;;;;;270:9967:75;;;;497:42;;;;;-1:-1:-1;;;;;;;;;;;1189:51:75;;;;270:9967;;1590:14:0;;;;1189:51:75;;270:9967;1189:51;;270:9967;;1590:14:0;497:42:75;;;;270:9967;497:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;497:42;270:9967;1189:51;;;;-1:-1:-1;;;;;;;;;;;1189:51:75;;;;;;;;270:9967;1250:22;-1:-1:-1;;;;;;;;;;;1250:22:75;;;;270:9967;;;1590:14:0;;;1250:22:75;;423:42;270:9967;1250:22;;270:9967;;1590:14:0;423:42:75;;;270:9967;;423:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;423:42;1250:22;;1189:51;1250:22;;-1:-1:-1;;;;;;;;;;;1250:22:75;;;;;;;;270:9967;1282:26;;-1:-1:-1;;;;;;;;;;;1282:26:75;;;;270:9967;;;1590:14:0;;;1282:26:75;;497:42;270:9967;1282:26;;270:9967;;1590:14:0;423:42:75;;;;270:9967;423:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;423:42;1282:26;;1189:51;1282:26;;-1:-1:-1;;;;;;;;;;;1282:26:75;;;;;;;;270:9967;1318:28;;-1:-1:-1;;;;;;;;;;;1318:28:75;;;;270:9967;;;1590:14:0;;;1318:28:75;;572:42;270:9967;1318:28;;270:9967;;1590:14:0;423:42:75;;;1590:14:0;270:9967:75;423:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;423:42;1318:28;;1189:51;1318:28;;-1:-1:-1;;;;;;;;;;;1318:28:75;;;;;;;;270:9967;1356:22;;-1:-1:-1;;;;;;;;;;;1356:22:75;;;;270:9967;;;1590:14:0;;;1356:22:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;1356:22;;270:9967;;1590:14:0;644:42:75;;;270:9967;;644:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;644:42;1356:22;;1189:51;1356:22;;-1:-1:-1;;;;;;;;;;;1356:22:75;;;;;;;;270:9967;1388:20;;-1:-1:-1;;;;;;;;;;;1388:20:75;;;;270:9967;;;1590:14:0;;;1388:20:75;;-1:-1:-1;;;;;;;;;;;270:9967:75;1388:20;;270:9967;;1590:14:0;715:42:75;;;;270:9967;715:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;715:42;1388:20;;1189:51;1388:20;;-1:-1:-1;;;;;;;;;;;1388:20:75;;;;;;;;270:9967;1418:40;;-1:-1:-1;;;;;;;;;;;1418:40:75;;;;270:9967;;;1590:14:0;;;1418:40:75;;796:42;270:9967;1418:40;;270:9967;;1590:14:0;796:42:75;;;;270:9967;796:42;;270:9967;-1:-1:-1;;;1084:20:75;270:9967;;796:42;1418:40;;1189:51;1418:40;;-1:-1:-1;;;;;;;;;;;1418:40:75;;;;;;;;270:9967;;1388:20;;;;;:::i;:::-;270:9967;;1388:20;;;;1356:22;;;;;:::i;:::-;270:9967;;1356:22;;;;1318:28;;;;;:::i;:::-;270:9967;;1318:28;;;;1282:26;;;;;:::i;:::-;270:9967;;1282:26;;;;1250:22;;;;;:::i;:::-;270:9967;;1250:22;;;;1189:51;;;;270:9967;1189:51;;:::i;:::-;270:9967;1189:51;;;;270:9967;;1590:14:0;270:9967:75;1590:14:0;;;;;1136:42:75;270:9967;;;;;;;;1590:14:0;270:9967:75;;1064:52;1590:14:0;1064:52:75;;1590:14:0;1064:52:75;;;;;;1590:14:0;1064:52:75;;;:::i;:::-;;;1590:14:0;;;;;1064:52:75;;;;;-1:-1:-1;1064:52:75;;1084:20;;;;;;270:9967;1084:20;;;;;;:::i;:::-;;;;270:9967;;;;;;-1:-1:-1;;270:9967:75;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;:::o;:::-;972:13;270:9967;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;:::o;:::-;;;880:2;;270:9967;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;270:9967:75;;;;;;;;-1:-1:-1;;270:9967:75;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1136:42;270:9967;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7505:10:8;270:9967:75;;;;;;7505:10:8;-1:-1:-1;270:9967:75;;-1:-1:-1;270:9967:75;;;-1:-1:-1;270:9967:75;:::o;:::-;;;;;;;;;;;;;534:59:65;270:9967:75;;;;;;534:59:65;-1:-1:-1;270:9967:75;;-1:-1:-1;270:9967:75;;;-1:-1:-1;270:9967:75;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;270:9967:75;;;;;;;;-1:-1:-1;270:9967:75;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;;;;:::o;523:5:65:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;270:9967:75;;;523:5:65;;;;;;;;8534:180;270:9967:75;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;270:9967:75;8655:52:65;;:::i;:::-;8534:180;:::o;1590:14:0:-;-1:-1:-1;;;;;1590:14:0;;;;270:9967:75;;-1:-1:-1;;270:9967:75;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;270:9967:75;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;270:9967:75;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;497:42:75:-;6854:12:8;497:42:75;;-1:-1:-1;;;;;;497:42:75;-1:-1:-1;;;;;;;;;;;497:42:75;;;:::o;:::-;6854:12:8;497:42:75;;-1:-1:-1;;;;;;497:42:75;-1:-1:-1;;;;;;;;;;;497:42:75;;;:::o;972:13::-;;;;;;;;;;270:9967;;;;;;;972:13;:::o;:::-;;;;;;;;;;;270:9967;;;;:::i;:::-;972:13;;;1590:14:0;;;972:13:75;;;1590:14:0;972:13:75;;;:::o;:::-;;;;;;;;;;;270:9967;;;;;;;:::i;:::-;1590:14:0;;972:13:75;;;;;1590:14:0;972:13:75;;;;;;:::i;:::-;270:9967;972:13;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;270:9967:75;;-1:-1:-1;;;;;;;;;;;972:13:75;;;270:9967;-1:-1:-1;;;;;;;;;;;972:13:75;;;270:9967;972:13;;;;;;;;;;;;;;;;;;;;270:9967;972:13::o;:::-;270:9967;;;-1:-1:-1;972:13:75;;;;;-1:-1:-1;972:13:75;;270:9967;;;-1:-1:-1;;;;;270:9967:75;;;972:13;;;270:9967;;;972:13;;;270:9967;-1:-1:-1;972:13:75;;;;;;;270:9967;;;;972:13;;;:::o;:::-;270:9967;;;;;;;:::i;:::-;972:13;;;-1:-1:-1;;;270:9967:75;972:13;;;;;;;;:::o;:::-;270:9967;;;;1590:14:0;270:9967:75;;:::i;:::-;972:13;;;-1:-1:-1;;;270:9967:75;972:13;;1590:14:0;972:13:75;;;;;:::o;:::-;270:9967;;;;;;;:::i;:::-;972:13;;;-1:-1:-1;;;270:9967:75;972:13;;;;;;;;:::o;:::-;270:9967;;;;1590:14:0;270:9967:75;;:::i;:::-;972:13;;;-1:-1:-1;;;270:9967:75;972:13;;1590:14:0;972:13:75;;;;;:::o;880:2::-;;;;;;;;;;:::o;:::-;270:9967;;880:2;;;;;;:::o;:::-;270:9967;;9122:20;880:2;;;;;;;:::o;:::-;270:9967;;9197:19;880:2;;;;;;;:::o;:::-;270:9967;;880:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;880:2:75;;;;;;;;;;;;;;;;;;:::i;:::-;270:9967;;;;;;;:::i;:::-;880:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;270:9967;880:2;;;;;:::i;:::-;;;;;;;;;;;270:9967;880:2;;;270:9967;796:42;270:9967;;;;-1:-1:-1;;;;;;;;;;;880:2:75;;;270:9967;-1:-1:-1;;;;;;;;;;;880:2:75;;;270:9967;880:2;;;;;270:9967;;;;;;;;880:2;;;;;;;;;;;;:::o;:::-;;;270:9967;;880:2;;;;;270:9967;;;;880:2;;;;;270:9967;880:2;;;;;;;270:9967;;;1136:42;270:9967;;;;;880:2;;;270:9967;1136:42;270:9967;;;;;880:2;;;270:9967;880:2;;;;;270:9967;;;;;;;;880:2;;;;;;;;;;;;:::o;:::-;;;270:9967;;880:2;;;;;270:9967;;;;880:2;;;;;;;;;;;;;;:::o;270:9967::-;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;270:9967:75;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;1243:204:1;1302:7;270:9967:75;;;;;;;1325:14:1;:::o;1298:143::-;270:9967:75;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;270:9967:75;192:59:1;;;;;;270:9967:75;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;270:9967:75;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;935:818:65;-1:-1:-1;;;;;270:9967:75;;;935:818:65;;1126:10;935:818;1126:10;:::i;:::-;270:9967:75;;;1590:14:0;;;;1102:59:65;;;;;270:9967:75;1134:1:65;270:9967:75;;;;1134:1:65;270:9967:75;;;;1134:1:65;1102:59;;;;;;;;;;;1075:134;1102:59;1134:1;1102:59;;;935:818;1075:134;;:::i;:::-;1074:135;1224:13;1134:1;1259:3;270:9967:75;;1239:18:65;;;;;1322:10;;;;:::i;:::-;270:9967:75;;;;1590:14:0;;;;1304:29:65;;1102:59;1304:29;;270:9967:75;1134:1:65;1304:29;;;;;;;;;;;;1708:14;1304:29;1442:1;1304:29;1134:1;1304:29;;;1259:3;270:9967:75;1396:17:65;270:9967:75;;;;;;1354:9:65;;;:::i;:::-;270:9967:75;;1396:17:65;:::i;:::-;1477;270:9967:75;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;270:9967:75;;;;;;1566:9:65;;;:::i;:::-;270:9967:75;;;;;;;1577:9:65;;;:::i;:::-;270:9967:75;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;270:9967:75;;;;;;;1686:9:65;;;:::i;:::-;270:9967:75;;;1697:9:65;270:9967:75;;;;;1697:9:65;;:::i;:::-;270:9967:75;;1708:14:65;;;:::i;:::-;880:2:75;1224:13:65;;1304:29;;;;;;1134:1;1304:29;;;;;;:::i;:::-;;;;1239:18;;;;;;;935:818::o;1102:59::-;;;;;;1134:1;1102:59;;;;;;:::i;:::-;;;;270:9967:75;;;;;;;:::i;:::-;;-1:-1:-1;270:9967:75;;-1:-1:-1;270:9967:75;;;;;;;;;;;:::i;:::-;-1:-1:-1;270:9967:75;;-1:-1:-1;270:9967:75;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;270:9967:75;;;;;;1590:14:0;;;;;;;;13326:29:1;;;;;270:9967:75;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;13326:29::-;270:9967:75;13326:29:1;;;:::i;:::-;13228:134::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;270:9967:75;13326:29:1;270:9967:75;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;426:547:59:-;688:35;426:547;637:17;619:35;270:9967:75;;637:17:59;;;270:9967:75;619:35:59;;:::i;:::-;270:9967:75;;706:17:59;;270:9967:75;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;270:9967:75;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;6036:17:75;957:9:59:o;13112:110:1:-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;270:9967:75;;1590:14:0;;;;13191:24:1;;;;;270:9967:75;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;2270:::-;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;270:9967:75;;1590:14:0;;;;2349:24:1;;;;;270:9967:75;9067:1;270:9967;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;:::-;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;270:9967:75;;1590:14:0;;;;2349:24:1;;;;;270:9967:75;9122:20;270:9967;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;:::-;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;270:9967:75;;1590:14:0;;;;2349:24:1;;;;;270:9967:75;9197:19;270:9967;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;270:9967:75;;1590:14:0;;;;2349:24:1;;;;;270:9967:75;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;8720:323:65:-;270:9967:75;8906:3:65;270:9967:75;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;270:9967:75;;;;;;1175:24:65;8929:29;8925:79;;880:2:75;;8866:13:65;;8925:79;8978:11;;880:2:75;8978:11:65;:::o;8881:23::-;;;270:9967:75;8720:323:65;:::o;:::-;270:9967:75;8906:3:65;270:9967:75;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;270:9967:75;;;;;;2531:24:65;8929:29;8925:79;;880:2:75;;8866:13:65;;8720:323;270:9967:75;8906:3:65;270:9967:75;;8881:23:65;;;;;8929:15;;;;;:::i;:::-;270:9967:75;;;;;;6005:21:65;8929:29;8925:79;;880:2:75;;8866:13:65;;5926:434:58;270:9967:75;;6065:47:58;;;;1590:14:0;;;;6065:47:58;;1136:42:75;270:9967;;;;;6065:47:58;;;;;270:9967:75;6036:17;;972:13;;;270:9967;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;270:9967:75;;;-1:-1:-1;;;;;270:9967:75;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;270:9967:75;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;270:9967:75;-1:-1:-1;6065:47:58;270:9967:75;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;270:9967:75;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;270:9967:75;;;;;;;;:::i;:::-;;972:13;;-1:-1:-1;;;270:9967:75;;;;;;;;;:::o;1911:4479:65:-;;;;;;270:9967:75;;-1:-1:-1;;;2117:44:65;;;;;270:9967:75;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;1911:4479:65;;;;;2117:44;270:9967:75;;;;;2117:44:65;;;;;270:9967:75;2117:44:65;-1:-1:-1;;;;;270:9967:75;;2117:44:65;;;;;;:47;:44;;;;;1911:4479;2117:47;;:::i;:::-;270:9967:75;;;-1:-1:-1;972:13:75;1590:14:0;;;270:9967:75;;2174:61:65;;270:9967:75;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;2174:61:65;;;:::i;:::-;1590:14:0;;270:9967:75;2117:44:65;270:9967:75;;44640:78:15;270:9967:75;;;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;270:9967:75;44640:78:15;;;270:9967:75;;;;;;:::i;:::-;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;270:9967:75;;1222:159:15;;591:42;1222:159;;-1:-1:-1;270:9967:75;;-1:-1:-1;;;2467:50:65;;2117:44;2467:50;;270:9967:75;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;2117:44:65;270:9967:75;;;;;2467:50:65;270:9967:75;;-1:-1:-1;;;;;270:9967:75;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;270:9967:75;;;;;;;;:::i;:::-;2117:44:65;270:9967:75;;880:2;;1590:14:0;880:2:75;;;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;270:9967:75;8433:4:65;523:5;;;8412:25;;;:::i;:::-;270:9967:75;523:5:65;;8420:1;523:5;8447:22;;;:::i;:::-;270:9967:75;;;8487:1:65;880:2:75;;;;270:9967;;;880:2;;270:9967;;;-1:-1:-1;;;2822:49:65;;270:9967:75;2117:44:65;270:9967:75;;2822:49:65;880:2:75;2822:49:65;;;2117:44;2822:49;;;:::i;:::-;;270:9967:75;;-1:-1:-1;;;;;270:9967:75;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;270:9967:75;;-1:-1:-1;;880:2:75;;;6036:17;880:2;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;270:9967:75;;;1590:14:0;270:9967:75;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;270:9967:75;;-1:-1:-1;;880:2:75;;;;;;;270:9967;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;1590:14:0;;270:9967:75;;;972:13;;270:9967;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;270:9967:75;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;880:2:75;;12247:66:15;;;;;;:::i;:::-;1222:159;270:9967:75;;1222:159:15;;591:42;1222:159;;-1:-1:-1;1590:14:0;;270:9967:75;;3251:53:65;;270:9967:75;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;270:9967:75;;972:13;1590:14:0;;;270:9967:75;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;270:9967:75;;;;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;972:13:75;270:9967;;;3514:49:65;270:9967:75;;;;;;;;;:::i;:::-;;972:13;;-1:-1:-1;;;1590:14:0;270:9967:75;;;3514:49:65;:::i;:::-;270:9967:75;;:::i;:::-;-1:-1:-1;270:9967:75;;-1:-1:-1;;880:2:75;;;;;;;3635:27:65;;;;:::i;:::-;270:9967:75;880:2;523:5:65;;;;;;;;2117:44;270:9967:75;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;270:9967:75;44640:78:15;27501:38:3;;;270:9967:75;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;497:42:75;;-1:-1:-1;;;;;;497:42:75;-1:-1:-1;;;;;270:9967:75;;497:42;;;7009:9:8;270:9967:75;;-1:-1:-1;;270:9967:75;27524:10:3;270:9967:75;;;7505:10:8;270:9967:75;-1:-1:-1;;;270:9967:75;;;;;;;8420:1:65;270:9967:75;;;7505:10:8;270:9967:75;;:::i;:::-;;;6854:12:8;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;7009:9:8;270:9967:75;15610:11:8;270:9967:75;;1590:14:0;;15653:34:8;;:::i;:::-;15703:15;;-1:-1:-1;;;;;270:9967:75;;;;;27635:8:3;270:9967:75;;;;;15703:15:8;;270:9967:75;;;;;;2117:44:65;270:9967:75;1590:14:0;270:9967:75;;;2117:44:65;270:9967:75;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;270:9967:75;15725:48:8;;2117:44:65;270:9967:75;1590:14:0;270:9967:75;;8487:1:65;270:9967:75;;2117:44:65;270:9967:75;15703:77:8;270:9967:75;;15702:78:8;15698:126;;8365:37:65;15857:15:8;;-1:-1:-1;;;;;270:9967:75;;;;;27635:8:3;270:9967:75;;;;;;2117:44:65;270:9967:75;1590:14:0;270:9967:75;15889:37:8;;270:9967:75;;2117:44:65;270:9967:75;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;270:9967:75;15879:48:8;;2117:44:65;270:9967:75;1590:14:0;270:9967:75;;;2117:44:65;270:9967:75;8420:1:65;15943:15:8;;270:9967:75;15961:16:8;8468:1:65;15961:16:8;;270:9967:75;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;270:9967:75;;;;;-1:-1:-1;;;16424:32:8;;;;-1:-1:-1;;;;;270:9967:75;2117:44:65;16424:32:8;;270:9967:75;972:13;;;270:9967;;;;;;;1590:14:0;270:9967:75;972:13;270:9967;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;270:9967:75;;;-1:-1:-1;;;16587:43:8;;;;-1:-1:-1;;;;;270:9967:75;2117:44:65;16587:43:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;880:2;523:5:65;;270:9967:75;;;12656:92:8;12810:59;;;270:9967:75;-1:-1:-1;270:9967:75;12810:59:8;270:9967:75;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;16678:31:8;;;:::i;:::-;16724:8;;270:9967:75;;;16724:29:8;;8365:37:65;16720:176:8;;;;14785:4;;;;:::i;:::-;270:9967:75;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;8365:37;-1:-1:-1;8420:1:65;3761:3;270:9967:75;;3741:18:65;;;;;1222:159:15;3878:14:65;270:9967:75;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;270:9967:75;;;;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;270:9967:75;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;270:9967:75;;;;;;;:::i;:::-;;;;;;12952:65:15;880:2:75;;12952:65:15;;;;;;:::i;:::-;1222:159;270:9967:75;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;270:9967:75;12771:66:15;4051:10:65;;;;;:::i;:::-;270:9967:75;;;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;270:9967:75;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;270:9967:75;;1222:159:15;;591:42;1222:159;;;4166:10:65;270:9967:75;4166:10:65;;4093:97;4166:10;;;;:::i;:::-;270:9967:75;;;;-1:-1:-1;;;4093:97:65;;270:9967:75;;;;;2117:44:65;4093:97;;;:::i;:::-;;2117:44;;;1136:42:75;270:9967;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;270:9967:75;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;270:9967:75;523:5:65;;4244:52;:::i;:::-;270:9967:75;;;4349:11:65;;4335:26;:::i;:::-;270:9967:75;4375:60:65;270:9967:75;;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;4375:60:65;:::i;:::-;4449;270:9967:75;;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;4449:60:65;:::i;:::-;4523:61;270:9967:75;;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;4523:61:65;:::i;:::-;4599:1176;;;;;5013:164;972:13:75;4637:164:65;4819:176;972:13:75;1590:14:0;;270:9967:75;;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;4637:164:65;;:::i;:::-;1590:14:0;;270:9967:75;;;;1590:14:0;270:9967:75;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;270:9967:75;;;;1590:14:0;270:9967:75;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;5013:164:65;;:::i;:::-;270:9967:75;;;1590:14:0;;;;5789:25:65;;270:9967:75;;2117:44:65;5789:25;;270:9967:75;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;880:2:75;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;270:9967:75;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;270:9967:75;5216:173:65;5597:163;270:9967:75;;;:::i;:::-;5216:173:65;;;:::i;:::-;270:9967:75;;:::i;:::-;5407:172:65;;;:::i;:::-;270:9967:75;;;1590:14:0;270:9967:75;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;5597:163:65;;:::i;:::-;4599:1176;;523:5;270:9967:75;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;270:9967:75;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;270:9967:75;;;-1:-1:-1;;;5941:50:65;;2117:44;;;;5941:50;;270:9967:75;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;;;2117:44:65;;270:9967:75;523:5:65;;;;;270:9967:75;2117:44:65;;270:9967:75;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;270:9967:75;;;;;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;6590:122:65;:::i;:::-;270:9967:75;;;;;;;;;;:::i;:::-;8420:1:65;270:9967:75;;;;-1:-1:-1;;880:2:75;;1590:14:0;880:2:75;;;6783:37:65;;;:::i;:::-;270:9967:75;;;;-1:-1:-1;;;6835:57:65;;2117:44;;270:9967:75;;6835:57:65;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;1136:42:75;270:9967;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7259:18;270:9967:75;6831:346:65;7259:18;:::i;:::-;270:9967:75;;7190:97:65;270:9967:75;;;1590:14:0;;;;;;;;;;7190:97:65;;2117:44;7190:97;;;:::i;:::-;2117:44;;7190:97;;;;-1:-1:-1;;;;;270:9967:75;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;270:9967:75;;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;270:9967:75;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;270:9967:75;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;270:9967:75;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;270:9967:75;;44640:78:15;270:9967:75;;;;;;;;-1:-1:-1;;;270:9967:75;;;;;;7302:61:65;7190:97;;;270:9967:75;7190:97:65;270:9967:75;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;7061:105;2117:44;;972:13:75;1590:14:0;;270:9967:75;;;;;1590:14:0;;270:9967:75;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;270:9967:75;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;270:9967:75;;44640:78:15;270:9967:75;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;1590:14:0;;270:9967:75;;;7738:117:65;;270:9967:75;;;;;;;:::i;:::-;;972:13;;270:9967;1590:14:0;270:9967:75;;;-1:-1:-1;;;270:9967:75;;;;;7738:117:65;:::i;:::-;270:9967:75;;;;;;;;;;:::i;:::-;8420:1:65;270:9967:75;;;;-1:-1:-1;;880:2:75;;1590:14:0;880:2:75;;;7926:37:65;;;:::i;:::-;270:9967:75;;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;1136:42:75;270:9967;;;;;;7974:57:65;;;;;;;270:9967:75;;8110:18:65;;7974:57;;8110:18;;:::i;:::-;270:9967:75;;8041:97:65;270:9967:75;;;1590:14:0;;;;;;;;;;8041:97:65;;2117:44;8041:97;;;:::i;:::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;270:9967:75;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;270:9967:75;8041:97:65;270:9967:75;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;270:9967:75;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;270:9967:75;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;16769:41:8;;-1:-1:-1;;;;;270:9967:75;2117:44:65;16769:41:8;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;270:9967:75;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;270:9967:75;44640:78:15;12810:59:8;;270:9967:75;12810:59:8;270:9967:75;;;12810:59:8;-1:-1:-1;;;270:9967:75;12810:59:8;;;270:9967:75;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;270:9967:75;;;;16769:41:8;;;270:9967:75;2117:44:65;;;270:9967:75;16724:29:8;880:2:75;523:5:65;16736:17:8;;;-1:-1:-1;16724:29:8;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;270:9967:75;;16587:43:8;;;;270:9967:75;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;880:2:75;16021:3:8;880:2:75;;;;270:9967;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;270:9967:75;;2117:44:65;16314:19:8;;270:9967:75;-1:-1:-1;270:9967:75;44640:78:15;270:9967:75;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;270:9967:75;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;270:9967:75;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;;;270:9967:75;;;2117:44:65;270:9967:75;;;;16170:185:8;;880:2:75;;16170:185:8;;;;;;:::i;:::-;270:9967:75;523:5:65;880:2:75;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;270:9967:75;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;270:9967:75;;;;;;44640:78:15;270:9967:75;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;:::-;;;;14296:110:1;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;270:9967:75;;1590:14:0;;;;14375:24:1;;;;;270:9967:75;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;270:9967:75:-;;;;;;972:13;;;;:::i;:::-;270:9967;;;;;;;:::i;:::-;972:13;;270:9967;-1:-1:-1;270:9967:75;;;;:::o;:::-;;;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;270:9967:75;;;;2626:1:33;;;;3256:31;;2626:1;270:9967:75;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;270:9967:75;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;270:9967:75;;;6764:749:58:o;270:9967:75:-;;;-1:-1:-1;;;270:9967:75;;3256:31:33;270:9967:75;;;;;;;;;;;;;;-1:-1:-1;;;270:9967:75;;;;;;;6598:121:15;1222:159;270:9967:75;6669:42:15;6598:121;;270:9967:75;;6669:42:15;;;;;;;;;;;;;;270:9967:75;;;;;;:::i;6669:42:15:-;1222:159;270:9967:75;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;1590:14:0;7629:54:15;1222:159;7546:145;;;;270:9967:75;;7629:54:15;;;;;;;;;;270:9967:75;7629:54:15;;;1590:14:0;;;;;;:::i;:::-;;;;;270:9967:75;7629:54:15;880:2:75;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;270:9967:75;15694:29:1;270:9967:75;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;270:9967:75:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;270:9967:75;;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;;;-1:-1:-1;;270:9967:75;;;;;;;;;-1:-1:-1;270:9967:75;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;270:9967:75;7935:53:15;1222:159;7846:150;;270:9967:75;7846:150:15;;270:9967:75;;7935:53:15;;;;;;;;;;270:9967:75;7935:53:15;;;270:9967:75;;;;;;:::i;:::-;;;;-1:-1:-1;;270:9967:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;270:9967:75;1052:14:8;270:9967:75;;:::i;:::-;1052:14:8;;270:9967:75;;;;;;1109:10:8;270:9967:75;;;;;;1109:10:8;1077:1;270:9967:75;;1077:1:8;270:9967:75;;1077:1:8;270:9967:75;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;270:9967:75;523:5:65;;;;;;;972:13:75;;;:::i;:::-;270:9967;;;;;;;:::i;:::-;972:13;;;270:9967;880:2;;270:9967;;:::i;:::-;;880:2;270:9967;;;880:2;1077:1:8;11360:3;270:9967:75;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;270:9967:75;;11456:84:8;523:5:65;11456:84:8;;;;;880:2:75;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;270:9967:75:-;;;;;1109:10:8;270:9967:75;;;;;;-1:-1:-1;270:9967:75;;;;;;;;1048:135:8;270:9967:75;;;;;;1052:14:8;270:9967:75;:::i;953:236:8:-;1052:14;;;270:9967:75;;;;;:::i;:::-;1052:21:8;;1109:10;;;;270:9967:75;;;;;;;;;;;;;;;1077:1:8;270:9967:75;;1077:1:8;270:9967:75;;1077:1:8;270:9967:75;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;270:9967:75;523:5:65;;;;;;;972:13:75;;;:::i;:::-;270:9967;;;;;;;:::i;:::-;972:13;;;270:9967;880:2;;270:9967;;:::i;:::-;;880:2;270:9967;;;880:2;1077:1:8;11360:3;270:9967:75;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;270:9967:75;;11456:84:8;523:5:65;11456:84:8;;;;;880:2:75;11331:13:8;;270:9967:75;;;;;1109:10:8;270:9967:75;;;;;;-1:-1:-1;270:9967:75;;;;;;;;1048:135:8;270:9967:75;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;270:9967:75;1364:48:8;1381:9;270:9967:75;1590:14:0;;1364:48:8;270:9967:75;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;270:9967:75;;1364:48:8;;;;;;270:9967:75;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;880:2:75;;1364:48:8;;;;;;:::i;:::-;1458:12;270:9967:75;1458:29:8;;;-1:-1:-1;;;;;270:9967:75;1458:29:8;;;;;:::i;:::-;1540:11;270:9967:75;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;270:9967:75;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;270:9967:75;;;;;;;;;1364:48:8;270:9967:75;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;270:9967:75;523:5:65;;11142:1:8;523:5:65;;;;;;;;880:2:75;270:9967;;11097:47:8;11078:3;880:2:75;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;270:9967:75;1590:14:0;;1364:48:8;270:9967:75;1392:19:8;;;:::i;1364:48::-;270:9967:75;1458:12:8;;270:9967:75;1458:29:8;;;-1:-1:-1;;;;;270:9967:75;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;270:9967:75;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;270:9967:75;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;270:9967:75;;;;;;;;;1364:48:8;270:9967:75;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;270:9967:75;523:5:65;;11142:1:8;523:5:65;;;;;;;;880:2:75;270:9967;;11097:47:8;11078:3;880:2:75;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;270:9967:75;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;270:9967:75;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;270:9967:75;;;;4917:24:33;270:9967:75;972:13;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;4249:2493:8;4361:12;270:9967:75;4397:9:8;270:9967:75;4438:11:8;270:9967:75;-1:-1:-1;;;;;270:9967:75;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;270:9967:75;;;27635:8:3;270:9967:75;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;270:9967:75;4573:48:8;;270:9967:75;;;;;4438:11:8;270:9967:75;;;4551:77:8;270:9967:75;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;270:9967:75;;-1:-1:-1;;;4811:11:8;;270:9967:75;;4361:12:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;270:9967:75;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;270:9967:75;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;270:9967:75;;4951:12:8;;4984:74;270:9967:75;;12810:59:8;;;4984:74;;270:9967:75;4361:12:8;4984:74;;643:59;270:9967:75;4911:25:8;643:59;;270:9967:75;643:59:8;270:9967:75;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;270:9967:75;;5109:16:8;;;;;5178:8;270:9967:75;5178:8:8;;5165:22;5178:8;;:::i;:::-;270:9967:75;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;270:9967:75;;4361:12:8;5165:22;;270:9967:75;972:13;;;270:9967;;;;;;;;;972:13;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;270:9967:75;4361:12:8;270:9967:75;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;270:9967:75;;;4361:12:8;1978:27;;270:9967:75;;;972:13;;;270:9967;;;;;;;972:13;270:9967;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;6036:17:75;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;270:9967:75;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;270:9967:75;;;;4361:12:8;2177:37;;270:9967:75;12810:59:8;;;270:9967:75;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;270:9967:75;;;;-1:-1:-1;;;;;;270:9967:75;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;270:9967:75;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;270:9967:75;;;;4361:12:8;2281:43;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;270:9967:75;;5520:25:8;270:9967:75;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;270:9967:75;;5998:29:8;;5994:84;;270:9967:75;;6319:8:8;270:9967:75;6101:89:8;643:59;270:9967:75;;6132:37:8;;270:9967:75;;;6132:37:8;;;270:9967:75;6132:37:8;;;;;:::i;:::-;270:9967:75;6122:48:8;;6180:8;;;;:::i;:::-;270:9967:75;;;;;;;643:59:8;270:9967:75;643:59:8;;270:9967:75;;643:59:8;;270:9967:75;643:59:8;;;270:9967:75;6101:89:8;6319:8;:::i;:::-;270:9967:75;;;;;643:59:8;270:9967:75;;;;;;-1:-1:-1;;;;;270:9967:75;;;;;4438:11:8;270:9967:75;;;;;;6302:58:8;;270:9967:75;;;;6302:58:8;;270:9967:75;;;643:59:8;6302:58;;643:59;880:2:75;643:59:8;;270:9967:75;;;27635:8:3;270:9967:75;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;270:9967:75;6230:48:8;;270:9967:75;;;;;;;;;643:59:8;;270:9967:75;880:2;643:59:8;;;270:9967:75;4397:9:8;643:59;;;;;;270:9967:75;;;;;643:59:8;;;;;;;;5089:1309;270:9967:75;;;27635:8:3;270:9967:75;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;270:9967:75;6461:48:8;;270:9967:75;;;;;4438:11:8;270:9967:75;;;6439:77:8;270:9967:75;;643:59:8;;;270:9967:75;6664:15:8;270:9967:75;;27635:8:3;270:9967:75;;;;;;;;;;6696:37:8;;270:9967:75;;;;;;6696:37:8;;;270:9967:75;6696:37:8;;;;;:::i;:::-;270:9967:75;6686:48:8;;270:9967:75;;;;;4249:2493:8;:::o;643:59::-;270:9967:75;;-1:-1:-1;;;643:59:8;;270:9967:75;4361:12:8;643:59;;;;4911:25;643:59;;270:9967:75;643:59:8;270:9967:75;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;880:2:75;6051:8:8;5094:13;880:2:75;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;270:9967:75;4361:12:8;270:9967:75;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;270:9967:75;;;4361:12:8;3216:27;;270:9967:75;972:13;;;270:9967;;;;;;;;;;;;;972:13;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;270:9967:75;;;;;;-1:-1:-1;;;;;270:9967:75;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;270:9967:75;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;270:9967:75;;;;4361:12:8;3497:43;;270:9967:75;12810:59:8;;;270:9967:75;;;;12810:59:8;;;270:9967:75;;;;;;12810:59:8;270:9967:75;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;880:2:75;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;270:9967:75;;3497:43:8;;;;270:9967:75;;;;3497:43:8;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;3497:43:8;270:9967:75;;;3216:27:8;;;;270:9967:75;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;880:2:75;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;270:9967:75;;2281:43:8;;;;270:9967:75;;;;2281:43:8;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;2281:43:8;270:9967:75;;;2177:37:8;;;;;:::i;:::-;270:9967:75;;2177:37:8;;;;2102:65;;;;;1978:27;;;270:9967:75;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;270:9967:75;;;;-1:-1:-1;;;;;270:9967:75;;;;972:13;;;270:9967;;;;;;;;972:13;;;;5256:44:8;;;;5205:114;;5165:22;;;;270:9967:75;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;270:9967:75;;1590:14:0;270:9967:75;;1590:14:0;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;270:9967:75;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;270:9967:75;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;270:9967:75;;;643:59:8;270:9967:75;;;4811:11:8;;;;;270:9967:75;4811:11:8;;:::i;:::-;270:9967:75;4811:11:8;;;;4547:255;4720:15;;;;;270:9967:75;;27635:8:3;270:9967:75;;;;;;;;;;4752:37:8;;270:9967:75;;;;;;4752:37:8;;;270:9967:75;4752:37:8;;;;;:::i;:::-;270:9967:75;4742:48:8;;270:9967:75;;;;;;;4713:78:8;:::o;11586:239::-;497:42:75;;;11652:12:8;270:9967:75;;11652:12:8;270:9967:75;;;11681:9:8;270:9967:75;;11681:9:8;270:9967:75;11707:10:8;270:9967:75;11645:19:8;11707:10;270:9967:75;;;;11586:239:8;270:9967:75;11645:19:8;11734:11;270:9967:75;;;11762:25:8;270:9967:75;;11762:25:8;270:9967:75;;11804:14:8;270:9967:75;;:::i;:::-;;;;11586:239:8;:::o;270:9967:75:-;;;;;;;;;11645:19:8;11804:14;270:9967:75;11586:239:8:o;270:9967:75:-;11804:14:8;11645:19;270:9967:75;;;;;;;;;;;;;;;;11804:14:8;11645:19;270:9967:75;11645:19:8;270:9967:75;;;;11804:14:8;270:9967:75;;13228:134:1:o;270:9967:75:-;;;;;;;;;11707:10:8;11645:19;270:9967:75;;;;;;;;;;;;;;;;11645:19:8;270:9967:75;;11707:10:8;270:9967:75;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;880:2:75;2771:3:8;880:2:75;2771:3:8;880:2:75;;;;2824:12:8;;;270:9967:75;880:2;270:9967;;;;-1:-1:-1;;;;;270:9967:75;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;270:9967:75;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;270:9967:75;;;;2824:12:8;2815:49;;270:9967:75;12810:59:8;;;270:9967:75;;;12810:59:8;;;270:9967:75;;;;-1:-1:-1;270:9967:75;12810:59:8;270:9967:75;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;880:2:75;;2678:18:8;;2941:90;2995:21;;;880:2:75;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;270:9967:75;880:2;270:9967;;;-1:-1:-1;;;;;270:9967:75;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;270:9967:75;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;270:9967:75;;;;2824:12:8;2815:49;;270:9967:75;12810:59:8;;;270:9967:75;;;12810:59:8;;;270:9967:75;;;;-1:-1:-1;270:9967:75;12810:59:8;270:9967:75;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;880:2:75;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilities()":"4b13c571","testGetLimits()":"d3479a01","testGetPoolIds()":"99cef81b","testGetTokens()":"8f1ed4c6","testMavV2PoolBehaviour()":"5cca77b2","testPrice()":"8335a17f","testPriceDecreasing()":"4a36e372","testPriceFuzz(uint256,uint256)":"a502846b","testSwapBuy()":"1e1e26fa","testSwapBuyIncreasing()":"fe3ee58b","testSwapFuzz(uint256,bool)":"7f55213e","testSwapSell()":"1c6e35e4","testSwapSellIncreasing()":"111f3392"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetCapabilities\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimits\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetPoolIds\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTokens\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testMavV2PoolBehaviour\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceDecreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSell\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MaverickV2SwapAdapter.t.sol\":\"MaverickV2SwapAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"src/maverick-v2/MaverickV2SwapAdapter.sol\":{\"keccak256\":\"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07\",\"dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/MaverickV2SwapAdapter.t.sol\":{\"keccak256\":\"0xf8c58fd7ced9c34d91f482dadf8f3006832f178e99a0ac4ce67eaf6725f9da7f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://519b9fed93a9d1781df22c4efaa85fa79f791d21bca7fe6187ab77105dbfb6a4\",\"dweb:/ipfs/QmPTWrmVqJSGBFBkd69UYhBhqr8h1dbXGtK2JrP2NumQya\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetCapabilities"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetLimits"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetPoolIds"},{"inputs":[],"stateMutability":"view","type":"function","name":"testGetTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testMavV2PoolBehaviour"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceDecreasing"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuy"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasing"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSell"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasing"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/MaverickV2SwapAdapter.t.sol":"MaverickV2SwapAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"src/maverick-v2/MaverickV2SwapAdapter.sol":{"keccak256":"0x4ba52bde98c1ef79e6730645f278c0601392d7466313119be6a307254cdccb38","urls":["bzz-raw://60cf377d4a17957d78c0e14708daa10c3d44831a5a567275293126b54e572a07","dweb:/ipfs/QmT55QZ9W7tu9NzmKMNWp5LSESyNbW8NrjnXYZ6mAujYQ4"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/MaverickV2SwapAdapter.t.sol":{"keccak256":"0xf8c58fd7ced9c34d91f482dadf8f3006832f178e99a0ac4ce67eaf6725f9da7f","urls":["bzz-raw://519b9fed93a9d1781df22c4efaa85fa79f791d21bca7fe6187ab77105dbfb6a4","dweb:/ipfs/QmPTWrmVqJSGBFBkd69UYhBhqr8h1dbXGtK2JrP2NumQya"],"license":"AGPL-3.0-or-later"}},"version":1},"id":75} \ No newline at end of file diff --git a/evm/out/MockERC20.sol/MockERC20.json b/evm/out/MockERC20.sol/MockERC20.json deleted file mode 100644 index 7a9cf4c..0000000 --- a/evm/out/MockERC20.sol/MockERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601557610e0c908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610a1c57508063095ea7b3146109a35780631624f6c61461066057806318160ddd1461064357806323b872dd14610549578063313ce567146105295780633644e5151461050757806370a08231146104cf5780637ecebe001461049757806395d89b41146103d0578063a9059cbb1461032d578063d505accf146100ff5763dd62ed3e146100ab575f80fd5b346100fb5760403660031901126100fb576100c4610ad2565b6100cc610ae8565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100fb5760e03660031901126100fb57610118610ad2565b610120610ae8565b604435606435916084359260ff84168094036100fb574281106102e857610145610bae565b6001600160a01b039095165f818152600860205260409020805496919590915f1988146102d4576020945f9460809460018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d860e082610afe565b519020604051908682019261190160f01b84526022830152604282015260428152610204606282610afe565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c9575f516001600160a01b0316801515806102c0575b1561028a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526005825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610242565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346100fb5760403660031901126100fb57610346610ad2565b60243590335f5260046020526103608260405f2054610ce4565b335f52600460205260405f205560018060a01b031690815f52600460205261038c8160405f2054610d3d565b825f52600460205260405f20556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b346100fb575f3660031901126100fb576040515f6001546103f081610b76565b80845290600181169081156104735750600114610428575b6104248361041881850382610afe565b60405191829182610aa8565b0390f35b91905060015f525f516020610db75f395f51905f52915f905b80821061045957509091508101602001610418610408565b919260018160209254838588010152019101909291610441565b60ff191660208086019190915291151560051b840190910191506104189050610408565b346100fb5760203660031901126100fb576001600160a01b036104b8610ad2565b165f526008602052602060405f2054604051908152f35b346100fb5760203660031901126100fb576001600160a01b036104f0610ad2565b165f526004602052602060405f2054604051908152f35b346100fb575f3660031901126100fb576020610521610bae565b604051908152f35b346100fb575f3660031901126100fb57602060ff60025416604051908152f35b346100fb5760603660031901126100fb57610562610ad2565b61056a610ae8565b6001600160a01b039091165f818152600560209081526040808320338452825290912054604435937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9291856001820161061e575b5050835f52600482526105d68560405f2054610ce4565b845f526004835260405f205560018060a01b031693845f52600482526106008160405f2054610d3d565b855f526004835260405f2055604051908152a3602060405160018152f35b61062791610ce4565b5f858152600584526040808220338352855290205585856105bf565b346100fb575f3660031901126100fb576020600354604051908152f35b346100fb5760603660031901126100fb5760043567ffffffffffffffff81116100fb57610691903690600401610b20565b60243567ffffffffffffffff81116100fb576106b1903690600401610b20565b60443560ff81168091036100fb5760ff6009541661096857825167ffffffffffffffff8111610876576106e45f54610b76565b601f8111610901575b506020601f821160011461089557819293945f9261088a575b50508160011b915f199060031b1c1916175f555b815167ffffffffffffffff811161087657610736600154610b76565b601f811161080e575b50602092601f82116001146107a257928192935f92610797575b50508160011b915f199060031b1c1916176001555b60ff19600254161760025546600655610785610bc8565b6007556009805460ff19166001179055005b015190508380610759565b601f1982169360015f525f516020610db75f395f51905f52915f5b8681106107f657508360019596106107de575b505050811b0160015561076e565b01515f1960f88460031b161c191690558380806107d0565b919260206001819286850151815501940192016107bd565b60015f52601f820160051c5f516020610db75f395f51905f52019060208310610861575b601f0160051c5f516020610db75f395f51905f5201905b818110610856575061073f565b5f8155600101610849565b5f516020610db75f395f51905f529150610832565b634e487b7160e01b5f52604160045260245ffd5b015190508480610706565b601f198216905f80525f516020610d975f395f51905f52915f5b8181106108e9575095836001959697106108d1575b505050811b015f5561071a565b01515f1960f88460031b161c191690558480806108c4565b9192602060018192868b0151815501940192016108af565b5f8052601f820160051c5f516020610d975f395f51905f52019060208310610953575b601f0160051c5f516020610d975f395f51905f5201905b81811061094857506106ed565b5f815560010161093b565b5f516020610d975f395f51905f529150610924565b60405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606490fd5b346100fb5760403660031901126100fb576109bc610ad2565b335f8181526005602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100fb575f3660031901126100fb575f5f54610a3881610b76565b80845290600181169081156104735750600114610a5f576104248361041881850382610afe565b5f8080525f516020610d975f395f51905f52939250905b808210610a8e57509091508101602001610418610408565b919260018160209254838588010152019101909291610a76565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100fb57565b602435906001600160a01b03821682036100fb57565b90601f8019910116810190811067ffffffffffffffff82111761087657604052565b81601f820112156100fb5780359067ffffffffffffffff82116108765760405192610b55601f8401601f191660200185610afe565b828452602083830101116100fb57815f926020809301838601378301015290565b90600182811c92168015610ba4575b6020831014610b9057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610b85565b6006544603610bbd5760075490565b610bc5610bc8565b90565b6040515f905f549181610bda84610b76565b9182825260208201946001811690815f14610cc85750600114610c7e575b610c0492500382610afe565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610c7860c082610afe565b51902090565b505f80805290915f516020610d975f395f51905f525b818310610cac575050906020610c0492820101610bf8565b6020919350806001915483858801015201910190918392610c94565b60ff1916865250610c0492151560051b82016020019050610bf8565b90808210610cf85781039081116102d45790565b60405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606490fd5b908101908181116102d4578110610d515790565b60405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606490fdfe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212207bc18d6111241599ac42e2f08bbb23d9e8dc9449368325c017085997bf0db86e64736f6c634300081b0033","sourceMap":"369:7950:20:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610a1c57508063095ea7b3146109a35780631624f6c61461066057806318160ddd1461064357806323b872dd14610549578063313ce567146105295780633644e5151461050757806370a08231146104cf5780637ecebe001461049757806395d89b41146103d0578063a9059cbb1461032d578063d505accf146100ff5763dd62ed3e146100ab575f80fd5b346100fb5760403660031901126100fb576100c4610ad2565b6100cc610ae8565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100fb5760e03660031901126100fb57610118610ad2565b610120610ae8565b604435606435916084359260ff84168094036100fb574281106102e857610145610bae565b6001600160a01b039095165f818152600860205260409020805496919590915f1988146102d4576020945f9460809460018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101d860e082610afe565b519020604051908682019261190160f01b84526022830152604282015260428152610204606282610afe565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102c9575f516001600160a01b0316801515806102c0575b1561028a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526005825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610242565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346100fb5760403660031901126100fb57610346610ad2565b60243590335f5260046020526103608260405f2054610ce4565b335f52600460205260405f205560018060a01b031690815f52600460205261038c8160405f2054610d3d565b825f52600460205260405f20556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b346100fb575f3660031901126100fb576040515f6001546103f081610b76565b80845290600181169081156104735750600114610428575b6104248361041881850382610afe565b60405191829182610aa8565b0390f35b91905060015f525f516020610db75f395f51905f52915f905b80821061045957509091508101602001610418610408565b919260018160209254838588010152019101909291610441565b60ff191660208086019190915291151560051b840190910191506104189050610408565b346100fb5760203660031901126100fb576001600160a01b036104b8610ad2565b165f526008602052602060405f2054604051908152f35b346100fb5760203660031901126100fb576001600160a01b036104f0610ad2565b165f526004602052602060405f2054604051908152f35b346100fb575f3660031901126100fb576020610521610bae565b604051908152f35b346100fb575f3660031901126100fb57602060ff60025416604051908152f35b346100fb5760603660031901126100fb57610562610ad2565b61056a610ae8565b6001600160a01b039091165f818152600560209081526040808320338452825290912054604435937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9291856001820161061e575b5050835f52600482526105d68560405f2054610ce4565b845f526004835260405f205560018060a01b031693845f52600482526106008160405f2054610d3d565b855f526004835260405f2055604051908152a3602060405160018152f35b61062791610ce4565b5f858152600584526040808220338352855290205585856105bf565b346100fb575f3660031901126100fb576020600354604051908152f35b346100fb5760603660031901126100fb5760043567ffffffffffffffff81116100fb57610691903690600401610b20565b60243567ffffffffffffffff81116100fb576106b1903690600401610b20565b60443560ff81168091036100fb5760ff6009541661096857825167ffffffffffffffff8111610876576106e45f54610b76565b601f8111610901575b506020601f821160011461089557819293945f9261088a575b50508160011b915f199060031b1c1916175f555b815167ffffffffffffffff811161087657610736600154610b76565b601f811161080e575b50602092601f82116001146107a257928192935f92610797575b50508160011b915f199060031b1c1916176001555b60ff19600254161760025546600655610785610bc8565b6007556009805460ff19166001179055005b015190508380610759565b601f1982169360015f525f516020610db75f395f51905f52915f5b8681106107f657508360019596106107de575b505050811b0160015561076e565b01515f1960f88460031b161c191690558380806107d0565b919260206001819286850151815501940192016107bd565b60015f52601f820160051c5f516020610db75f395f51905f52019060208310610861575b601f0160051c5f516020610db75f395f51905f5201905b818110610856575061073f565b5f8155600101610849565b5f516020610db75f395f51905f529150610832565b634e487b7160e01b5f52604160045260245ffd5b015190508480610706565b601f198216905f80525f516020610d975f395f51905f52915f5b8181106108e9575095836001959697106108d1575b505050811b015f5561071a565b01515f1960f88460031b161c191690558480806108c4565b9192602060018192868b0151815501940192016108af565b5f8052601f820160051c5f516020610d975f395f51905f52019060208310610953575b601f0160051c5f516020610d975f395f51905f5201905b81811061094857506106ed565b5f815560010161093b565b5f516020610d975f395f51905f529150610924565b60405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606490fd5b346100fb5760403660031901126100fb576109bc610ad2565b335f8181526005602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100fb575f3660031901126100fb575f5f54610a3881610b76565b80845290600181169081156104735750600114610a5f576104248361041881850382610afe565b5f8080525f516020610d975f395f51905f52939250905b808210610a8e57509091508101602001610418610408565b919260018160209254838588010152019101909291610a76565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100fb57565b602435906001600160a01b03821682036100fb57565b90601f8019910116810190811067ffffffffffffffff82111761087657604052565b81601f820112156100fb5780359067ffffffffffffffff82116108765760405192610b55601f8401601f191660200185610afe565b828452602083830101116100fb57815f926020809301838601378301015290565b90600182811c92168015610ba4575b6020831014610b9057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610b85565b6006544603610bbd5760075490565b610bc5610bc8565b90565b6040515f905f549181610bda84610b76565b9182825260208201946001811690815f14610cc85750600114610c7e575b610c0492500382610afe565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610c7860c082610afe565b51902090565b505f80805290915f516020610d975f395f51905f525b818310610cac575050906020610c0492820101610bf8565b6020919350806001915483858801015201910190918392610c94565b60ff1916865250610c0492151560051b82016020019050610bf8565b90808210610cf85781039081116102d45790565b60405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606490fd5b908101908181116102d4578110610d515790565b60405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606490fdfe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212207bc18d6111241599ac42e2f08bbb23d9e8dc9449368325c017085997bf0db86e64736f6c634300081b0033","sourceMap":"369:7950:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;369:7950:20;;;;;;;1659:10;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;4416:15;4404:27;;369:7950;;4617:18;;:::i;:::-;-1:-1:-1;;;;;369:7950:20;;;;;;;5026:6;369:7950;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;;;;;;;;;;;4692:413;;;;369:7950;4732:157;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:413;;;369:7950;4692:413;;:::i;:::-;369:7950;4657:470;;369:7950;;4547:598;;;;369:7950;;;;;;;;;;;;;;;4547:598;;;;;;:::i;:::-;369:7950;4520:639;;369:7950;;;;;;;;;;;;;;;;;;;;;;4497:717;;;369:7950;4497:717;;;;;369:7950;4497:717;-1:-1:-1;;;;;369:7950:20;5233:30;;;;:59;;369:7950;;;;5383:31;369:7950;;;;;5322:10;369:7950;;;;;;-1:-1:-1;369:7950:20;;;;;-1:-1:-1;369:7950:20;;;;;;;5383:31;369:7950;;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;-1:-1:-1;;;369:7950:20;;;;;;;5233:59;5267:25;;;;5233:59;;4497:717;369:7950;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;:::i;:::-;;;3420:10;;369:7950;;;;;3404:36;369:7950;;;;;3404:36;:::i;:::-;3420:10;369:7950;;;;;;;;;;;;;;;;;;;;;;3467:28;369:7950;;;;;3467:28;:::i;:::-;369:7950;;;;;;;;;;;;;;;3511:32;369:7950;3420:10;3511:32;;369:7950;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;857:7;369:7950;;;;:::i;:::-;;;;;857:7;369:7950;;;857:7;;;;369:7950;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;857:7;369:7950;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;-1:-1:-1;369:7950:20;;-1:-1:-1;369:7950:20;;;;;;;;;;857:7;369:7950;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;369:7950:20;;-1:-1:-1;369:7950:20;;;;;;;;-1:-1:-1;;369:7950:20;;;;-1:-1:-1;;;;;369:7950:20;;:::i;:::-;;;;1970:41;369:7950;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;-1:-1:-1;;;;;369:7950:20;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;953:9;369:7950;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;369:7950:20;;;;;;;3709:10;369:7950;;;;;;;;3726:10;369:7950;;;;;;;;;;;3995:26;;369:7950;;;3788:22;;3784:80;;369:7950;;;;;;;;;3894:30;369:7950;;;;;3894:30;:::i;:::-;369:7950;;;;;;;;;;;;;;;;;;;;;;;3951:28;369:7950;;;;;3951:28;:::i;:::-;369:7950;;;;;;;;;;;;;;;3995:26;369:7950;;;;;;;3784:80;3843:21;;;:::i;:::-;369:7950;;;;3709:10;369:7950;;;;;;3726:10;369:7950;;;;;;;3784:80;;;;369:7950;;;;;;-1:-1:-1;;369:7950:20;;;;;1403:12;369:7950;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2611:11;369:7950;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;2680:17;369:7950;;;;2707:21;369:7950;;;2707:21;369:7950;7884:53;2739:33;369:7950;2809:24;;:::i;:::-;2782:51;369:7950;2611:11;369:7950;;-1:-1:-1;;369:7950:20;2680:17;369:7950;;;;;;;;-1:-1:-1;369:7950:20;;;;;;;;;;2680:17;369:7950;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;;;;2680:17;369:7950;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;-1:-1:-1;369:7950:20;;;;;;;;;;;;;;;;;;-1:-1:-1;369:7950:20;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;-1:-1:-1;369:7950:20;;;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;:::i;:::-;3167:10;369:7950;;;;3156:10;369:7950;;;;;;;;-1:-1:-1;;;;;369:7950:20;;;;;;;;;;;;;;;;;;;;;;;;3212:37;;;369:7950;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;-1:-1:-1;369:7950:20;;;;;;;-1:-1:-1;369:7950:20;;-1:-1:-1;369:7950:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;:::o;:::-;;;;-1:-1:-1;;;;;369:7950:20;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;369:7950:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;369:7950:20;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;5427:178;5528:16;369:7950;7884:53;5510:34;:88;;5547:24;369:7950;5427:178;:::o;5510:88::-;5574:24;;:::i;:::-;5427:178;:::o;5611:404::-;369:7950;;5882:5;369:7950;5882:5;369:7950;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5866:23;;369:7950;;;5725:273;;369:7950;5753:95;369:7950;;;;;;5907:14;369:7950;;;;7884:53;369:7950;;;;5979:4;369:7950;;;;;5725:273;;;;;;:::i;:::-;369:7950;5702:306;;5611:404;:::o;369:7950::-;-1:-1:-1;5882:5:20;369:7950;;;;;-1:-1:-1;;;;;;;;;;;369:7950:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;369:7950:20;;;-1:-1:-1;369:7950:20;;;;;;;;;;;-1:-1:-1;369:7950:20;;7038:154;;7124:6;;;369:7950;;;;;;;;;7038:154;:::o;369:7950::-;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;;;;;;;;;6859:173;;369:7950;;;;;;;;6972:6;;369:7950;;6859:173;:::o;369:7950::-;;;-1:-1:-1;;;369:7950:20;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/evm/out/MockERC721.sol/IERC721TokenReceiver.json b/evm/out/MockERC721.sol/IERC721TokenReceiver.json deleted file mode 100644 index 2e69d60..0000000 --- a/evm/out/MockERC721.sol/IERC721TokenReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"IERC721TokenReceiver"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/evm/out/MockERC721.sol/MockERC721.json b/evm/out/MockERC721.sol/MockERC721.json deleted file mode 100644 index b27b465..0000000 --- a/evm/out/MockERC721.sol/MockERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601557610e8c908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a1d5750806306fdde031461098e578063081812fc1461095c578063095ea7b3146108a657806323b872dd1461089457806342842e0e146107d55780634cd88b76146104bd5780636352211e1461044f57806370a08231146103dd57806395d89b411461030e578063a22cb46514610285578063b88d4fde14610155578063c87b56dd146101115763e985e9c5146100b6575f80fd5b3461010d57604036600319011261010d576100cf610aac565b6100d7610ac2565b9060018060a01b03165f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5f80fd5b3461010d57602036600319011261010d5760405160208152602081816060518082840152806080604085015e5f8382018301830152601f01601f1916820101030190f35b608036600319011261010d57610169610aac565b610171610ac2565b6044359060643567ffffffffffffffff811161010d573660238201121561010d576101a6903690602481600401359101610b34565b906101b2838286610c0d565b803b159283156101c8575b6101c684610dd7565b005b604051630a85bd0160e11b81523360048201526001600160a01b03909516602486015260448501526080606485015260209250839182905f908290610211906084830190610a88565b03926001600160a01b03165af1801561027a576101c6915f9161024b575b506001600160e01b031916630a85bd0160e11b148280806101bd565b61026d915060203d602011610273575b6102658183610b12565b810190610db7565b8261022f565b503d61025b565b6040513d5f823e3d90fd5b3461010d57604036600319011261010d5761029e610aac565b6024359081151580920361010d57335f52600560205260405f2060018060a01b0382165f5260205260405f2060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b3461010d575f36600319011261010d576040515f60015461032e81610b98565b80845290600181169081156103b9575060011461036e575b61036a8361035681850382610b12565b604051918291602083526020830190610a88565b0390f35b91905060015f525f516020610e375f395f51905f52915f905b80821061039f57509091508101602001610356610346565b919260018160209254838588010152019101909291610387565b60ff191660208086019190915291151560051b840190910191506103569050610346565b3461010d57602036600319011261010d576001600160a01b036103fe610aac565b16801561041b575f526003602052602060405f2054604051908152f35b60405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606490fd5b3461010d57602036600319011261010d576004355f908152600260205260409020546001600160a01b0316801561048b57602090604051908152f35b60405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606490fd5b3461010d57604036600319011261010d5760043567ffffffffffffffff811161010d576104ee903690600401610b7a565b60243567ffffffffffffffff811161010d5761050e903690600401610b7a565b60ff6006541661079a57815167ffffffffffffffff81116106aa576105335f54610b98565b601f8111610733575b50602092601f82116001146106c957928192935f926106be575b50508160011b915f199060031b1c1916175f555b805167ffffffffffffffff81116106aa57610586600154610b98565b601f8111610642575b50602091601f82116001146105d7579181925f926105cc575b50508160011b915f199060031b1c1916176001555b6006805460ff19166001179055005b0151905082806105a8565b601f1982169260015f525f516020610e375f395f51905f52915f5b85811061062a57508360019510610612575b505050811b016001556105bd565b01515f1960f88460031b161c19169055828080610604565b919260206001819286850151815501940192016105f2565b60015f52601f820160051c5f516020610e375f395f51905f52019060208310610695575b601f0160051c5f516020610e375f395f51905f5201905b81811061068a575061058f565b5f815560010161067d565b5f516020610e375f395f51905f529150610666565b634e487b7160e01b5f52604160045260245ffd5b015190508380610556565b601f198216935f80525f516020610e175f395f51905f52915f5b86811061071b5750836001959610610703575b505050811b015f5561056a565b01515f1960f88460031b161c191690558380806106f6565b919260206001819286850151815501940192016106e3565b5f8052601f820160051c5f516020610e175f395f51905f52019060208310610785575b601f0160051c5f516020610e175f395f51905f5201905b81811061077a575061053c565b5f815560010161076d565b5f516020610e175f395f51905f529150610756565b60405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606490fd5b6107de36610ad8565b6107eb8183859495610c0d565b823b159182156107ff575b6101c683610dd7565b604051630a85bd0160e11b81523360048201526001600160a01b0391821660248201526044810192909252608060648301525f60848301819052919360209350849260a4928492165af1801561027a576101c6915f91610875575b506001600160e01b031916630a85bd0160e11b1482806107f6565b61088e915060203d602011610273576102658183610b12565b8261085a565b6101c66108a036610ad8565b91610c0d565b604036600319011261010d576108ba610aac565b60243590815f52600260205260018060a01b0360405f20541690813314801561093a575b6108e790610bd0565b5f83815260046020526040812080546001600160a01b0319166001600160a01b039390931692831790559091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259080a4005b505f82815260056020908152604080832033845290915290205460ff166108de565b3461010d57602036600319011261010d576004355f526004602052602060018060a01b0360405f205416604051908152f35b3461010d575f36600319011261010d576040515f5f546109ad81610b98565b80845290600181169081156103b957506001146109d45761036a8361035681850382610b12565b5f8080525f516020610e175f395f51905f52939250905b808210610a0357509091508101602001610356610346565b9192600181602092548385880101520191019092916109eb565b3461010d57602036600319011261010d576004359063ffffffff60e01b821680920361010d576020916301ffc9a760e01b8114908115610a77575b8115610a66575b5015158152f35b635b5e139f60e01b14905083610a5f565b6380ac58cd60e01b81149150610a58565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010d57565b602435906001600160a01b038216820361010d57565b606090600319011261010d576004356001600160a01b038116810361010d57906024356001600160a01b038116810361010d579060443590565b90601f8019910116810190811067ffffffffffffffff8211176106aa57604052565b92919267ffffffffffffffff82116106aa5760405191610b5e601f8201601f191660200184610b12565b82948184528183011161010d578281602093845f960137010152565b9080601f8301121561010d57816020610b9593359101610b34565b90565b90600182811c92168015610bc6575b6020831014610bb257565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610ba7565b15610bd757565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606490fd5b5f838152600260205260409020546001600160a01b039182169291168203610d85576001600160a01b0316908115610d4c578033148015610d2a575b8015610d0b575b610c5990610bd0565b805f52600360205260405f2080548015610cf7575f19019055815f52600360205260405f2080545f198114610cf7576001019055825f52600260205260405f20826bffffffffffffffffffffffff60a01b825416179055825f52600460205260405f206bffffffffffffffffffffffff60a01b81541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4565b634e487b7160e01b5f52601160045260245ffd5b505f838152600460205260409020546001600160a01b03163314610c50565b505f81815260056020908152604080832033845290915290205460ff16610c49565b60405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606490fd5b9081602091031261010d57516001600160e01b03198116810361010d5790565b15610dde57565b60405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606490fdfe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a2646970667358221220ce9e4d7d81a3950314284aa6d6efd2c6ef90cca76b8f3e3d6835e8b75778531764736f6c634300081b0033","sourceMap":"381:7498:21:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a1d5750806306fdde031461098e578063081812fc1461095c578063095ea7b3146108a657806323b872dd1461089457806342842e0e146107d55780634cd88b76146104bd5780636352211e1461044f57806370a08231146103dd57806395d89b411461030e578063a22cb46514610285578063b88d4fde14610155578063c87b56dd146101115763e985e9c5146100b6575f80fd5b3461010d57604036600319011261010d576100cf610aac565b6100d7610ac2565b9060018060a01b03165f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5f80fd5b3461010d57602036600319011261010d5760405160208152602081816060518082840152806080604085015e5f8382018301830152601f01601f1916820101030190f35b608036600319011261010d57610169610aac565b610171610ac2565b6044359060643567ffffffffffffffff811161010d573660238201121561010d576101a6903690602481600401359101610b34565b906101b2838286610c0d565b803b159283156101c8575b6101c684610dd7565b005b604051630a85bd0160e11b81523360048201526001600160a01b03909516602486015260448501526080606485015260209250839182905f908290610211906084830190610a88565b03926001600160a01b03165af1801561027a576101c6915f9161024b575b506001600160e01b031916630a85bd0160e11b148280806101bd565b61026d915060203d602011610273575b6102658183610b12565b810190610db7565b8261022f565b503d61025b565b6040513d5f823e3d90fd5b3461010d57604036600319011261010d5761029e610aac565b6024359081151580920361010d57335f52600560205260405f2060018060a01b0382165f5260205260405f2060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b3461010d575f36600319011261010d576040515f60015461032e81610b98565b80845290600181169081156103b9575060011461036e575b61036a8361035681850382610b12565b604051918291602083526020830190610a88565b0390f35b91905060015f525f516020610e375f395f51905f52915f905b80821061039f57509091508101602001610356610346565b919260018160209254838588010152019101909291610387565b60ff191660208086019190915291151560051b840190910191506103569050610346565b3461010d57602036600319011261010d576001600160a01b036103fe610aac565b16801561041b575f526003602052602060405f2054604051908152f35b60405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606490fd5b3461010d57602036600319011261010d576004355f908152600260205260409020546001600160a01b0316801561048b57602090604051908152f35b60405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606490fd5b3461010d57604036600319011261010d5760043567ffffffffffffffff811161010d576104ee903690600401610b7a565b60243567ffffffffffffffff811161010d5761050e903690600401610b7a565b60ff6006541661079a57815167ffffffffffffffff81116106aa576105335f54610b98565b601f8111610733575b50602092601f82116001146106c957928192935f926106be575b50508160011b915f199060031b1c1916175f555b805167ffffffffffffffff81116106aa57610586600154610b98565b601f8111610642575b50602091601f82116001146105d7579181925f926105cc575b50508160011b915f199060031b1c1916176001555b6006805460ff19166001179055005b0151905082806105a8565b601f1982169260015f525f516020610e375f395f51905f52915f5b85811061062a57508360019510610612575b505050811b016001556105bd565b01515f1960f88460031b161c19169055828080610604565b919260206001819286850151815501940192016105f2565b60015f52601f820160051c5f516020610e375f395f51905f52019060208310610695575b601f0160051c5f516020610e375f395f51905f5201905b81811061068a575061058f565b5f815560010161067d565b5f516020610e375f395f51905f529150610666565b634e487b7160e01b5f52604160045260245ffd5b015190508380610556565b601f198216935f80525f516020610e175f395f51905f52915f5b86811061071b5750836001959610610703575b505050811b015f5561056a565b01515f1960f88460031b161c191690558380806106f6565b919260206001819286850151815501940192016106e3565b5f8052601f820160051c5f516020610e175f395f51905f52019060208310610785575b601f0160051c5f516020610e175f395f51905f5201905b81811061077a575061053c565b5f815560010161076d565b5f516020610e175f395f51905f529150610756565b60405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606490fd5b6107de36610ad8565b6107eb8183859495610c0d565b823b159182156107ff575b6101c683610dd7565b604051630a85bd0160e11b81523360048201526001600160a01b0391821660248201526044810192909252608060648301525f60848301819052919360209350849260a4928492165af1801561027a576101c6915f91610875575b506001600160e01b031916630a85bd0160e11b1482806107f6565b61088e915060203d602011610273576102658183610b12565b8261085a565b6101c66108a036610ad8565b91610c0d565b604036600319011261010d576108ba610aac565b60243590815f52600260205260018060a01b0360405f20541690813314801561093a575b6108e790610bd0565b5f83815260046020526040812080546001600160a01b0319166001600160a01b039390931692831790559091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259080a4005b505f82815260056020908152604080832033845290915290205460ff166108de565b3461010d57602036600319011261010d576004355f526004602052602060018060a01b0360405f205416604051908152f35b3461010d575f36600319011261010d576040515f5f546109ad81610b98565b80845290600181169081156103b957506001146109d45761036a8361035681850382610b12565b5f8080525f516020610e175f395f51905f52939250905b808210610a0357509091508101602001610356610346565b9192600181602092548385880101520191019092916109eb565b3461010d57602036600319011261010d576004359063ffffffff60e01b821680920361010d576020916301ffc9a760e01b8114908115610a77575b8115610a66575b5015158152f35b635b5e139f60e01b14905083610a5f565b6380ac58cd60e01b81149150610a58565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361010d57565b602435906001600160a01b038216820361010d57565b606090600319011261010d576004356001600160a01b038116810361010d57906024356001600160a01b038116810361010d579060443590565b90601f8019910116810190811067ffffffffffffffff8211176106aa57604052565b92919267ffffffffffffffff82116106aa5760405191610b5e601f8201601f191660200184610b12565b82948184528183011161010d578281602093845f960137010152565b9080601f8301121561010d57816020610b9593359101610b34565b90565b90600182811c92168015610bc6575b6020831014610bb257565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610ba7565b15610bd757565b60405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606490fd5b5f838152600260205260409020546001600160a01b039182169291168203610d85576001600160a01b0316908115610d4c578033148015610d2a575b8015610d0b575b610c5990610bd0565b805f52600360205260405f2080548015610cf7575f19019055815f52600360205260405f2080545f198114610cf7576001019055825f52600260205260405f20826bffffffffffffffffffffffff60a01b825416179055825f52600460205260405f206bffffffffffffffffffffffff60a01b81541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4565b634e487b7160e01b5f52601160045260245ffd5b505f838152600460205260409020546001600160a01b03163314610c50565b505f81815260056020908152604080832033845290915290205460ff16610c49565b60405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606490fd5b9081602091031261010d57516001600160e01b03198116810361010d5790565b15610dde57565b60405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606490fdfe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a2646970667358221220ce9e4d7d81a3950314284aa6d6efd2c6ef90cca76b8f3e3d6835e8b75778531764736f6c634300081b0033","sourceMap":"381:7498:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;2173:17;381:7498;;;;;2173:34;381:7498;;;;;;-1:-1:-1;381:7498:21;;;;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4907:2;;;;;;:::i;:::-;7774:65;;7856:14;;;;4942:175;;381:7498;4921:238;;;:::i;:::-;381:7498;4942:175;381:7498;;-1:-1:-1;;;4978:69:21;;5020:10;381:7498;4978:69;;381:7498;-1:-1:-1;;;;;381:7498:21;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;;:::i;:::-;4978:69;;-1:-1:-1;;;;;381:7498:21;4978:69;;;;;;4921:238;4978:69;381:7498;4978:69;;;4942:175;-1:-1:-1;;;;;;;381:7498:21;-1:-1:-1;;;4978:139:21;4942:175;;;;;4978:69;;;;381:7498;4978:69;381:7498;4978:69;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;381:7498;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;:::i;:::-;;;;;;;;;;;;3525:10;381:7498;;3507:17;381:7498;;;;;;;;;;;;-1:-1:-1;381:7498:21;;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;3525:10;3573:46;381:7498;3525:10;3573:46;;381:7498;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;851:7;381:7498;;;;:::i;:::-;;;;;851:7;381:7498;;;851:7;;;;381:7498;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;851:7;381:7498;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;-1:-1:-1;381:7498:21;;-1:-1:-1;381:7498:21;;;;;;;;;;851:7;381:7498;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;-1:-1:-1;381:7498:21;;;;;;;;-1:-1:-1;;381:7498:21;;;;-1:-1:-1;;;;;381:7498:21;;:::i;:::-;;1521:19;;381:7498;;;;1575:10;381:7498;;;;;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;1367:8;381:7498;;;;;;-1:-1:-1;;;;;381:7498:21;1358:36;;381:7498;;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;2796:11;381:7498;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;2865:17;381:7498;;2796:11;381:7498;;-1:-1:-1;;381:7498:21;2865:17;381:7498;;;;;;;;-1:-1:-1;381:7498:21;;;;;;;;;;2865:17;381:7498;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;;;;;;2865:17;381:7498;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;-1:-1:-1;381:7498:21;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;:::i;:::-;4460:2;;;;;;;:::i;:::-;7774:65;;7856:14;;;;4495:173;;381:7498;4474:236;;;:::i;4495:173::-;381:7498;;-1:-1:-1;;;4531:67:21;;4573:10;381:7498;4531:67;;381:7498;-1:-1:-1;;;;;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;4531:67;;381:7498;;;4531:67;;;;;;4474:236;4531:67;381:7498;4531:67;;;4495:173;-1:-1:-1;;;;;;;381:7498:21;-1:-1:-1;;;4531:137:21;4495:173;;;;4531:67;;;;381:7498;4531:67;381:7498;4531:67;;;;;;;:::i;:::-;;;;381:7498;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;381:7498:21;;;;;;:::i;:::-;;;;;;;3210:8;381:7498;;;;;;;;;;;;3241:10;;;:19;:59;;;;381:7498;3233:86;;;:::i;:::-;381:7498;;;;;;;;;;;;-1:-1:-1;;;;;;381:7498:21;-1:-1:-1;;;;;381:7498:21;;;;;;;;;;;3372:28;;;381:7498;3372:28;381:7498;3241:59;-1:-1:-1;381:7498:21;;;;3264:17;381:7498;;;;;;;;3241:10;381:7498;;;;;;;;;;3241:59;;381:7498;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;381:7498:21;;-1:-1:-1;381:7498:21;;;;;;;-1:-1:-1;381:7498:21;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5462:25:21;;;:100;;;;381:7498;5462:175;;;;381:7498;;;;;;;5462:175;-1:-1:-1;;;5612:25:21;;-1:-1:-1;5462:175:21;;;:100;-1:-1:-1;;;5537:25:21;;;-1:-1:-1;5462:100:21;;381:7498;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;;;;;;;-1:-1:-1;;381:7498:21;;;;:::o;:::-;;;;-1:-1:-1;;;;;381:7498:21;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;381:7498:21;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;381:7498:21;;;;;;;;;-1:-1:-1;;;;;381:7498:21;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;381:7498:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;3632:693;-1:-1:-1;381:7498:21;;;3750:8;381:7498;;;;;;-1:-1:-1;;;;;381:7498:21;;;;3632:693;381:7498;3742:20;;381:7498;;-1:-1:-1;;;;;381:7498:21;;3796:16;;381:7498;;3866:10;;:18;:57;;;;3632:693;3866:91;;;;3632:693;3845:152;;;:::i;:::-;381:7498;-1:-1:-1;381:7498:21;4173:10;381:7498;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;-1:-1:-1;381:7498:21;4173:10;381:7498;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;;;-1:-1:-1;381:7498:21;3750:8;381:7498;;;-1:-1:-1;381:7498:21;;;;;;;;;;;;-1:-1:-1;381:7498:21;4264:12;381:7498;;;-1:-1:-1;381:7498:21;;;;;;;;;4296:22;-1:-1:-1;4296:22:21;;3632:693::o;381:7498::-;;;;-1:-1:-1;381:7498:21;;;;;-1:-1:-1;381:7498:21;3866:91;-1:-1:-1;;381:7498:21;;;3941:12;381:7498;;;;;;-1:-1:-1;;;;;381:7498:21;3866:10;3927:30;3866:91;;:57;-1:-1:-1;;381:7498:21;;;3888:17;381:7498;;;;;;;;3866:10;381:7498;;;;;;;;;;3866:57;;381:7498;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;381:7498:21;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;381:7498:21;;;;;;;;;;;;-1:-1:-1;;;381:7498:21;;;;;;","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/evm/out/MockSETHx.sol/MockSETHx.json b/evm/out/MockSETHx.sol/MockSETHx.json deleted file mode 100644 index 377d908..0000000 --- a/evm/out/MockSETHx.sol/MockSETHx.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"isBufferInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC4626ExceededMaxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a0a6e8c2d6cac8408aa890f60ab1b602084015280519161006f8284610373565b60058352640e68aa890f60db1b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220b086c5fd69f84195c720e651bd0c3fdfe94026eb8e5f77216c898ab4d4455cb664736f6c634300081b0033","sourceMap":"216:714:79:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;216:714:79;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:714:79;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:714:79;;;;;;-1:-1:-1;;;;;216:714:79;;;;1667:13:28;216:714:79;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;;;;;1667:13:28;216:714:79;;;;;1667:13:28;216:714:79;;;;-1:-1:-1;;;;;216:714:79;;;;1690:17:28;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;;;;;1667:13:28;216:714:79;;;;;1690:17:28;216:714:79;;4353:28:30;;;:::i;:::-;4413;;;;;4391:50;;4451:15;;216:714:79;;;;;;;4451:15:30;216:714:79;;;;;;;;;;;;;;;4391:50:30;216:714:79;;;;;;4413:28:30;;4439:2;4413:28;;216:714:79;;;;-1:-1:-1;216:714:79;;;;;;;;;;1690:17:28;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;216:714:79;;;;;;;;;;1667:13:28;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;-1:-1:-1;216:714:79;;1690:17:28;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;-1:-1:-1;216:714:79;;1690:17:28;216:714:79;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;;;;;;;;;;1667:13:28;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;216:714:79;;;;;;;;;;1667:13:28;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;;;;;;-1:-1:-1;216:714:79;;;;;;;-1:-1:-1;;216:714:79;;;;-1:-1:-1;;;;;216:714:79;;;;;;;;;;:::o;4616:533:30:-;4753:93;4616:533;;216:714:79;;4793:43:30;;;;;;;;;;;;;;;;:::i;:::-;4753:93;;-1:-1:-1;;;;;216:714:79;4753:93:30;;216:714:79;;;;;;-1:-1:-1;;;;;216:714:79;;;;;;;;;;;-1:-1:-1;;216:714:79;4793:43:30;216:714:79;;;:::i;:::-;;;;4753:93:30;4793:43;216:714:79;;;;4860:39:30;;;216:714:79;4856:260:30;;216:714:79;5125:17:30;4753:93;5125:17;4753:93;4616:533;:::o;4856:260::-;4793:43;216:714:79;;;4942:38:30;;216:714:79;;;;4793:43:30;4942:38;216:714:79;;4998:35:30;;4856:260;4994:112;5053:38;216:714:79;;;;5053:38:30;:::o;4860:39::-;216:714:79;4793:43:30;216:714:79;;4871:28:30;;4860:39;;216:714:79;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220b086c5fd69f84195c720e651bd0c3fdfe94026eb8e5f77216c898ab4d4455cb664736f6c634300081b0033","sourceMap":"216:714:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;7232:45:30;216:714:79;;7232:45:30;:::i;:::-;216:714:79;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;252:31;216:714;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;;;:::i;:::-;-1:-1:-1;;;;;216:714:79;3095:9:28;216:714:79;;;;;;;;;;;;3004:116:28;216:714:79;;;;;;-1:-1:-1;;216:714:79;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;7061:16:30;;;;216:714:79;;;;;;3095:9:28;216:714:79;3095:9:28;216:714:79;;;3095:9:28;216:714:79;;3004:116:28;;7061:16:30;9400:18;;;9396:106;;7824:45;;216:714:79;7824:45:30;;9609:6;7824:45;;:::i;:::-;735:10:34;;;;9609:6:30;:::i;9396:106::-;9441:50;;;;216:714:79;9441:50:30;216:714:79;;;;;;;;;;;;;;9441:50:30;216:714:79;;;;;;;:::i;:::-;8914:18:30;;;;;:::i;:::-;8946;;;8942:108;;7627:44;216:714:79;7627:44:30;;;9159:6;7627:44;;:::i;:::-;735:10:34;;;;9159:6:30;:::i;8942:108::-;8987:52;;;;216:714:79;8987:52:30;216:714:79;;;;;;;;;;;;;;8987:52:30;216:714:79;;;;;;-1:-1:-1;;216:714:79;;;;;7426:44:30;216:714:79;;7426:44:30;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;3459:5:28;216:714:79;;:::i;:::-;;;735:10:34;;3459:5:28;:::i;:::-;216:714:79;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;;8699:6:30;216:714:79;;:::i;:::-;7426:44:30;;;;:::i;:::-;735:10:34;;;8699:6:30;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;;;;8276:6:30;216:714:79;;:::i;:::-;7232:45:30;;;:::i;:::-;735:10:34;;;;8276:6:30;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;;7824:45:30;216:714:79;;7824:45:30;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;;;5829:6:30;-1:-1:-1;;;;;216:714:79;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;5659:19:30;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;4986:5:28;216:714:79;;:::i;:::-;;;:::i;:::-;;;735:10:34;4950:5:28;735:10:34;;4950:5:28;;:::i;:::-;4986;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;;2927:12:28;216:714:79;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;7627:44:30;216:714:79;;7627:44:30;:::i;216:714:79:-;;;;;;-1:-1:-1;;216:714:79;;;;;;:::i;:::-;;;735:10:34;;9813:19:28;9809:89;;-1:-1:-1;;;;;216:714:79;;9911:21:28;;9907:90;;735:10:34;216:714:79;;;;;;;;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;;;;;;;10085:31:28;216:714:79;735:10:34;10085:31:28;;216:714:79;;;;;;;9907:90:28;9955:31;;;216:714:79;9955:31:28;216:714:79;;;;;9955:31:28;9809:89;9855:32;;;216:714:79;9855:32:28;216:714:79;;;;;9855:32:28;216:714:79;;;;;;-1:-1:-1;;216:714:79;;;;;;;1856:5:28;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1856:5:28;216:714:79;;;;;;;;;;;;-1:-1:-1;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:714:79;;;;:::o;:::-;;;;;;-1:-1:-1;;216:714:79;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:714:79;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;216:714:79;;;;;;:::o;:::-;;;;;;-1:-1:-1;;216:714:79;;;;;;:::i;:::-;;;;;6546:17:30;;216:714:79;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:714:79;;;;;;;;;-1:-1:-1;;;;;216:714:79;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;5893:116:30;216:714:79;;-1:-1:-1;;;5971:31:30;;5996:4;5971:31;;;216:714:79;;;5971:31:30;216:714:79;5971:6:30;-1:-1:-1;;;;;216:714:79;5971:31:30;;;;;;;-1:-1:-1;5971:31:30;;;5964:38;5893:116;:::o;5971:31::-;;;216:714:79;5971:31:30;;216:714:79;5971:31:30;;;;;;216:714:79;5971:31:30;;;:::i;:::-;;;216:714:79;;;;;5893:116:30;:::o;5971:31::-;;;-1:-1:-1;5971:31:30;;;216:714:79;;;-1:-1:-1;216:714:79;;;;;6771:153:30;216:714:79;;;;;;3095:9:28;216:714:79;3095:9:28;216:714:79;;6862:55:30;216:714:79;3095:9:28;216:714:79;;6862:55:30;:::i;:::-;6771:153;:::o;216:714:79:-;;;;;;;;;;:::o;9771:213:30:-;2927:12:28;216:714:79;9924:23:30;7652:18;216:714:79;;;;;;;9949:13:30;;:::i;:::-;7652:18;216:714:79;;;;;;;9894:83:30;;7652:18;9894:83;;:::i;9771:213::-;2927:12:28;216:714:79;9924:23:30;216:714:79;;;;;;;;9949:13:30;;:::i;:::-;216:714:79;;;;;;;;9894:83:30;;216:714:79;9894:83:30;;:::i;10415:477:28:-;-1:-1:-1;;;;;216:714:79;;;-1:-1:-1;216:714:79;;;;;;;;;;;;;;;;;;;;;;;;;10415:477:28;;10580:37;;10576:310;;10415:477;;;;;:::o;10576:310::-;10637:24;;;10633:130;;9813:19;;9809:89;;-1:-1:-1;;;;;216:714:79;;9911:21:28;9907:90;;-1:-1:-1;216:714:79;3657:11:28;216:714:79;;;-1:-1:-1;216:714:79;10006:27:28;216:714:79;;;;;;-1:-1:-1;216:714:79;;;;-1:-1:-1;216:714:79;;;;;10576:310:28;;;;;;10633:130;10688:60;;;;;;-1:-1:-1;10688:60:28;216:714:79;;;;;;10688:60:28;216:714:79;;;;;;-1:-1:-1;10688:60:28;5393:300;-1:-1:-1;;;;;216:714:79;;5476:18:28;;5472:86;;-1:-1:-1;;;;;216:714:79;;5571:16:28;;5567:86;;216:714:79;5492:1:28;216:714:79;5492:1:28;216:714:79;;;5492:1:28;216:714:79;;6340:19:28;;;6336:115;;216:714:79;7083:25:28;216:714:79;;;;5492:1:28;216:714:79;5492:1:28;216:714:79;;;;5492:1:28;216:714:79;;;5492:1:28;216:714:79;5492:1:28;216:714:79;;;5492:1:28;216:714:79;;;;;;;;;;;;7083:25:28;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;216:714:79;;;;;;5492:1:28;6386:50;5567:86;5610:32;;;5492:1;5610:32;5492:1;5610:32;216:714:79;;5492:1:28;5610:32;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;216:714:79;;5492:1:28;5517:30;10108:213:30;10245:13;;:::i;:::-;216:714:79;10261:1:30;216:714:79;;;;;;;2927:12:28;216:714:79;10261:1:30;216:714:79;;;;;;;10231:83:30;;216:714:79;10231:83:30;;:::i;10108:213::-;10245:13;;:::i;:::-;216:714:79;7451:18:30;216:714:79;;;;;;;2927:12:28;216:714:79;7451:18:30;216:714:79;;;;;;;10231:83:30;;7451:18;10231:83;;:::i;10385:831::-;216:714:79;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;216:714:79;;;1829:53:32;;;216:714:79;;;11105:4:30;216:714:79;;;;;;;;;;;1829:53:32;;216:714:79;10385:831:30;;1829:53:32;;;;216:714:79;1829:53:32;:::i;:::-;11081:6:30;1829:53:32;:::i;:::-;-1:-1:-1;;;;;216:714:79;;7528:21:28;;7524:91;;11168:41:30;216:714:79;;6233:21:28;216:714:79;;6233:21:28;216:714:79;6233:21:28;:::i;:::-;;216:714:79;;-1:-1:-1;216:714:79;-1:-1:-1;1829:53:32;216:714:79;;-1:-1:-1;216:714:79;;;;;;;;-1:-1:-1;7083:25:28;1829:53:32;216:714:79;;;;;7083:25:28;216:714:79;;;;;1829:53:32;216:714:79;;;11168:41:30;10385:831::o;11283:915::-;-1:-1:-1;;;;;216:714:79;;;;11283:915:30;;216:714:79;;;;11283:915:30;;;;;11460:15;;;11456:84;;11283:915;8054:21:28;;;;;8050:89;;216:714:79;8073:1:28;216:714:79;8073:1:28;216:714:79;;;8073:1:28;216:714:79;;6340:19:28;;;6336:115;;216:714:79;;;;12142:49:30;216:714:79;;8073:1:28;216:714:79;8073:1:28;216:714:79;;;;8073:1:28;216:714:79;;;6810:21:28;216:714:79;;6810:21:28;216:714:79;8073:1:28;216:714:79;7083:25:28;216:714:79;;;;;;7083:25:28;216:714:79;;-1:-1:-1;;;216:714:79;1412:43:32;;;-1:-1:-1;;;;;216:714:79;;;1412:43:32;;;216:714:79;;;;;;;;;;1412:43:32;;216:714:79;1412:43:32;;;;216:714:79;1412:43:32;:::i;:::-;216:714:79;;;;;;;;;12142:49:30;11283:915::o;6336:115:28:-;6386:50;;;;8073:1;6386:50;;216:714:79;;;;;;8073:1:28;6386:50;11456:84:30;11522:6;;;:::i;:::-;11456:84;;;;;8641:238:38;;;8768:25;;;;;:::i;:::-;216:714:79;;;;;;;26935:1:38;216:714:79;;;26912:24:38;8812:59;;;;8641:238;34906:55:39;;8768:104:38;34906:55:39;;;;8768:104:38;;:::i;8812:59::-;8842:25;;;;;;;8768:104;8842:25;;:29;;8812:59;;;;8842:25;216:714:79;;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;;;;;-1:-1:-1;216:714:79;4289:4223:38;;216:714:79;;;;-1:-1:-1;;216:714:79;4289:4223:38;4881:131;;;;;;;;;;;;5093:10;;5089:368;;5567:20;;;;5563:136;;5985:300;;;;216:714:79;;;6504:31:38;;6549:375;;;7384:1;216:714:79;7365:1:38;216:714:79;7364:21:38;216:714:79;;;7384:1:38;216:714:79;;;;;7384:1:38;216:714:79;;;;;7384:1:38;216:714:79;;;;;7384:1:38;216:714:79;;;;;7384:1:38;216:714:79;;;;;7384:1:38;216:714:79;;6549:375:38;;;;216:714:79;6549:375:38;;;5985:300;;;;;;216:714:79;5985:300:38;;6549:375;6990:21;216:714:79;4289:4223:38;:::o;5563:136::-;5619:16;;;939:4:36;5619:64:38;1776:119:36;216:714:79;1776:119:36;;;;;;5619:64:38;844:4:36;5619:64:38;;5089:368;216:714:79;;;;;;;;;5416:26:38;:::o;6468:629:32:-;3256:31:33;;-1:-1:-1;;;;;216:714:79;;;;2626:1:33;;;;3256:31;;2626:1;216:714:79;3256:31:33;;216:714:79;;;;;;;;;;3304:55:33;216:714:79;;;;;3256:31:33;216:714:79;;;;;;;;;:::i;:::-;;;;2626:1:33;3256:31;216:714:79;;;;3304:55:33;;:::i;:::-;216:714:79;;6960:22:32;;;;:57;;;;216:714:79;6956:135:32;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;216:714:79;;2626:1:33;7040:40:32;6960:57;6987:30;;;;3256:31:33;6987:30:32;;;216:714:79;;;;3256:31:33;6987:30:32;216:714:79;;;;;;;;;6960:57:32;;;;216:714:79;3304:55:33;216:714:79;;;;;4421:582:33;;4593:8;;-1:-1:-1;216:714:79;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;216:714:79;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;216:714:79;;;;4917:24:33;216:714:79;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"47616":[{"start":1259,"length":32},{"start":2184,"length":32},{"start":2945,"length":32}],"47618":[{"start":1326,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","isBufferInitialized()":"dc0a9929","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxRedeem\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBufferInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC4626ExceededMaxDeposit(address,uint256,uint256)\":[{\"details\":\"Attempted to deposit more assets than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxMint(address,uint256,uint256)\":[{\"details\":\"Attempted to mint more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxRedeem(address,uint256,uint256)\":[{\"details\":\"Attempted to redeem more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxWithdraw(address,uint256,uint256)\":[{\"details\":\"Attempted to withdraw more assets than the max amount for `receiver`.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockSETHx.sol\":\"MockSETHx\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"test/mocks/MockSETHx.sol\":{\"keccak256\":\"0xa15614c841ac362274d6674d24a8771cb8c9a207a196d583285e079b854b9c61\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://04074f2c48c42ea5cf601c59fc0546a9ae4c526e48925119d8ab881a0a3a099f\",\"dweb:/ipfs/QmZGBhVDhMfuF9FNMMc5aGmc6ZLQjKWavvuMqiURbi4RTL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxDeposit"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxMint"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxRedeem"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxWithdraw"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isBufferInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"decimals()":{"details":"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}."},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/MockSETHx.sol":"MockSETHx"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"test/mocks/MockSETHx.sol":{"keccak256":"0xa15614c841ac362274d6674d24a8771cb8c9a207a196d583285e079b854b9c61","urls":["bzz-raw://04074f2c48c42ea5cf601c59fc0546a9ae4c526e48925119d8ab881a0a3a099f","dweb:/ipfs/QmZGBhVDhMfuF9FNMMc5aGmc6ZLQjKWavvuMqiURbi4RTL"],"license":"AGPL-3.0-or-later"}},"version":1},"id":79} \ No newline at end of file diff --git a/evm/out/MockSGOETH.sol/MockSGOETH.json b/evm/out/MockSGOETH.sol/MockSGOETH.json deleted file mode 100644 index 4e3c8e5..0000000 --- a/evm/out/MockSGOETH.sol/MockSGOETH.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"isBufferInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC4626ExceededMaxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c08060405234610371576020816113ed803803809161001f8285610375565b83398101031261037157516001600160a01b03811681036103715760409081519161004a8184610375565b600c83526b0a6e8c2d6cac8408e9e8aa8960a31b60208401528051916100708284610375565b60068352650e68e9e8aa8960d31b602084015283516001600160401b03811161028257600354600181811c91168015610367575b602082101461026457601f8111610304575b50602094601f82116001146102a1579481929394955f92610296575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028257600454600181811c91168015610278575b602082101461026457601f8111610201575b506020601f821160011461019e57819293945f92610193575b50508160011b915f199060031b1c1916176004555b61015181610398565b901561018b575b60a05260805251610fa2908161044b82396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610158565b015190505f80610133565b601f1982169060045f52805f20915f5b8181106101e9575095836001959697106101d1575b505050811b01600455610148565b01515f1960f88460031b161c191690555f80806101c3565b9192602060018192868b0151815501940192016101ae565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061025a575b601f0160051c01905b81811061024f575061011a565b5f8155600101610242565b9091508190610239565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b601f1982169560035f52805f20915f5b8881106102ec575083600195969798106102d4575b505050811b016003556100e7565b01515f1960f88460031b161c191690555f80806102c6565b919260206001819286850151815501940192016102b1565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035d575b601f0160051c01905b81811061035257506100b6565b5f8155600101610345565b909150819061033c565b90607f16906100a4565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028257604052565b5f8091604051602081019063313ce56760e01b8252600481526103bc602482610375565b51916001600160a01b03165afa3d15610442573d906001600160401b03821161028257604051916103f7601f8201601f191660200184610375565b82523d5f602084013e5b80610436575b610413575b505f905f90565b602081805181010312610371576020015160ff811161040c579060ff6001921690565b50602081511015610407565b60609061040156fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220f270e5db4714581ca643030a27a939347bb30d1896f3ece686528fa2decf041d64736f6c634300081b0033","sourceMap":"216:737:80:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;216:737:80;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:737:80;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:737:80;;;;;;-1:-1:-1;;;;;216:737:80;;;;1667:13:28;216:737:80;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;;;;;1667:13:28;216:737:80;;;;;1667:13:28;216:737:80;;;;-1:-1:-1;;;;;216:737:80;;;;1690:17:28;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;;;;;1667:13:28;216:737:80;;;;;1690:17:28;216:737:80;;4353:28:30;;;:::i;:::-;4413;;;;;4391:50;;4451:15;;216:737:80;;;;;;;4451:15:30;216:737:80;;;;;;;;;;;;;;;4391:50:30;216:737:80;;;;;;4413:28:30;;4439:2;4413:28;;216:737:80;;;;-1:-1:-1;216:737:80;;;;;;;;;;1690:17:28;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;216:737:80;;;;;;;;;;1667:13:28;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;-1:-1:-1;216:737:80;;1690:17:28;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;-1:-1:-1;216:737:80;;1690:17:28;216:737:80;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;;;;;;;;;;1667:13:28;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;216:737:80;;;;;;;;;;1667:13:28;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;;;;;;-1:-1:-1;216:737:80;;;;;;;-1:-1:-1;;216:737:80;;;;-1:-1:-1;;;;;216:737:80;;;;;;;;;;:::o;4616:533:30:-;4753:93;4616:533;;216:737:80;;4793:43:30;;;;;;;;;;;;;;;;:::i;:::-;4753:93;;-1:-1:-1;;;;;216:737:80;4753:93:30;;216:737:80;;;;;;-1:-1:-1;;;;;216:737:80;;;;;;;;;;;-1:-1:-1;;216:737:80;4793:43:30;216:737:80;;;:::i;:::-;;;;4753:93:30;4793:43;216:737:80;;;;4860:39:30;;;216:737:80;4856:260:30;;216:737:80;5125:17:30;4753:93;5125:17;4753:93;4616:533;:::o;4856:260::-;4793:43;216:737:80;;;4942:38:30;;216:737:80;;;;4793:43:30;4942:38;216:737:80;;4998:35:30;;4856:260;4994:112;5053:38;216:737:80;;;;5053:38:30;:::o;4860:39::-;216:737:80;4793:43:30;216:737:80;;4871:28:30;;4860:39;;216:737:80;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea2646970667358221220f270e5db4714581ca643030a27a939347bb30d1896f3ece686528fa2decf041d64736f6c634300081b0033","sourceMap":"216:737:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;7232:45:30;216:737:80;;7232:45:30;:::i;:::-;216:737:80;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;253:31;216:737;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;;;:::i;:::-;-1:-1:-1;;;;;216:737:80;3095:9:28;216:737:80;;;;;;;;;;;;3004:116:28;216:737:80;;;;;;-1:-1:-1;;216:737:80;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;7061:16:30;;;;216:737:80;;;;;;3095:9:28;216:737:80;3095:9:28;216:737:80;;;3095:9:28;216:737:80;;3004:116:28;;7061:16:30;9400:18;;;9396:106;;7824:45;;216:737:80;7824:45:30;;9609:6;7824:45;;:::i;:::-;735:10:34;;;;9609:6:30;:::i;9396:106::-;9441:50;;;;216:737:80;9441:50:30;216:737:80;;;;;;;;;;;;;;9441:50:30;216:737:80;;;;;;;:::i;:::-;8914:18:30;;;;;:::i;:::-;8946;;;8942:108;;7627:44;216:737:80;7627:44:30;;;9159:6;7627:44;;:::i;:::-;735:10:34;;;;9159:6:30;:::i;8942:108::-;8987:52;;;;216:737:80;8987:52:30;216:737:80;;;;;;;;;;;;;;8987:52:30;216:737:80;;;;;;-1:-1:-1;;216:737:80;;;;;7426:44:30;216:737:80;;7426:44:30;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;3459:5:28;216:737:80;;:::i;:::-;;;735:10:34;;3459:5:28;:::i;:::-;216:737:80;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;;8699:6:30;216:737:80;;:::i;:::-;7426:44:30;;;;:::i;:::-;735:10:34;;;8699:6:30;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;;;;8276:6:30;216:737:80;;:::i;:::-;7232:45:30;;;:::i;:::-;735:10:34;;;;8276:6:30;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;;7824:45:30;216:737:80;;7824:45:30;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;;;5829:6:30;-1:-1:-1;;;;;216:737:80;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;5659:19:30;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;4986:5:28;216:737:80;;:::i;:::-;;;:::i;:::-;;;735:10:34;4950:5:28;735:10:34;;4950:5:28;;:::i;:::-;4986;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;;2927:12:28;216:737:80;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;7627:44:30;216:737:80;;7627:44:30;:::i;216:737:80:-;;;;;;-1:-1:-1;;216:737:80;;;;;;:::i;:::-;;;735:10:34;;9813:19:28;9809:89;;-1:-1:-1;;;;;216:737:80;;9911:21:28;;9907:90;;735:10:34;216:737:80;;;;;;;;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;;;;;;;10085:31:28;216:737:80;735:10:34;10085:31:28;;216:737:80;;;;;;;9907:90:28;9955:31;;;216:737:80;9955:31:28;216:737:80;;;;;9955:31:28;9809:89;9855:32;;;216:737:80;9855:32:28;216:737:80;;;;;9855:32:28;216:737:80;;;;;;-1:-1:-1;;216:737:80;;;;;;;1856:5:28;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1856:5:28;216:737:80;;;;;;;;;;;;-1:-1:-1;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:737:80;;;;:::o;:::-;;;;;;-1:-1:-1;;216:737:80;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:737:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;216:737:80;;;;;;:::o;:::-;;;;;;-1:-1:-1;;216:737:80;;;;;;:::i;:::-;;;;;6546:17:30;;216:737:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:737:80;;;;;;;;;-1:-1:-1;;;;;216:737:80;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;5893:116:30;216:737:80;;-1:-1:-1;;;5971:31:30;;5996:4;5971:31;;;216:737:80;;;5971:31:30;216:737:80;5971:6:30;-1:-1:-1;;;;;216:737:80;5971:31:30;;;;;;;-1:-1:-1;5971:31:30;;;5964:38;5893:116;:::o;5971:31::-;;;216:737:80;5971:31:30;;216:737:80;5971:31:30;;;;;;216:737:80;5971:31:30;;;:::i;:::-;;;216:737:80;;;;;5893:116:30;:::o;5971:31::-;;;-1:-1:-1;5971:31:30;;;216:737:80;;;-1:-1:-1;216:737:80;;;;;6771:153:30;216:737:80;;;;;;3095:9:28;216:737:80;3095:9:28;216:737:80;;6862:55:30;216:737:80;3095:9:28;216:737:80;;6862:55:30;:::i;:::-;6771:153;:::o;216:737:80:-;;;;;;;;;;:::o;9771:213:30:-;2927:12:28;216:737:80;9924:23:30;7652:18;216:737:80;;;;;;;9949:13:30;;:::i;:::-;7652:18;216:737:80;;;;;;;9894:83:30;;7652:18;9894:83;;:::i;9771:213::-;2927:12:28;216:737:80;9924:23:30;216:737:80;;;;;;;;9949:13:30;;:::i;:::-;216:737:80;;;;;;;;9894:83:30;;216:737:80;9894:83:30;;:::i;10415:477:28:-;-1:-1:-1;;;;;216:737:80;;;-1:-1:-1;216:737:80;;;;;;;;;;;;;;;;;;;;;;;;;10415:477:28;;10580:37;;10576:310;;10415:477;;;;;:::o;10576:310::-;10637:24;;;10633:130;;9813:19;;9809:89;;-1:-1:-1;;;;;216:737:80;;9911:21:28;9907:90;;-1:-1:-1;216:737:80;3657:11:28;216:737:80;;;-1:-1:-1;216:737:80;10006:27:28;216:737:80;;;;;;-1:-1:-1;216:737:80;;;;-1:-1:-1;216:737:80;;;;;10576:310:28;;;;;;10633:130;10688:60;;;;;;-1:-1:-1;10688:60:28;216:737:80;;;;;;10688:60:28;216:737:80;;;;;;-1:-1:-1;10688:60:28;5393:300;-1:-1:-1;;;;;216:737:80;;5476:18:28;;5472:86;;-1:-1:-1;;;;;216:737:80;;5571:16:28;;5567:86;;216:737:80;5492:1:28;216:737:80;5492:1:28;216:737:80;;;5492:1:28;216:737:80;;6340:19:28;;;6336:115;;216:737:80;7083:25:28;216:737:80;;;;5492:1:28;216:737:80;5492:1:28;216:737:80;;;;5492:1:28;216:737:80;;;5492:1:28;216:737:80;5492:1:28;216:737:80;;;5492:1:28;216:737:80;;;;;;;;;;;;7083:25:28;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;216:737:80;;;;;;5492:1:28;6386:50;5567:86;5610:32;;;5492:1;5610:32;5492:1;5610:32;216:737:80;;5492:1:28;5610:32;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;216:737:80;;5492:1:28;5517:30;10108:213:30;10245:13;;:::i;:::-;216:737:80;10261:1:30;216:737:80;;;;;;;2927:12:28;216:737:80;10261:1:30;216:737:80;;;;;;;10231:83:30;;216:737:80;10231:83:30;;:::i;10108:213::-;10245:13;;:::i;:::-;216:737:80;7451:18:30;216:737:80;;;;;;;2927:12:28;216:737:80;7451:18:30;216:737:80;;;;;;;10231:83:30;;7451:18;10231:83;;:::i;10385:831::-;216:737:80;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;216:737:80;;;1829:53:32;;;216:737:80;;;11105:4:30;216:737:80;;;;;;;;;;;1829:53:32;;216:737:80;10385:831:30;;1829:53:32;;;;216:737:80;1829:53:32;:::i;:::-;11081:6:30;1829:53:32;:::i;:::-;-1:-1:-1;;;;;216:737:80;;7528:21:28;;7524:91;;11168:41:30;216:737:80;;6233:21:28;216:737:80;;6233:21:28;216:737:80;6233:21:28;:::i;:::-;;216:737:80;;-1:-1:-1;216:737:80;-1:-1:-1;1829:53:32;216:737:80;;-1:-1:-1;216:737:80;;;;;;;;-1:-1:-1;7083:25:28;1829:53:32;216:737:80;;;;;7083:25:28;216:737:80;;;;;1829:53:32;216:737:80;;;11168:41:30;10385:831::o;11283:915::-;-1:-1:-1;;;;;216:737:80;;;;11283:915:30;;216:737:80;;;;11283:915:30;;;;;11460:15;;;11456:84;;11283:915;8054:21:28;;;;;8050:89;;216:737:80;8073:1:28;216:737:80;8073:1:28;216:737:80;;;8073:1:28;216:737:80;;6340:19:28;;;6336:115;;216:737:80;;;;12142:49:30;216:737:80;;8073:1:28;216:737:80;8073:1:28;216:737:80;;;;8073:1:28;216:737:80;;;6810:21:28;216:737:80;;6810:21:28;216:737:80;8073:1:28;216:737:80;7083:25:28;216:737:80;;;;;;7083:25:28;216:737:80;;-1:-1:-1;;;216:737:80;1412:43:32;;;-1:-1:-1;;;;;216:737:80;;;1412:43:32;;;216:737:80;;;;;;;;;;1412:43:32;;216:737:80;1412:43:32;;;;216:737:80;1412:43:32;:::i;:::-;216:737:80;;;;;;;;;12142:49:30;11283:915::o;6336:115:28:-;6386:50;;;;8073:1;6386:50;;216:737:80;;;;;;8073:1:28;6386:50;11456:84:30;11522:6;;;:::i;:::-;11456:84;;;;;8641:238:38;;;8768:25;;;;;:::i;:::-;216:737:80;;;;;;;26935:1:38;216:737:80;;;26912:24:38;8812:59;;;;8641:238;34906:55:39;;8768:104:38;34906:55:39;;;;8768:104:38;;:::i;8812:59::-;8842:25;;;;;;;8768:104;8842:25;;:29;;8812:59;;;;8842:25;216:737:80;;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;;;;;-1:-1:-1;216:737:80;4289:4223:38;;216:737:80;;;;-1:-1:-1;;216:737:80;4289:4223:38;4881:131;;;;;;;;;;;;5093:10;;5089:368;;5567:20;;;;5563:136;;5985:300;;;;216:737:80;;;6504:31:38;;6549:375;;;7384:1;216:737:80;7365:1:38;216:737:80;7364:21:38;216:737:80;;;7384:1:38;216:737:80;;;;;7384:1:38;216:737:80;;;;;7384:1:38;216:737:80;;;;;7384:1:38;216:737:80;;;;;7384:1:38;216:737:80;;;;;7384:1:38;216:737:80;;6549:375:38;;;;216:737:80;6549:375:38;;;5985:300;;;;;;216:737:80;5985:300:38;;6549:375;6990:21;216:737:80;4289:4223:38;:::o;5563:136::-;5619:16;;;939:4:36;5619:64:38;1776:119:36;216:737:80;1776:119:36;;;;;;5619:64:38;844:4:36;5619:64:38;;5089:368;216:737:80;;;;;;;;;5416:26:38;:::o;6468:629:32:-;3256:31:33;;-1:-1:-1;;;;;216:737:80;;;;2626:1:33;;;;3256:31;;2626:1;216:737:80;3256:31:33;;216:737:80;;;;;;;;;;3304:55:33;216:737:80;;;;;3256:31:33;216:737:80;;;;;;;;;:::i;:::-;;;;2626:1:33;3256:31;216:737:80;;;;3304:55:33;;:::i;:::-;216:737:80;;6960:22:32;;;;:57;;;;216:737:80;6956:135:32;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;216:737:80;;2626:1:33;7040:40:32;6960:57;6987:30;;;;3256:31:33;6987:30:32;;;216:737:80;;;;3256:31:33;6987:30:32;216:737:80;;;;;;;;;6960:57:32;;;;216:737:80;3304:55:33;216:737:80;;;;;4421:582:33;;4593:8;;-1:-1:-1;216:737:80;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;216:737:80;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;216:737:80;;;;4917:24:33;216:737:80;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"47616":[{"start":1259,"length":32},{"start":2184,"length":32},{"start":2945,"length":32}],"47618":[{"start":1326,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","isBufferInitialized()":"dc0a9929","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxRedeem\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBufferInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC4626ExceededMaxDeposit(address,uint256,uint256)\":[{\"details\":\"Attempted to deposit more assets than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxMint(address,uint256,uint256)\":[{\"details\":\"Attempted to mint more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxRedeem(address,uint256,uint256)\":[{\"details\":\"Attempted to redeem more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxWithdraw(address,uint256,uint256)\":[{\"details\":\"Attempted to withdraw more assets than the max amount for `receiver`.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockSGOETH.sol\":\"MockSGOETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"test/mocks/MockSGOETH.sol\":{\"keccak256\":\"0x0f5804798309e3db0909d573c0bde00dbf85badfc4c4e60db74b6966edbf048d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://980ac9b7957e018491a1835246c74d6b82e13553171ce6c77c1fce9ba043ccb8\",\"dweb:/ipfs/Qme2RJ854Dg66TMkX2bbdMHq67G2FioLM8prpztnYU2SLQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxDeposit"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxMint"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxRedeem"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxWithdraw"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isBufferInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"decimals()":{"details":"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}."},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/MockSGOETH.sol":"MockSGOETH"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"test/mocks/MockSGOETH.sol":{"keccak256":"0x0f5804798309e3db0909d573c0bde00dbf85badfc4c4e60db74b6966edbf048d","urls":["bzz-raw://980ac9b7957e018491a1835246c74d6b82e13553171ce6c77c1fce9ba043ccb8","dweb:/ipfs/Qme2RJ854Dg66TMkX2bbdMHq67G2FioLM8prpztnYU2SLQ"],"license":"AGPL-3.0-or-later"}},"version":1},"id":80} \ No newline at end of file diff --git a/evm/out/MockSUSDC.sol/MockSUSDC.json b/evm/out/MockSUSDC.sol/MockSUSDC.json deleted file mode 100644 index 05b72db..0000000 --- a/evm/out/MockSUSDC.sol/MockSUSDC.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"isBufferInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC4626ExceededMaxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a5374616b6564205553444360a81b602084015280519161006f8284610373565b6005835264735553444360d81b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b0033","sourceMap":"216:729:81:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:729:81;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:729:81;;;;;;-1:-1:-1;;;;;216:729:81;;;;1667:13:28;216:729:81;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;1667:13:28;216:729:81;;;;-1:-1:-1;;;;;216:729:81;;;;1690:17:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;1690:17:28;216:729:81;;4353:28:30;;;:::i;:::-;4413;;;;;4391:50;;4451:15;;216:729:81;;;;;;;4451:15:30;216:729:81;;;;;;;;;;;;;;;4391:50:30;216:729:81;;;;;;4413:28:30;;4439:2;4413:28;;216:729:81;;;;-1:-1:-1;216:729:81;;;;;;;;;;1690:17:28;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;216:729:81;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;-1:-1:-1;216:729:81;;1690:17:28;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;1690:17:28;216:729:81;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;;;;;;1667:13:28;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;-1:-1:-1;;216:729:81;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;:::o;4616:533:30:-;4753:93;4616:533;;216:729:81;;4793:43:30;;;;;;;;;;;;;;;;:::i;:::-;4753:93;;-1:-1:-1;;;;;216:729:81;4753:93:30;;216:729:81;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;-1:-1:-1;;216:729:81;4793:43:30;216:729:81;;;:::i;:::-;;;;4753:93:30;4793:43;216:729:81;;;;4860:39:30;;;216:729:81;4856:260:30;;216:729:81;5125:17:30;4753:93;5125:17;4753:93;4616:533;:::o;4856:260::-;4793:43;216:729:81;;;4942:38:30;;216:729:81;;;;4793:43:30;4942:38;216:729:81;;4998:35:30;;4856:260;4994:112;5053:38;216:729:81;;;;5053:38:30;:::o;4860:39::-;216:729:81;4793:43:30;216:729:81;;4871:28:30;;4860:39;;216:729:81;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b0033","sourceMap":"216:729:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;7232:45:30;216:729:81;;7232:45:30;:::i;:::-;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;252:31;216:729;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;:::i;:::-;-1:-1:-1;;;;;216:729:81;3095:9:28;216:729:81;;;;;;;;;;;;3004:116:28;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;7061:16:30;;;;216:729:81;;;;;;3095:9:28;216:729:81;3095:9:28;216:729:81;;;3095:9:28;216:729:81;;3004:116:28;;7061:16:30;9400:18;;;9396:106;;7824:45;;216:729:81;7824:45:30;;9609:6;7824:45;;:::i;:::-;735:10:34;;;;9609:6:30;:::i;9396:106::-;9441:50;;;;216:729:81;9441:50:30;216:729:81;;;;;;;;;;;;;;9441:50:30;216:729:81;;;;;;;:::i;:::-;8914:18:30;;;;;:::i;:::-;8946;;;8942:108;;7627:44;216:729:81;7627:44:30;;;9159:6;7627:44;;:::i;:::-;735:10:34;;;;9159:6:30;:::i;8942:108::-;8987:52;;;;216:729:81;8987:52:30;216:729:81;;;;;;;;;;;;;;8987:52:30;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;7426:44:30;216:729:81;;7426:44:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;3459:5:28;216:729:81;;:::i;:::-;;;735:10:34;;3459:5:28;:::i;:::-;216:729:81;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;8699:6:30;216:729:81;;:::i;:::-;7426:44:30;;;;:::i;:::-;735:10:34;;;8699:6:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;;8276:6:30;216:729:81;;:::i;:::-;7232:45:30;;;:::i;:::-;735:10:34;;;;8276:6:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;7824:45:30;216:729:81;;7824:45:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;5829:6:30;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;5659:19:30;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;4986:5:28;216:729:81;;:::i;:::-;;;:::i;:::-;;;735:10:34;4950:5:28;735:10:34;;4950:5:28;;:::i;:::-;4986;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;2927:12:28;216:729:81;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;7627:44:30;216:729:81;;7627:44:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;735:10:34;;9813:19:28;9809:89;;-1:-1:-1;;;;;216:729:81;;9911:21:28;;9907:90;;735:10:34;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;;;10085:31:28;216:729:81;735:10:34;10085:31:28;;216:729:81;;;;;;;9907:90:28;9955:31;;;216:729:81;9955:31:28;216:729:81;;;;;9955:31:28;9809:89;9855:32;;;216:729:81;9855:32:28;216:729:81;;;;;9855:32:28;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;;;1856:5:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1856:5:28;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;:::o;:::-;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;216:729:81;;;;;;:::o;:::-;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;;;6546:17:30;;216:729:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;5893:116:30;216:729:81;;-1:-1:-1;;;5971:31:30;;5996:4;5971:31;;;216:729:81;;;5971:31:30;216:729:81;5971:6:30;-1:-1:-1;;;;;216:729:81;5971:31:30;;;;;;;-1:-1:-1;5971:31:30;;;5964:38;5893:116;:::o;5971:31::-;;;216:729:81;5971:31:30;;216:729:81;5971:31:30;;;;;;216:729:81;5971:31:30;;;:::i;:::-;;;216:729:81;;;;;5893:116:30;:::o;5971:31::-;;;-1:-1:-1;5971:31:30;;;216:729:81;;;-1:-1:-1;216:729:81;;;;;6771:153:30;216:729:81;;;;;;3095:9:28;216:729:81;3095:9:28;216:729:81;;6862:55:30;216:729:81;3095:9:28;216:729:81;;6862:55:30;:::i;:::-;6771:153;:::o;216:729:81:-;;;;;;;;;;:::o;9771:213:30:-;2927:12:28;216:729:81;9924:23:30;7652:18;216:729:81;;;;;;;9949:13:30;;:::i;:::-;7652:18;216:729:81;;;;;;;9894:83:30;;7652:18;9894:83;;:::i;9771:213::-;2927:12:28;216:729:81;9924:23:30;216:729:81;;;;;;;;9949:13:30;;:::i;:::-;216:729:81;;;;;;;;9894:83:30;;216:729:81;9894:83:30;;:::i;10415:477:28:-;-1:-1:-1;;;;;216:729:81;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;10415:477:28;;10580:37;;10576:310;;10415:477;;;;;:::o;10576:310::-;10637:24;;;10633:130;;9813:19;;9809:89;;-1:-1:-1;;;;;216:729:81;;9911:21:28;9907:90;;-1:-1:-1;216:729:81;3657:11:28;216:729:81;;;-1:-1:-1;216:729:81;10006:27:28;216:729:81;;;;;;-1:-1:-1;216:729:81;;;;-1:-1:-1;216:729:81;;;;;10576:310:28;;;;;;10633:130;10688:60;;;;;;-1:-1:-1;10688:60:28;216:729:81;;;;;;10688:60:28;216:729:81;;;;;;-1:-1:-1;10688:60:28;5393:300;-1:-1:-1;;;;;216:729:81;;5476:18:28;;5472:86;;-1:-1:-1;;;;;216:729:81;;5571:16:28;;5567:86;;216:729:81;5492:1:28;216:729:81;5492:1:28;216:729:81;;;5492:1:28;216:729:81;;6340:19:28;;;6336:115;;216:729:81;7083:25:28;216:729:81;;;;5492:1:28;216:729:81;5492:1:28;216:729:81;;;;5492:1:28;216:729:81;;;5492:1:28;216:729:81;5492:1:28;216:729:81;;;5492:1:28;216:729:81;;;;;;;;;;;;7083:25:28;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;216:729:81;;;;;;5492:1:28;6386:50;5567:86;5610:32;;;5492:1;5610:32;5492:1;5610:32;216:729:81;;5492:1:28;5610:32;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;216:729:81;;5492:1:28;5517:30;10108:213:30;10245:13;;:::i;:::-;216:729:81;10261:1:30;216:729:81;;;;;;;2927:12:28;216:729:81;10261:1:30;216:729:81;;;;;;;10231:83:30;;216:729:81;10231:83:30;;:::i;10108:213::-;10245:13;;:::i;:::-;216:729:81;7451:18:30;216:729:81;;;;;;;2927:12:28;216:729:81;7451:18:30;216:729:81;;;;;;;10231:83:30;;7451:18;10231:83;;:::i;10385:831::-;216:729:81;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;216:729:81;;;1829:53:32;;;216:729:81;;;11105:4:30;216:729:81;;;;;;;;;;;1829:53:32;;216:729:81;10385:831:30;;1829:53:32;;;;216:729:81;1829:53:32;:::i;:::-;11081:6:30;1829:53:32;:::i;:::-;-1:-1:-1;;;;;216:729:81;;7528:21:28;;7524:91;;11168:41:30;216:729:81;;6233:21:28;216:729:81;;6233:21:28;216:729:81;6233:21:28;:::i;:::-;;216:729:81;;-1:-1:-1;216:729:81;-1:-1:-1;1829:53:32;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;-1:-1:-1;7083:25:28;1829:53:32;216:729:81;;;;;7083:25:28;216:729:81;;;;;1829:53:32;216:729:81;;;11168:41:30;10385:831::o;11283:915::-;-1:-1:-1;;;;;216:729:81;;;;11283:915:30;;216:729:81;;;;11283:915:30;;;;;11460:15;;;11456:84;;11283:915;8054:21:28;;;;;8050:89;;216:729:81;8073:1:28;216:729:81;8073:1:28;216:729:81;;;8073:1:28;216:729:81;;6340:19:28;;;6336:115;;216:729:81;;;;12142:49:30;216:729:81;;8073:1:28;216:729:81;8073:1:28;216:729:81;;;;8073:1:28;216:729:81;;;6810:21:28;216:729:81;;6810:21:28;216:729:81;8073:1:28;216:729:81;7083:25:28;216:729:81;;;;;;7083:25:28;216:729:81;;-1:-1:-1;;;216:729:81;1412:43:32;;;-1:-1:-1;;;;;216:729:81;;;1412:43:32;;;216:729:81;;;;;;;;;;1412:43:32;;216:729:81;1412:43:32;;;;216:729:81;1412:43:32;:::i;:::-;216:729:81;;;;;;;;;12142:49:30;11283:915::o;6336:115:28:-;6386:50;;;;8073:1;6386:50;;216:729:81;;;;;;8073:1:28;6386:50;11456:84:30;11522:6;;;:::i;:::-;11456:84;;;;;8641:238:38;;;8768:25;;;;;:::i;:::-;216:729:81;;;;;;;26935:1:38;216:729:81;;;26912:24:38;8812:59;;;;8641:238;34906:55:39;;8768:104:38;34906:55:39;;;;8768:104:38;;:::i;8812:59::-;8842:25;;;;;;;8768:104;8842:25;;:29;;8812:59;;;;8842:25;216:729:81;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;4289:4223:38;;216:729:81;;;;-1:-1:-1;;216:729:81;4289:4223:38;4881:131;;;;;;;;;;;;5093:10;;5089:368;;5567:20;;;;5563:136;;5985:300;;;;216:729:81;;;6504:31:38;;6549:375;;;7384:1;216:729:81;7365:1:38;216:729:81;7364:21:38;216:729:81;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;6549:375:38;;;;216:729:81;6549:375:38;;;5985:300;;;;;;216:729:81;5985:300:38;;6549:375;6990:21;216:729:81;4289:4223:38;:::o;5563:136::-;5619:16;;;939:4:36;5619:64:38;1776:119:36;216:729:81;1776:119:36;;;;;;5619:64:38;844:4:36;5619:64:38;;5089:368;216:729:81;;;;;;;;;5416:26:38;:::o;6468:629:32:-;3256:31:33;;-1:-1:-1;;;;;216:729:81;;;;2626:1:33;;;;3256:31;;2626:1;216:729:81;3256:31:33;;216:729:81;;;;;;;;;;3304:55:33;216:729:81;;;;;3256:31:33;216:729:81;;;;;;;;;:::i;:::-;;;;2626:1:33;3256:31;216:729:81;;;;3304:55:33;;:::i;:::-;216:729:81;;6960:22:32;;;;:57;;;;216:729:81;6956:135:32;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;216:729:81;;2626:1:33;7040:40:32;6960:57;6987:30;;;;3256:31:33;6987:30:32;;;216:729:81;;;;3256:31:33;6987:30:32;216:729:81;;;;;;;;;6960:57:32;;;;216:729:81;3304:55:33;216:729:81;;;;;4421:582:33;;4593:8;;-1:-1:-1;216:729:81;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;216:729:81;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;216:729:81;;;;4917:24:33;216:729:81;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"47616":[{"start":1259,"length":32},{"start":2184,"length":32},{"start":2945,"length":32}],"47618":[{"start":1326,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","isBufferInitialized()":"dc0a9929","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxRedeem\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBufferInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC4626ExceededMaxDeposit(address,uint256,uint256)\":[{\"details\":\"Attempted to deposit more assets than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxMint(address,uint256,uint256)\":[{\"details\":\"Attempted to mint more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxRedeem(address,uint256,uint256)\":[{\"details\":\"Attempted to redeem more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxWithdraw(address,uint256,uint256)\":[{\"details\":\"Attempted to withdraw more assets than the max amount for `receiver`.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockSUSDC.sol\":\"MockSUSDC\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"test/mocks/MockSUSDC.sol\":{\"keccak256\":\"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1\",\"dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxDeposit"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxMint"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxRedeem"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxWithdraw"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isBufferInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"decimals()":{"details":"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}."},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/MockSUSDC.sol":"MockSUSDC"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"test/mocks/MockSUSDC.sol":{"keccak256":"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c","urls":["bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1","dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b"],"license":"AGPL-3.0-or-later"}},"version":1},"id":81} \ No newline at end of file diff --git a/evm/out/Panic.sol/Panic.json b/evm/out/Panic.sol/Panic.json deleted file mode 100644 index 73f8647..0000000 --- a/evm/out/Panic.sol/Panic.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122075d2ca092cb5d79eea418093adfdc72a93205acac200816f6d622a3e51c2387364736f6c634300081b0033","sourceMap":"561:1342:36:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122075d2ca092cb5d79eea418093adfdc72a93205acac200816f6d622a3e51c2387364736f6c634300081b0033","sourceMap":"561:1342:36:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":"Panic"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/evm/out/SafeCast.sol/SafeCast.json b/evm/out/SafeCast.sol/SafeCast.json deleted file mode 100644 index 97f22e1..0000000 --- a/evm/out/SafeCast.sol/SafeCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeCastOverflowedIntDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedIntToUint","inputs":[{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeCastOverflowedUintToInt","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220efcefca7f895551e50b8823f3c65f2bd33d3ce7aaa9d944f2a634001595f90ea64736f6c634300081b0033","sourceMap":"769:34200:39:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220efcefca7f895551e50b8823f3c65f2bd33d3ce7aaa9d944f2a634001595f90ea64736f6c634300081b0033","sourceMap":"769:34200:39:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntDowncast"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntToUint"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintToInt"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":"SafeCast"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file diff --git a/evm/out/SafeERC20.sol/SafeERC20.json b/evm/out/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index 01b093a..0000000 --- a/evm/out/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122020e7ff512bfd332971d42eec3f6a086d94edc27797df465714c311c2dc4b4aee64736f6c634300081b0033","sourceMap":"750:7428:32:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122020e7ff512bfd332971d42eec3f6a086d94edc27797df465714c311c2dc4b4aee64736f6c634300081b0033","sourceMap":"750:7428:32:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC-20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"SafeERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":32} \ No newline at end of file diff --git a/evm/out/StdAssertions.sol/StdAssertions.json b/evm/out/StdAssertions.sol/StdAssertions.json deleted file mode 100644 index c511df6..0000000 --- a/evm/out/StdAssertions.sol/StdAssertions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":1} \ No newline at end of file diff --git a/evm/out/StdChains.sol/StdChains.json b/evm/out/StdChains.sol/StdChains.json deleted file mode 100644 index b91ed71..0000000 --- a/evm/out/StdChains.sol/StdChains.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":2} \ No newline at end of file diff --git a/evm/out/StdCheats.sol/StdCheats.json b/evm/out/StdCheats.sol/StdCheats.json deleted file mode 100644 index d5d3567..0000000 --- a/evm/out/StdCheats.sol/StdCheats.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/evm/out/StdCheats.sol/StdCheatsSafe.json b/evm/out/StdCheats.sol/StdCheatsSafe.json deleted file mode 100644 index bd2a5db..0000000 --- a/evm/out/StdCheats.sol/StdCheatsSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/evm/out/StdError.sol/stdError.json b/evm/out/StdError.sol/stdError.json deleted file mode 100644 index 719eebb..0000000 --- a/evm/out/StdError.sol/stdError.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x608080604052346019576102f7908161001e823930815050f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816305ee8612146102335750806310332977146101ff5780631de45560146101cb5780638995290f14610197578063986c5f6814610163578063b22dc54d1461012f578063b67689da146100fb578063d160e4de146100c75763fa784a441461007f575f80fd5b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260126024820152602481526100b3604482610261565b60405191829182610297565b0390f35b5f80fd5b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260226024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260516024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260316024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260416024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260116024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260216024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260016024820152602481526100b3604482610261565b5f3660031901126100c3576100bf90634e487b7160e01b602082015260326024820152602481526100b36044825b90601f8019910116810190811067ffffffffffffffff82111761028357604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f191601019056fea26469706673582212209254750f764e044c91f7b9d3c06e72a1a0bcfc383088cc84232ce683bd10784964736f6c634300081b0033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816305ee8612146102335750806310332977146101ff5780631de45560146101cb5780638995290f14610197578063986c5f6814610163578063b22dc54d1461012f578063b67689da146100fb578063d160e4de146100c75763fa784a441461007f575f80fd5b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260126024820152602481526100b3604482610261565b60405191829182610297565b0390f35b5f80fd5b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260226024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260516024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260316024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260416024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260116024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260216024820152602481526100b3604482610261565b5f3660031901126100c3576100bf604051634e487b7160e01b602082015260016024820152602481526100b3604482610261565b5f3660031901126100c3576100bf90634e487b7160e01b602082015260326024820152602481526100b36044825b90601f8019910116810190811067ffffffffffffffff82111761028357604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f191601019056fea26469706673582212209254750f764e044c91f7b9d3c06e72a1a0bcfc383088cc84232ce683bd10784964736f6c634300081b0033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;408;;;;450:4;408:47;;;162:850;408:47;;;;;;;:::i;:::-;162:850;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;601;;;;643:4;601:47;;;162:850;601:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;962;;;;1004:4;962:47;;;162:850;962:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;687;;;;729:4;687:47;;;162:850;687:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;872;;;;914:4;872:47;;;162:850;872:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;317;;;;359:4;317:47;;;162:850;317:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;505;;;;547:4;505:47;;;162:850;505:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;;;778:47;;;224;;;;266:4;224:47;;;162:850;224:47;;;;;;;:::i;162:850::-;;;-1:-1:-1;;162:850:4;;;;;778:47;;;;;;;;820:4;778:47;;;162:850;778:47;;;;;;162:850;;;;;;;;;;;;;;;;;;;;;:::o;:::-;778:47;;;-1:-1:-1;162:850:4;;;;;-1:-1:-1;162:850:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;162:850:4;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/evm/out/StdInvariant.sol/StdInvariant.json b/evm/out/StdInvariant.sol/StdInvariant.json deleted file mode 100644 index 0dadf25..0000000 --- a/evm/out/StdInvariant.sol/StdInvariant.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdInvariant.sol\":\"StdInvariant\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/evm/out/StdJson.sol/stdJson.json b/evm/out/StdJson.sol/stdJson.json deleted file mode 100644 index a065c27..0000000 --- a/evm/out/StdJson.sol/stdJson.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220ef2f821a2d1337da65e3a8428db8b5ba71c53ecc57157976101eaf7eae69da4d64736f6c634300081b0033","sourceMap":"610:5612:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220ef2f821a2d1337da65e3a8428db8b5ba71c53ecc57157976101eaf7eae69da4d64736f6c634300081b0033","sourceMap":"610:5612:6:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/evm/out/StdMath.sol/stdMath.json b/evm/out/StdMath.sol/stdMath.json deleted file mode 100644 index 579683f..0000000 --- a/evm/out/StdMath.sol/stdMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220f353a3cfe56af56d81605f7c66601c92ebea0e58fdacf5eb2f4f9e70cadcfad364736f6c634300081b0033","sourceMap":"65:1294:7:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220f353a3cfe56af56d81605f7c66601c92ebea0e58fdacf5eb2f4f9e70cadcfad364736f6c634300081b0033","sourceMap":"65:1294:7:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":7} \ No newline at end of file diff --git a/evm/out/StdStorage.sol/stdStorage.json b/evm/out/StdStorage.sol/stdStorage.json deleted file mode 100644 index df9adee..0000000 --- a/evm/out/StdStorage.sol/stdStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212205ede095044a93b1e899ed03e4d98bffd1df99c8e6fb0c71a9985e940ad68035464736f6c634300081b0033","sourceMap":"12760:5081:8:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212205ede095044a93b1e899ed03e4d98bffd1df99c8e6fb0c71a9985e940ad68035464736f6c634300081b0033","sourceMap":"12760:5081:8:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":8} \ No newline at end of file diff --git a/evm/out/StdStorage.sol/stdStorageSafe.json b/evm/out/StdStorage.sol/stdStorageSafe.json deleted file mode 100644 index 4121e93..0000000 --- a/evm/out/StdStorage.sol/stdStorageSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122095b46f6efaf74242a326e5017d20fb1effa14fa92106d5e333fece8ac5983e7d64736f6c634300081b0033","sourceMap":"450:12308:8:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122095b46f6efaf74242a326e5017d20fb1effa14fa92106d5e333fece8ac5983e7d64736f6c634300081b0033","sourceMap":"450:12308:8:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":8} \ No newline at end of file diff --git a/evm/out/StdStyle.sol/StdStyle.json b/evm/out/StdStyle.sol/StdStyle.json deleted file mode 100644 index c5000e0..0000000 --- a/evm/out/StdStyle.sol/StdStyle.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122017d7980f6f172b9f9a96804b16d0a7da1ce17ce6b505628afd778c8ff27dd66064736f6c634300081b0033","sourceMap":"100:10361:9:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122017d7980f6f172b9f9a96804b16d0a7da1ce17ce6b505628afd778c8ff27dd66064736f6c634300081b0033","sourceMap":"100:10361:9:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/evm/out/StdToml.sol/stdToml.json b/evm/out/StdToml.sol/stdToml.json deleted file mode 100644 index e26fe4c..0000000 --- a/evm/out/StdToml.sol/stdToml.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220f0dc1b69802a8c8d43dc4e837bfd54b2b4e35b5d2db2e12f90dbd9c38b5f964e64736f6c634300081b0033","sourceMap":"610:5612:10:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220f0dc1b69802a8c8d43dc4e837bfd54b2b4e35b5d2db2e12f90dbd9c38b5f964e64736f6c634300081b0033","sourceMap":"610:5612:10:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":10} \ No newline at end of file diff --git a/evm/out/StdUtils.sol/StdUtils.json b/evm/out/StdUtils.sol/StdUtils.json deleted file mode 100644 index cccafc7..0000000 --- a/evm/out/StdUtils.sol/StdUtils.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file diff --git a/evm/out/TemplateSwapAdapter.sol/TemplateSwapAdapter.json b/evm/out/TemplateSwapAdapter.sol/TemplateSwapAdapter.json deleted file mode 100644 index 95da402..0000000 --- a/evm/out/TemplateSwapAdapter.sol/TemplateSwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getCapabilities","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[{"name":"_poolId","type":"bytes32","internalType":"bytes32"},{"name":"_sellToken","type":"address","internalType":"address"},{"name":"_buyToken","type":"address","internalType":"address"},{"name":"_specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"_prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234601557610431908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146103415750806348bd7dfd146102de5780638307c65514610219578063a9270fbe146101c2578063aad6e488146100b95763ecbbc0331461005e575f80fd5b346100b55760203660031901126100b557604051631d04569d60e21b815260206004820152601d60248201527f54656d706c61746553776170416461707465722e676574546f6b656e730000006044820152606490fd5b5f80fd5b346100b55760803660031901126100b5576100d2610395565b506100db6103ab565b5060643567ffffffffffffffff81116100b557366023820112156100b55780600401359067ffffffffffffffff82116101ae578160051b91604051601f19603f85011681019080821067ffffffffffffffff8311176101ae5760249260209260405281520192820101903682116100b557602401915b81831061019e57604051631d04569d60e21b815260206004820152601960248201527f54656d706c61746553776170416461707465722e7072696365000000000000006044820152606490fd5b8235815260209283019201610151565b634e487b7160e01b5f52604160045260245ffd5b346100b5576101d0366103c1565b5050604051631d04569d60e21b815260206004820152601d60248201527f54656d706c61746553776170416461707465722e6765744c696d697473000000604482015260649150fd5b346100b55760a03660031901126100b557610232610395565b5061023b6103ab565b50600260643510156100b5576040516060810181811067ffffffffffffffff8211176101ae576040525f81525f602082015260405190604082019082821067ffffffffffffffff8311176101ae5760409182525f83525f602084015201526064604051631d04569d60e21b815260206004820152601860248201527f54656d706c61746553776170416461707465722e7377617000000000000000006044820152fd5b346100b5576102ec366103c1565b5050604051631d04569d60e21b815260206004820152602360248201527f54656d706c61746553776170416461707465722e6765744361706162696c697460448201526269657360e81b606482015260849150fd5b346100b55760403660031901126100b557631d04569d60e21b815260206004820152601e60248201527f54656d706c61746553776170416461707465722e676574506f6f6c49647300006044820152606490fd5b602435906001600160a01b03821682036100b557565b604435906001600160a01b03821682036100b557565b60609060031901126100b557600435906024356001600160a01b03811681036100b557906044356001600160a01b03811681036100b5579056fea26469706673582212206492349fa976084ab1406cd4e54307415f37767e6ab8298dd7f59cbce6fd7c3c64736f6c634300081b0033","sourceMap":"309:1407:63:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146103415750806348bd7dfd146102de5780638307c65514610219578063a9270fbe146101c2578063aad6e488146100b95763ecbbc0331461005e575f80fd5b346100b55760203660031901126100b557604051631d04569d60e21b815260206004820152601d60248201527f54656d706c61746553776170416461707465722e676574546f6b656e730000006044820152606490fd5b5f80fd5b346100b55760803660031901126100b5576100d2610395565b506100db6103ab565b5060643567ffffffffffffffff81116100b557366023820112156100b55780600401359067ffffffffffffffff82116101ae578160051b91604051601f19603f85011681019080821067ffffffffffffffff8311176101ae5760249260209260405281520192820101903682116100b557602401915b81831061019e57604051631d04569d60e21b815260206004820152601960248201527f54656d706c61746553776170416461707465722e7072696365000000000000006044820152606490fd5b8235815260209283019201610151565b634e487b7160e01b5f52604160045260245ffd5b346100b5576101d0366103c1565b5050604051631d04569d60e21b815260206004820152601d60248201527f54656d706c61746553776170416461707465722e6765744c696d697473000000604482015260649150fd5b346100b55760a03660031901126100b557610232610395565b5061023b6103ab565b50600260643510156100b5576040516060810181811067ffffffffffffffff8211176101ae576040525f81525f602082015260405190604082019082821067ffffffffffffffff8311176101ae5760409182525f83525f602084015201526064604051631d04569d60e21b815260206004820152601860248201527f54656d706c61746553776170416461707465722e7377617000000000000000006044820152fd5b346100b5576102ec366103c1565b5050604051631d04569d60e21b815260206004820152602360248201527f54656d706c61746553776170416461707465722e6765744361706162696c697460448201526269657360e81b606482015260849150fd5b346100b55760403660031901126100b557631d04569d60e21b815260206004820152601e60248201527f54656d706c61746553776170416461707465722e676574506f6f6c49647300006044820152606490fd5b602435906001600160a01b03821682036100b557565b604435906001600160a01b03821682036100b557565b60609060031901126100b557600435906024356001600160a01b03811681036100b557906044356001600160a01b03811681036100b5579056fea26469706673582212206492349fa976084ab1406cd4e54307415f37767e6ab8298dd7f59cbce6fd7c3c64736f6c634300081b0033","sourceMap":"309:1407:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;1659:48;;309:1407;1659:48;;;1290:53;309:1407;1290:53;;;309:1407;;;;;1053:47;309:1407;1053:47;;;309:1407;;;;;;;;;;;;;-1:-1:-1;;309:1407:63;;;;;;-1:-1:-1;;;1471:47:63;;309:1407;;1471:47;;309:1407;;;;;;;;;;;1471:47;;;309:1407;;;;;;;;;;-1:-1:-1;;309:1407:63;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;581:43:63;;309:1407;;581:43;;309:1407;;;;;;;;;;;;;581:43;309:1407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;309:1407:63;;-1:-1:-1;;;1053:47:63;;309:1407;;1053:47;;309:1407;;;;;;;;;;;1053:47;;-1:-1:-1;1053:47:63;309:1407;;;;;;-1:-1:-1;;309:1407:63;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:48;;;846:42;;309:1407;;846:42;;309:1407;;;;;;;;;;;846:42;309:1407;;;;;;;:::i;:::-;-1:-1:-1;;309:1407:63;;-1:-1:-1;;;1290:53:63;;309:1407;;1290:53;;309:1407;;;;;;;;;;;-1:-1:-1;;;309:1407:63;;;;1290:53;;-1:-1:-1;1290:53:63;309:1407;;;;;;-1:-1:-1;;309:1407:63;;;;-1:-1:-1;;;1659:48:63;;309:1407;;1659:48;;309:1407;;;;;;;;;;;1659:48;;;309:1407;;;;-1:-1:-1;;;;;309:1407:63;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;309:1407:63;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;309:1407:63;;;;;;;;;-1:-1:-1;;;;;309:1407:63;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"_prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is a template for a swap adapter. Rename it to your own protocol's name and implement it according to the specification.\",\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"title\":\"TemplateSwapAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/template/TemplateSwapAdapter.sol\":\"TemplateSwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/template/TemplateSwapAdapter.sol\":{\"keccak256\":\"0x5699a22a67f35bad1c6a5267c7f0a356581777003e4032c77e313e8f9c668cf8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://0342fe5c738b51e8516b2286eebbea352cfee22f63bbabdbaad1ee04364c8a42\",\"dweb:/ipfs/QmcT9LDyeuf1XxP5g6ebZCQzqMYCdhhquoGzKxMvKFyeFz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"_poolId","type":"bytes32"},{"internalType":"address","name":"_sellToken","type":"address"},{"internalType":"address","name":"_buyToken","type":"address"},{"internalType":"uint256[]","name":"_specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"_prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/template/TemplateSwapAdapter.sol":"TemplateSwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/template/TemplateSwapAdapter.sol":{"keccak256":"0x5699a22a67f35bad1c6a5267c7f0a356581777003e4032c77e313e8f9c668cf8","urls":["bzz-raw://0342fe5c738b51e8516b2286eebbea352cfee22f63bbabdbaad1ee04364c8a42","dweb:/ipfs/QmcT9LDyeuf1XxP5g6ebZCQzqMYCdhhquoGzKxMvKFyeFz"],"license":"AGPL-3.0-or-later"}},"version":1},"id":63} \ No newline at end of file diff --git a/evm/out/TemplateSwapAdapter.t.sol/TemplateSwapAdapterTest.json b/evm/out/TemplateSwapAdapter.t.sol/TemplateSwapAdapterTest.json deleted file mode 100644 index 597cc15..0000000 --- a/evm/out/TemplateSwapAdapter.t.sol/TemplateSwapAdapterTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testPriceFuzz","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzz","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601e541617601e55610ee690816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081631ed7831c14610bb1575080632ade3880146109445780633e5e3c23146108c75780633f7286f41461084a57806366d9a9a01461069a57806385226c811461057257806388e54b881461055f578063916a17c6146102d1578063a502846b146102be578063b5508aa914610182578063ba414fa61461015e578063e20c9f71146100d15763fa7626d4146100ab575f80fd5b346100cd575f3660031901126100cd57602060ff601e54166040519015158152f35b5f80fd5b346100cd575f3660031901126100cd5760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b81811061013f5761013b8561012f81870382610dc2565b60405191829182610c2a565b0390f35b82546001600160a01b0316845260209093019260019283019201610118565b346100cd575f3660031901126100cd576020610178610dfc565b6040519015158152f35b346100cd575f3660031901126100cd5760195461019e81610de4565b6101ab6040519182610dc2565b81815260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96959290602083015b8282106101f1576040518061013b8682610d1b565b6040515f86548060011c906001811680156102b4575b6020831081146102a05782855290811561027d5750600114610246575b506001928261023885946020940382610dc2565b8152019501910190936101dc565b5f888152602081209092505b81831061026757505081016020016001610224565b6001816020925483868801015201920191610252565b60ff191660208581019190915291151560051b8401909101915060019050610224565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610207565b346100cd5760403660031901126100cd57005b346100cd575f3660031901126100cd57601c546102ed81610de4565b6102fa6040519182610dc2565b8181526020810191601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211925f905b828210610340576040518061013b8682610c6c565b60405161034c81610d92565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106104c057846001979460029794602097946103d89454918181106104a4575b818110610488575b81811061046c575b818110610450575b818110610434575b818110610418575b8181106103fe575b106103ea575b500382610dc2565b8382015281520195019101909361032b565b6001600160e01b031916815286018d6103d0565b828a1b6001600160e01b0319168452928901928b016103ca565b604083901b6001600160e01b0319168452928901928b016103c2565b606083901b6001600160e01b0319168452928901928b016103ba565b608083901b6001600160e01b0319168452928901928b016103b2565b60a083901b6001600160e01b0319168452928901928b016103aa565b60c083901b6001600160e01b0319168452928901928b016103a2565b60e083901b6001600160e01b0319168452928901928b0161039a565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191610375565b346100cd5760203660031901126100cd57005b346100cd575f3660031901126100cd57601a5461058e81610de4565b61059b6040519182610dc2565b818152601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9290602083015b8282106105e1576040518061013b8682610d1b565b6040515f86548060011c90600181168015610690575b6020831081146102a05782855290811561066d5750600114610636575b506001928261062885946020940382610dc2565b8152019501910190936105cc565b5f888152602081209092505b81831061065757505081016020016001610614565b6001816020925483868801015201920191610642565b60ff191660208581019190915291151560051b8401909101915060019050610614565b91607f16916105f7565b346100cd575f3660031901126100cd57601b546106b681610de4565b6106c36040519182610dc2565b8181526020810191601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1925f905b828210610709576040518061013b8682610c6c565b60405161071581610d92565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106107ab57846001979460029794602097946107999454918181106104a4578181106104885781811061046c578181106104505781811061043457818110610418578181106103fe57106103ea57500382610dc2565b838201528152019501910190936106f4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019161073e565b346100cd575f3660031901126100cd5760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b8181106108a85761013b8561012f81870382610dc2565b82546001600160a01b0316845260209093019260019283019201610891565b346100cd575f3660031901126100cd5760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b8181106109255761013b8561012f81870382610dc2565b82546001600160a01b031684526020909301926001928301920161090e565b346100cd575f3660031901126100cd57601d5461096081610de4565b9061096e6040519283610dc2565b808252602082018091601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f925b828410610a8a57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b8282106109dd57505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b8501019401925f5b828110610a4857505050505060208060019296019201920185949391926109ce565b909192939460208080600193605f19878203018952818a518051918291828552018484015e5f828201840152601f01601f191601019701950193929101610a26565b604051610a9681610d92565b82546001600160a01b0316815260018301805490610ab382610de4565b91610ac16040519384610dc2565b80835260208301915f5260205f205f925b828410610af857505050506001928260209283600295015281520192019301929061099f565b6040515f83548060011c90600181168015610ba7575b6020831081146102a057828552908115610b845750600114610b4d575b5060019282610b3f85946020940382610dc2565b815201920193019290610ad2565b5f858152602081209092505b818310610b6e57505081016020016001610b2b565b6001816020925483868801015201920191610b59565b60ff191660208581019190915291151560051b8401909101915060019050610b2b565b91607f1691610b0e565b346100cd575f3660031901126100cd57601654808252602082019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110610c0b5761013b8561012f81870382610dc2565b82546001600160a01b0316845260209093019260019283019201610bf4565b60206040818301928281528451809452019201905f5b818110610c4d5750505090565b82516001600160a01b0316845260209384019390920191600101610c40565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610c9e57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210610cf85750505060208060019297019301930191939290610c8f565b82516001600160e01b031916845260209384019390920191600190910190610cd9565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610d4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610d3e565b6040810190811067ffffffffffffffff821117610dae57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610dae57604052565b67ffffffffffffffff8111610dae5760051b60200190565b60085460ff168015610e0b5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610ea5575f91610e73575b50151590565b90506020813d602011610e9d575b81610e8e60209383610dc2565b810103126100cd57515f610e6d565b3d9150610e81565b6040513d5f823e3d90fdfea2646970667358221220405aace49e27afe98eb19c3630872a82ef9a4ab7fd589950f6a3f85cf4d2b49f64736f6c634300081b0033","sourceMap":"492:234:76:-:0;;;;;;;3166:4:2;492:234:76;;3166:4:2;492:234:76;;;3166:4:2;492:234:76;3166:4:2;492:234:76;;1038:4:12;492:234:76;;;1038:4:12;492:234:76;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081631ed7831c14610bb1575080632ade3880146109445780633e5e3c23146108c75780633f7286f41461084a57806366d9a9a01461069a57806385226c811461057257806388e54b881461055f578063916a17c6146102d1578063a502846b146102be578063b5508aa914610182578063ba414fa61461015e578063e20c9f71146100d15763fa7626d4146100ab575f80fd5b346100cd575f3660031901126100cd57602060ff601e54166040519015158152f35b5f80fd5b346100cd575f3660031901126100cd5760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b81811061013f5761013b8561012f81870382610dc2565b60405191829182610c2a565b0390f35b82546001600160a01b0316845260209093019260019283019201610118565b346100cd575f3660031901126100cd576020610178610dfc565b6040519015158152f35b346100cd575f3660031901126100cd5760195461019e81610de4565b6101ab6040519182610dc2565b81815260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96959290602083015b8282106101f1576040518061013b8682610d1b565b6040515f86548060011c906001811680156102b4575b6020831081146102a05782855290811561027d5750600114610246575b506001928261023885946020940382610dc2565b8152019501910190936101dc565b5f888152602081209092505b81831061026757505081016020016001610224565b6001816020925483868801015201920191610252565b60ff191660208581019190915291151560051b8401909101915060019050610224565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610207565b346100cd5760403660031901126100cd57005b346100cd575f3660031901126100cd57601c546102ed81610de4565b6102fa6040519182610dc2565b8181526020810191601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211925f905b828210610340576040518061013b8682610c6c565b60405161034c81610d92565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106104c057846001979460029794602097946103d89454918181106104a4575b818110610488575b81811061046c575b818110610450575b818110610434575b818110610418575b8181106103fe575b106103ea575b500382610dc2565b8382015281520195019101909361032b565b6001600160e01b031916815286018d6103d0565b828a1b6001600160e01b0319168452928901928b016103ca565b604083901b6001600160e01b0319168452928901928b016103c2565b606083901b6001600160e01b0319168452928901928b016103ba565b608083901b6001600160e01b0319168452928901928b016103b2565b60a083901b6001600160e01b0319168452928901928b016103aa565b60c083901b6001600160e01b0319168452928901928b016103a2565b60e083901b6001600160e01b0319168452928901928b0161039a565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191610375565b346100cd5760203660031901126100cd57005b346100cd575f3660031901126100cd57601a5461058e81610de4565b61059b6040519182610dc2565b818152601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9290602083015b8282106105e1576040518061013b8682610d1b565b6040515f86548060011c90600181168015610690575b6020831081146102a05782855290811561066d5750600114610636575b506001928261062885946020940382610dc2565b8152019501910190936105cc565b5f888152602081209092505b81831061065757505081016020016001610614565b6001816020925483868801015201920191610642565b60ff191660208581019190915291151560051b8401909101915060019050610614565b91607f16916105f7565b346100cd575f3660031901126100cd57601b546106b681610de4565b6106c36040519182610dc2565b8181526020810191601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1925f905b828210610709576040518061013b8682610c6c565b60405161071581610d92565b85546001600160a01b031681526040516001870180548083525f91825260208083209084019291905b8160078401106107ab57846001979460029794602097946107999454918181106104a4578181106104885781811061046c578181106104505781811061043457818110610418578181106103fe57106103ea57500382610dc2565b838201528152019501910190936106f4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019161073e565b346100cd575f3660031901126100cd5760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b8181106108a85761013b8561012f81870382610dc2565b82546001600160a01b0316845260209093019260019283019201610891565b346100cd575f3660031901126100cd5760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b8181106109255761013b8561012f81870382610dc2565b82546001600160a01b031684526020909301926001928301920161090e565b346100cd575f3660031901126100cd57601d5461096081610de4565b9061096e6040519283610dc2565b808252602082018091601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f925b828410610a8a57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b8282106109dd57505050500390f35b919390929450603f198682030182528451906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b8501019401925f5b828110610a4857505050505060208060019296019201920185949391926109ce565b909192939460208080600193605f19878203018952818a518051918291828552018484015e5f828201840152601f01601f191601019701950193929101610a26565b604051610a9681610d92565b82546001600160a01b0316815260018301805490610ab382610de4565b91610ac16040519384610dc2565b80835260208301915f5260205f205f925b828410610af857505050506001928260209283600295015281520192019301929061099f565b6040515f83548060011c90600181168015610ba7575b6020831081146102a057828552908115610b845750600114610b4d575b5060019282610b3f85946020940382610dc2565b815201920193019290610ad2565b5f858152602081209092505b818310610b6e57505081016020016001610b2b565b6001816020925483868801015201920191610b59565b60ff191660208581019190915291151560051b8401909101915060019050610b2b565b91607f1691610b0e565b346100cd575f3660031901126100cd57601654808252602082019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110610c0b5761013b8561012f81870382610dc2565b82546001600160a01b0316845260209093019260019283019201610bf4565b60206040818301928281528451809452019201905f5b818110610c4d5750505090565b82516001600160a01b0316845260209384019390920191600101610c40565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610c9e57505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b808210610cf85750505060208060019297019301930191939290610c8f565b82516001600160e01b031916845260209384019390920191600190910190610cd9565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610d4d57505050505090565b909192939460208080600193603f19868203018752818a518051918291828552018484015e5f828201840152601f01601f191601019701959491909101920190610d3e565b6040810190811067ffffffffffffffff821117610dae57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610dae57604052565b67ffffffffffffffff8111610dae5760051b60200190565b60085460ff168015610e0b5790565b50604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201526519985a5b195960d21b6024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610ea5575f91610e73575b50151590565b90506020813d602011610e9d575b81610e8e60209383610dc2565b810103126100cd57515f610e6d565b3d9150610e81565b6040513d5f823e3d90fdfea2646970667358221220405aace49e27afe98eb19c3630872a82ef9a4ab7fd589950f6a3f85cf4d2b49f64736f6c634300081b0033","sourceMap":"492:234:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;1016:26:12;492:234:76;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;2421:18:5;492:234:76;;;;;;;2421:18:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;2273:18:5;492:234:76;;;;:::i;:::-;;;;;;;:::i;:::-;;;;2273:18:5;492:234:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;-1:-1:-1;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;3190:18:5;492:234:76;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3190:18:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;2707:18:5;492:234:76;;;;:::i;:::-;;;;;;;:::i;:::-;;;;2707:18:5;492:234:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;-1:-1:-1;492:234:76;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;2883:26:5;492:234:76;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2883:26:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;3038:18:5;492:234:76;;;;;;;3038:18:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;3331:16:5;492:234:76;;;;;;;3331:16:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;3485:19:5;492:234:76;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;3485:19:5;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;-1:-1:-1;492:234:76;;-1:-1:-1;492:234:76;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;2563:16:5;492:234:76;;;;;;;;2563:16:5;492:234:76;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;492:234:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;492:234:76;;;;;-1:-1:-1;492:234:76;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;1243:204:1:-;1302:7;492:234:76;;;;;;;1325:14:1;:::o;1298:143::-;492:234:76;;;;;;1377:39:1;;492:234:76;1377:39:1;;;492:234:76;192:59:1;;;;;;;;1377:39;;;492:234:76;1377:39:1;;;;;;;492:234:76;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;192:59;1377:39;;;:::i;:::-;;;192:59;;;;;1377:39;;;;;;-1:-1:-1;1377:39:1;;;492:234:76;;192:59:1;492:234:76;192:59:1;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testPriceFuzz(uint256,uint256)":"a502846b","testSwapFuzz(uint256)":"88e54b88"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"testSwapFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is a template for a swap adapter test. Test all functions that are implemented in your swap adapter, the two test included here are just an example. Feel free to use UniswapV2SwapAdapterTest and BalancerV2SwapAdapterTest as a reference.\",\"errors\":{\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"TemplateSwapAdapterTest\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TemplateSwapAdapter.t.sol\":\"TemplateSwapAdapterTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"test/TemplateSwapAdapter.t.sol\":{\"keccak256\":\"0x5b09f18c00a8a56e7eeb6d522151beca7e0e555442d4b65eae7cd186d66eb96f\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c7e8f0432a45e4a8afdb56cde16b9ce0bedc95c3cc5ab855d5d39981405b1e2b\",\"dweb:/ipfs/QmSXmVd7yv6nTgyGR24KQz8KwaAxFQdQPG3GcL6cUKH7ND\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzz"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzz"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/TemplateSwapAdapter.t.sol":"TemplateSwapAdapterTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"test/TemplateSwapAdapter.t.sol":{"keccak256":"0x5b09f18c00a8a56e7eeb6d522151beca7e0e555442d4b65eae7cd186d66eb96f","urls":["bzz-raw://c7e8f0432a45e4a8afdb56cde16b9ce0bedc95c3cc5ab855d5d39981405b1e2b","dweb:/ipfs/QmSXmVd7yv6nTgyGR24KQz8KwaAxFQdQPG3GcL6cUKH7ND"],"license":"AGPL-3.0-or-later"}},"version":1},"id":76} \ No newline at end of file diff --git a/evm/out/Test.sol/Test.json b/evm/out/Test.sol/Test.json deleted file mode 100644 index 5b0cd0f..0000000 --- a/evm/out/Test.sol/Test.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Factory.json b/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Factory.json deleted file mode 100644 index c082231..0000000 --- a/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allPairs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allPairsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"createPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeTo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeToSetter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setFeeTo","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeToSetter","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PairCreated","inputs":[{"name":"token0","type":"address","indexed":true,"internalType":"address"},{"name":"token1","type":"address","indexed":true,"internalType":"address"},{"name":"pair","type":"address","indexed":false,"internalType":"address"},{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allPairs(uint256)":"1e3dd18b","allPairsLength()":"574f2ba3","createPair(address,address)":"c9c65396","feeTo()":"017e7e58","feeToSetter()":"094b7415","getPair(address,address)":"e6a43905","setFeeTo(address)":"f46901ed","setFeeToSetter(address)":"a2e74af6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":{\"keccak256\":\"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853\",\"dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token0","type":"address","indexed":true},{"internalType":"address","name":"token1","type":"address","indexed":true},{"internalType":"address","name":"pair","type":"address","indexed":false},{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"PairCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"allPairs","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeToSetter"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/uniswap-v2/UniswapV2SwapAdapter.sol":"IUniswapV2Factory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/uniswap-v2/UniswapV2SwapAdapter.sol":{"keccak256":"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5","urls":["bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853","dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs"],"license":"AGPL-3.0-or-later"}},"version":1},"id":64} \ No newline at end of file diff --git a/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Pair.json b/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Pair.json deleted file mode 100644 index 75cfac4..0000000 --- a/evm/out/UniswapV2SwapAdapter.sol/IUniswapV2Pair.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MINIMUM_LIQUIDITY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"},{"name":"blockTimestampLast","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"price0CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price1CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"skim","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"sync","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1In","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount0Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1Out","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Sync","inputs":[{"name":"reserve0","type":"uint112","indexed":false,"internalType":"uint112"},{"name":"reserve1","type":"uint112","indexed":false,"internalType":"uint112"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","MINIMUM_LIQUIDITY()":"ba9a7a56","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address)":"89afcb44","decimals()":"313ce567","factory()":"c45a0155","getReserves()":"0902f1ac","initialize(address,address)":"485cc955","kLast()":"7464fc3d","mint(address)":"6a627842","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","skim(address)":"bc25cf77","swap(uint256,uint256,address,bytes)":"022c0d9f","symbol()":"95d89b41","sync()":"fff6cae9","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":{\"keccak256\":\"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853\",\"dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1In","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount0Out","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1Out","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"uint112","name":"reserve0","type":"uint112","indexed":false},{"internalType":"uint112","name":"reserve1","type":"uint112","indexed":false}],"type":"event","name":"Sync","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"skim"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sync"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/uniswap-v2/UniswapV2SwapAdapter.sol":"IUniswapV2Pair"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/uniswap-v2/UniswapV2SwapAdapter.sol":{"keccak256":"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5","urls":["bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853","dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs"],"license":"AGPL-3.0-or-later"}},"version":1},"id":64} \ No newline at end of file diff --git a/evm/out/UniswapV2SwapAdapter.sol/UniswapV2SwapAdapter.json b/evm/out/UniswapV2SwapAdapter.sol/UniswapV2SwapAdapter.json deleted file mode 100644 index b35c747..0000000 --- a/evm/out/UniswapV2SwapAdapter.sol/UniswapV2SwapAdapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getTokens","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"specifiedAmounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"prices","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a034606857601f61124a38819003918201601f19168301916001600160401b03831184841017606c57808492602094604052833981010312606857516001600160a01b038116908190036068576080526040516111c990816100818239608051816106930152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461066457806348bd7dfd1461058d5780638307c65514610527578063a9270fbe146103fe578063aad6e488146101ae5763ecbbc0331461005b575f80fd5b346101aa5760203660031901126101aa5760405161007a60608261090d565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610182576004926020925f9161018d575b506100c186610994565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610182575f91610153575b506100fc8392936109a1565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610131575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610123565b610175915060203d60201161017b575b61016d818361090d565b810190610975565b5f6100f0565b503d610163565b6040513d5f823e3d90fd5b6101a49150833d851161017b5761016d818361090d565b5f6100b7565b5f80fd5b346101aa5760803660031901126101aa576101c7610877565b6101cf61088d565b6064359067ffffffffffffffff82116101aa57366023830112156101aa578160040135916101fc8361092f565b9261020a604051948561090d565b8084526024602085019160051b830101913683116101aa57602401905b8282106103ee5750505081519261023d8461092f565b9361024b604051958661090d565b80855261025a601f199161092f565b015f5b8181106103cb57506004926060928435841c92506001600160a01b039182169116101561037f57604051630240bc6b60e21b815292839182905afa8015610182575f915f9161034d575b505b5f5b83518110156102fc57806102e06102c4600193876109b1565b516001600160701b038516906001600160701b03871690610e3b565b6102ea82886109b1565b526102f581876109b1565b50016102ab565b846040518091602082016020835281518091526020604084019201905f5b818110610328575050500390f35b825180518552602090810151818601528695506040909401939092019160010161031a565b9050610371915060603d606011610378575b610369818361090d565b8101906109f1565b50846102a7565b503d61035f565b604051630240bc6b60e21b815292839182905afa8015610182575f915f916103a9575b50906102a9565b90506103c4915060603d60601161037857610369818361090d565b50846103a2565b6020906040516103da816108dd565b5f81525f838201528282890101520161025d565b8135815260209182019101610227565b346101aa57600461040e366108a3565b6040519391606090610420828761090d565b60028652816020870195601f198201368837604051630240bc6b60e21b81529586918290841c5afa91821561018257600a945f915f946104fa575b50506001600160701b03928316939216916001600160a01b03908116911610156104db5782900461048b85610994565b5204610496836109a1565b52905b604051918291602083019060208452518091526040830191905f5b8181106104c2575050500390f35b82518452859450602093840193909201916001016104b4565b908290046104e885610994565b52046104f3836109a1565b5290610499565b6001600160701b039450849250908161051e92903d1061037857610369818361090d565b5093909161045b565b346101aa5760a03660031901126101aa57610540610877565b61054861088d565b6064359160028310156101aa576080926105689260843592600435610a27565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101aa5761059b366108a3565b5050506040516105ac60a08261090d565b6004815260208101608036823760016105c483610994565b5260026105d0836109a1565b5281516002101561065057600360608301528151600310156106505760096080830152604051906020820192602083525180935260408201905f935b8085106106195783830384f35b9091825190600a82101561063c576020816001938293520193019401939061060c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101aa5760403660031901126101aa5760043561068460243582610947565b60405163574f2ba360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929190602081600481875afa80156101825783915f91610842575b5082116107de575b6106e791610968565b6107096106f38261092f565b91610701604051938461090d565b80835261092f565b602082019290601f19013684375f5b825181101561079a5761072b8183610947565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610182576001925f9161077c575b5060601b6bffffffffffffffffffffffff191661077582866109b1565b5201610718565b610794915060203d811161017b5761016d818361090d565b87610758565b8383604051918291602083019060208452518091526040830191905f5b8181106107c5575050500390f35b82518452859450602093840193909201916001016107b7565b505060405163574f2ba360e01b8152602081600481865afa80156101825782905f9061080c575b91506106de565b50506020813d60201161083a575b816108276020938361090d565b810103126101aa57816106e79151610805565b3d915061081a565b9150506020813d60201161086f575b8161085e6020938361090d565b810103126101aa57829051856106d6565b3d9150610851565b602435906001600160a01b03821682036101aa57565b604435906001600160a01b03821682036101aa57565b60609060031901126101aa57600435906024356001600160a01b03811681036101aa57906044356001600160a01b03811681036101aa5790565b6040810190811067ffffffffffffffff8211176108f957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b67ffffffffffffffff81116108f95760051b60200190565b9190820180921161095457565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161095457565b908160209103126101aa57516001600160a01b03811681036101aa5790565b8051156106505760200190565b8051600110156106505760400190565b80518210156106505760209160051b010190565b604051906109d2826108dd565b5f6020838281520152565b51906001600160701b03821682036101aa57565b908160609103126101aa57610a05816109dd565b916040610a14602084016109dd565b92015163ffffffff811681036101aa5790565b9493905f604051966060880188811067ffffffffffffffff8211176108f9576040525f88525f6020890152604051610a5e816108dd565b5f81525f60208201526040890152878415610cda575060601c946001600160a01b03948516948316948510948515610c8557604051630240bc6b60e21b815296606088600481845afa8015610182575f985f91610c5f575b5097965b5a93600281101561063c57898989921598895f14610c445750509083610af66001600160701b03610afe94166001600160701b038d16846110d6565b953390610fe6565b15610bd057803b15610bcc5760405163022c0d9f60e01b81525f6004820181905260248201849052336044830152608060648301526084820152908490829060a490829084905af18015610bc157908491610ba8575b505090610b66915b89525b5a90610968565b60208801525015610b8e576001600160701b0380610b879416921690610e3b565b6040830152565b50610b87916001600160701b038086519216921690610e3b565b81610bb29161090d565b610bbd57825f610b54565b8280fd5b6040513d86823e3d90fd5b8380fd5b80939291933b156101aa5760405163022c0d9f60e01b8152600481018590525f6024820181905233604483015260806064830152608482018190529091829060a490829084905af1801561018257610c2e575b50610b669192610b5c565b610b6692505f610c3d9161090d565b5f91610c23565b610b66979650610c58959491929394610d02565b8952610b5f565b9050610c7b91985060603d60601161037857610369818361090d565b509790975f610ab6565b604051630240bc6b60e21b81529596606087600481845afa8015610182575f975f91610cb4575b509697610aba565b9050610cd091975060603d60601161037857610369818361090d565b509690965f610cac565b9750505050505050565b8115610cee570490565b634e487b7160e01b5f52601260045260245ffd5b94919092610d1e906001600160701b03805f9716911684610f01565b948515610e1e576001600160a01b0390811693610d419187918691339116610fe6565b15610dbd57813b15610bbd5760405163022c0d9f60e01b81525f600482018190526024820192909252336044820152608060648201526084810191909152908290829060a490829084905af18015610db257610d9c57505090565b610da782809261090d565b610daf575090565b80fd5b6040513d84823e3d90fd5b9150803b156101aa5760405163022c0d9f60e01b815260048101929092525f60248301819052336044840152608060648401526084830181905290829060a490829084905af1801561018257610e11575090565b5f610e1b9161090d565b90565b5050505050505f90565b8181029291811591840414171561095457565b919091610e466109c5565b5082158015610ef9575b610eb357610e6c82610e66610e729486856110d6565b90610968565b92610947565b6103e58202918083046103e51490151715610954576103e88102908082046103e814901517156109545760405191610ea9836108dd565b8252602082015290565b60405163643c60f360e01b815260206004820152601d60248201527f4174206c65617374206f6e652072657365727665206973207a65726f210000006044820152606490fd5b508115610e50565b91908215610fdf578015610fa5578115610f6a5782610f1f91610e28565b916103e88302928084046103e8149015171561095457610f3e91610968565b6103e58102908082046103e5149015171561095457610f5c91610ce4565b600181018091116109545790565b60405163643c60f360e01b8152602060048201526012602482015271726573657276654f7574206973207a65726f60701b6044820152606490fd5b60405163643c60f360e01b815260206004820152601160248201527072657365727665496e206973207a65726f60781b6044820152606490fd5b5050505f90565b6040516323b872dd60e01b602082019081526001600160a01b039384166024830152939092166044830152606480830194909452928152915f91829161102d60848661090d565b60018060a01b031693519082855af13d156110ca573d67ffffffffffffffff81116108f95761107e916040519161106e6020601f19601f840116018461090d565b82523d5f602084013e5b83611135565b80519081151591826110a6575b50506110945750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101aa57602001518015908115036101aa575f8061108b565b61107e90606090611078565b91908215610fdf5780159182801561112d575b610eb3576103e584029384046103e503610954576111079084610e28565b916103e882029182046103e814171561095457610e1b9261112791610947565b90610ce4565b5080156110e9565b90611159575080511561114a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061118a575b61116a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561116256fea2646970667358221220b2e7f8fbccc13285e349f8b239b13d9153a3383fc98985279c83c306cd63f78464736f6c634300081b0033","sourceMap":"371:8928:64:-:0;;;;;;;;;;;;;-1:-1:-1;;371:8928:64;;;;-1:-1:-1;;;;;371:8928:64;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;;;;538:37;;371:8928;;;;;;;;538:37;371:8928;;;;;;;-1:-1:-1;371:8928:64;;;;;;-1:-1:-1;371:8928:64;;;;;-1:-1:-1;371:8928:64","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461066457806348bd7dfd1461058d5780638307c65514610527578063a9270fbe146103fe578063aad6e488146101ae5763ecbbc0331461005b575f80fd5b346101aa5760203660031901126101aa5760405161007a60608261090d565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610182576004926020925f9161018d575b506100c186610994565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610182575f91610153575b506100fc8392936109a1565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610131575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610123565b610175915060203d60201161017b575b61016d818361090d565b810190610975565b5f6100f0565b503d610163565b6040513d5f823e3d90fd5b6101a49150833d851161017b5761016d818361090d565b5f6100b7565b5f80fd5b346101aa5760803660031901126101aa576101c7610877565b6101cf61088d565b6064359067ffffffffffffffff82116101aa57366023830112156101aa578160040135916101fc8361092f565b9261020a604051948561090d565b8084526024602085019160051b830101913683116101aa57602401905b8282106103ee5750505081519261023d8461092f565b9361024b604051958661090d565b80855261025a601f199161092f565b015f5b8181106103cb57506004926060928435841c92506001600160a01b039182169116101561037f57604051630240bc6b60e21b815292839182905afa8015610182575f915f9161034d575b505b5f5b83518110156102fc57806102e06102c4600193876109b1565b516001600160701b038516906001600160701b03871690610e3b565b6102ea82886109b1565b526102f581876109b1565b50016102ab565b846040518091602082016020835281518091526020604084019201905f5b818110610328575050500390f35b825180518552602090810151818601528695506040909401939092019160010161031a565b9050610371915060603d606011610378575b610369818361090d565b8101906109f1565b50846102a7565b503d61035f565b604051630240bc6b60e21b815292839182905afa8015610182575f915f916103a9575b50906102a9565b90506103c4915060603d60601161037857610369818361090d565b50846103a2565b6020906040516103da816108dd565b5f81525f838201528282890101520161025d565b8135815260209182019101610227565b346101aa57600461040e366108a3565b6040519391606090610420828761090d565b60028652816020870195601f198201368837604051630240bc6b60e21b81529586918290841c5afa91821561018257600a945f915f946104fa575b50506001600160701b03928316939216916001600160a01b03908116911610156104db5782900461048b85610994565b5204610496836109a1565b52905b604051918291602083019060208452518091526040830191905f5b8181106104c2575050500390f35b82518452859450602093840193909201916001016104b4565b908290046104e885610994565b52046104f3836109a1565b5290610499565b6001600160701b039450849250908161051e92903d1061037857610369818361090d565b5093909161045b565b346101aa5760a03660031901126101aa57610540610877565b61054861088d565b6064359160028310156101aa576080926105689260843592600435610a27565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101aa5761059b366108a3565b5050506040516105ac60a08261090d565b6004815260208101608036823760016105c483610994565b5260026105d0836109a1565b5281516002101561065057600360608301528151600310156106505760096080830152604051906020820192602083525180935260408201905f935b8085106106195783830384f35b9091825190600a82101561063c576020816001938293520193019401939061060c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101aa5760403660031901126101aa5760043561068460243582610947565b60405163574f2ba360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929190602081600481875afa80156101825783915f91610842575b5082116107de575b6106e791610968565b6107096106f38261092f565b91610701604051938461090d565b80835261092f565b602082019290601f19013684375f5b825181101561079a5761072b8183610947565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610182576001925f9161077c575b5060601b6bffffffffffffffffffffffff191661077582866109b1565b5201610718565b610794915060203d811161017b5761016d818361090d565b87610758565b8383604051918291602083019060208452518091526040830191905f5b8181106107c5575050500390f35b82518452859450602093840193909201916001016107b7565b505060405163574f2ba360e01b8152602081600481865afa80156101825782905f9061080c575b91506106de565b50506020813d60201161083a575b816108276020938361090d565b810103126101aa57816106e79151610805565b3d915061081a565b9150506020813d60201161086f575b8161085e6020938361090d565b810103126101aa57829051856106d6565b3d9150610851565b602435906001600160a01b03821682036101aa57565b604435906001600160a01b03821682036101aa57565b60609060031901126101aa57600435906024356001600160a01b03811681036101aa57906044356001600160a01b03811681036101aa5790565b6040810190811067ffffffffffffffff8211176108f957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b67ffffffffffffffff81116108f95760051b60200190565b9190820180921161095457565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161095457565b908160209103126101aa57516001600160a01b03811681036101aa5790565b8051156106505760200190565b8051600110156106505760400190565b80518210156106505760209160051b010190565b604051906109d2826108dd565b5f6020838281520152565b51906001600160701b03821682036101aa57565b908160609103126101aa57610a05816109dd565b916040610a14602084016109dd565b92015163ffffffff811681036101aa5790565b9493905f604051966060880188811067ffffffffffffffff8211176108f9576040525f88525f6020890152604051610a5e816108dd565b5f81525f60208201526040890152878415610cda575060601c946001600160a01b03948516948316948510948515610c8557604051630240bc6b60e21b815296606088600481845afa8015610182575f985f91610c5f575b5097965b5a93600281101561063c57898989921598895f14610c445750509083610af66001600160701b03610afe94166001600160701b038d16846110d6565b953390610fe6565b15610bd057803b15610bcc5760405163022c0d9f60e01b81525f6004820181905260248201849052336044830152608060648301526084820152908490829060a490829084905af18015610bc157908491610ba8575b505090610b66915b89525b5a90610968565b60208801525015610b8e576001600160701b0380610b879416921690610e3b565b6040830152565b50610b87916001600160701b038086519216921690610e3b565b81610bb29161090d565b610bbd57825f610b54565b8280fd5b6040513d86823e3d90fd5b8380fd5b80939291933b156101aa5760405163022c0d9f60e01b8152600481018590525f6024820181905233604483015260806064830152608482018190529091829060a490829084905af1801561018257610c2e575b50610b669192610b5c565b610b6692505f610c3d9161090d565b5f91610c23565b610b66979650610c58959491929394610d02565b8952610b5f565b9050610c7b91985060603d60601161037857610369818361090d565b509790975f610ab6565b604051630240bc6b60e21b81529596606087600481845afa8015610182575f975f91610cb4575b509697610aba565b9050610cd091975060603d60601161037857610369818361090d565b509690965f610cac565b9750505050505050565b8115610cee570490565b634e487b7160e01b5f52601260045260245ffd5b94919092610d1e906001600160701b03805f9716911684610f01565b948515610e1e576001600160a01b0390811693610d419187918691339116610fe6565b15610dbd57813b15610bbd5760405163022c0d9f60e01b81525f600482018190526024820192909252336044820152608060648201526084810191909152908290829060a490829084905af18015610db257610d9c57505090565b610da782809261090d565b610daf575090565b80fd5b6040513d84823e3d90fd5b9150803b156101aa5760405163022c0d9f60e01b815260048101929092525f60248301819052336044840152608060648401526084830181905290829060a490829084905af1801561018257610e11575090565b5f610e1b9161090d565b90565b5050505050505f90565b8181029291811591840414171561095457565b919091610e466109c5565b5082158015610ef9575b610eb357610e6c82610e66610e729486856110d6565b90610968565b92610947565b6103e58202918083046103e51490151715610954576103e88102908082046103e814901517156109545760405191610ea9836108dd565b8252602082015290565b60405163643c60f360e01b815260206004820152601d60248201527f4174206c65617374206f6e652072657365727665206973207a65726f210000006044820152606490fd5b508115610e50565b91908215610fdf578015610fa5578115610f6a5782610f1f91610e28565b916103e88302928084046103e8149015171561095457610f3e91610968565b6103e58102908082046103e5149015171561095457610f5c91610ce4565b600181018091116109545790565b60405163643c60f360e01b8152602060048201526012602482015271726573657276654f7574206973207a65726f60701b6044820152606490fd5b60405163643c60f360e01b815260206004820152601160248201527072657365727665496e206973207a65726f60781b6044820152606490fd5b5050505f90565b6040516323b872dd60e01b602082019081526001600160a01b039384166024830152939092166044830152606480830194909452928152915f91829161102d60848661090d565b60018060a01b031693519082855af13d156110ca573d67ffffffffffffffff81116108f95761107e916040519161106e6020601f19601f840116018461090d565b82523d5f602084013e5b83611135565b80519081151591826110a6575b50506110945750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101aa57602001518015908115036101aa575f8061108b565b61107e90606090611078565b91908215610fdf5780159182801561112d575b610eb3576103e584029384046103e503610954576111079084610e28565b916103e882029182046103e814171561095457610e1b9261112791610947565b90610ce4565b5080156110e9565b90611159575080511561114a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061118a575b61116a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561116256fea2646970667358221220b2e7f8fbccc13285e349f8b239b13d9153a3383fc98985279c83c306cd63f78464736f6c634300081b0033","sourceMap":"371:8928:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;371:8928:64;;;;;;;;;;:::i;:::-;8627:1;371:8928;;;;;;;;;;;;;;;;;;8731:13;;371:8928;8731:13;371:8928;8731:13;;;;;;;;;371:8928;8731:13;371:8928;8731:13;371:8928;8731:13;;;371:8928;8711:34;;;;:::i;:::-;-1:-1:-1;;;;;371:8928:64;;;;;;;-1:-1:-1;;;8775:13:64;;371:8928;;;;;8775:13;;;;;;;371:8928;8775:13;;;371:8928;8755:34;;;;;;:::i;:::-;-1:-1:-1;;;;;371:8928:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;8775:13;;;;371:8928;8775:13;371:8928;8775:13;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;371:8928;;;;;;;;;8731:13;;;;;;;;;;;;;;:::i;:::-;;;;371:8928;;;;;;;;;;-1:-1:-1;;371:8928:64;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;;;;-1:-1:-1;;;;;;371:8928:64;;;;;1004:20;371:8928;;;;;-1:-1:-1;;;1052:18:64;;371:8928;;;;;1052:18;;;;;;371:8928;;;1052:18;;;1000:142;1040:30;1000:142;371:8928;1201:3;371:8928;;1172:27;;;;;1243:19;1232:39;1243:19;371:8928;1243:19;;;:::i;:::-;371:8928;-1:-1:-1;;;;;371:8928:64;;;-1:-1:-1;;;;;371:8928:64;;1232:39;;:::i;:::-;1220:51;;;;:::i;:::-;;;;;;:::i;:::-;;371:8928;1157:13;;1172:27;;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;1052:18;;;;;;371:8928;1052:18;371:8928;1052:18;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1000:142;371:8928;;-1:-1:-1;;;1113:18:64;;371:8928;;;;;1113:18;;;;;;371:8928;;;1113:18;;;1000:142;1101:30;;1000:142;;1113:18;;;;;;371:8928;1113:18;371:8928;1113:18;;;;;;;:::i;:::-;;;;;371:8928;;;;;;;;:::i;:::-;-1:-1:-1;371:8928:64;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;7652:1;371:8928;;;;;;;;;;;;;;;;-1:-1:-1;;;7692:18:64;;371:8928;;;;;;;7692:18;;;;;;;366:2;7692:18;371:8928;;;7692:18;;;371:8928;-1:-1:-1;;;;;;;371:8928:64;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;7724:20;371:8928;;;366:2;;;7760:37;;;:::i;:::-;371:8928;366:2;7811:37;;;:::i;:::-;371:8928;7720:258;;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;7720:258;366:2;;;;7879:37;;;:::i;:::-;371:8928;366:2;7930:37;;;:::i;:::-;371:8928;7720:258;;;7692:18;-1:-1:-1;;;;;7692:18:64;;;;;;;;;;;-1:-1:-1;7692:18:64;;;;;;:::i;:::-;;;;;;;371:8928;;;;;;-1:-1:-1;;371:8928:64;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;8249:20;8231:38;;;:::i;:::-;371:8928;8297:19;8279:37;;;:::i;:::-;371:8928;;;8297:19;371:8928;;;;8344:24;371:8928;;;;;;8344:24;371:8928;;;;8396:24;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8249:20;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;371:8928:64;;;;;;9003:14;371:8928;;9003:14;;:::i;:::-;371:8928;;-1:-1:-1;;;9040:24:64;;:7;-1:-1:-1;;;;;371:8928:64;;;;;;;;;9040:24;;;;;;;;371:8928;9040:24;;;371:8928;9031:33;;;9027:97;;371:8928;9153:15;;;:::i;:::-;371:8928;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;371:8928:64;;;;;9215:3;371:8928;;9199:14;;;;;9268:10;;;;:::i;:::-;371:8928;;;;;;;9251:28;;371:8928;9251:28;;371:8928;;9251:28;371:8928;9251:28;;;;;;;;371:8928;9251:28;371:8928;9251:28;;;9215:3;-1:-1:-1;371:8928:64;;-1:-1:-1;;371:8928:64;9234:46;;;;:::i;:::-;371:8928;;9184:13;;9251:28;;;;371:8928;9251:28;;;;;;;;;:::i;:::-;;;;9199:14;;;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;9027:97;-1:-1:-1;;371:8928:64;;-1:-1:-1;;;9089:24:64;;371:8928;;;;9089:24;;;;;;;;;371:8928;9089:24;;;9027:97;;-1:-1:-1;9027:97:64;;9089:24;;;371:8928;9089:24;;371:8928;9089:24;;;;;;371:8928;9089:24;;;:::i;:::-;;;371:8928;;;;;9153:15;371:8928;;9089:24;;;;;-1:-1:-1;9089:24:64;;9040;;;;371:8928;9040:24;;371:8928;9040:24;;;;;;371:8928;9040:24;;;:::i;:::-;;;371:8928;;;;;;;9040:24;;;;;;-1:-1:-1;9040:24:64;;371:8928;;;;-1:-1:-1;;;;;371:8928:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;371:8928:64;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;371:8928:64;;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;371:8928:64;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;8249:20;371:8928;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;371:8928:64;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;371:8928:64;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;2186:1148::-;;;;-1:-1:-1;371:8928:64;;;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;-1:-1:-1;371:8928:64;;;;;;;;;:::i;:::-;-1:-1:-1;371:8928:64;;-1:-1:-1;371:8928:64;;;;;;;;2367:18;2401:20;;2397:63;;-1:-1:-1;371:8928:64;;;-1:-1:-1;;;;;371:8928:64;;;;;;2598:20;;;;2628:130;;;;371:8928;;-1:-1:-1;;;2668:18:64;;371:8928;;;2668:18;371:8928;;2668:18;;;;;;-1:-1:-1;;;2668:18:64;;;2628:130;2656:30;;2628:130;;2787:9;371:8928;;;;;;;2810:22;;;;;2806:277;;;2810:22;;;371:8928;;;;4080:43;-1:-1:-1;;;;;4193:6:64;371:8928;;-1:-1:-1;;;;;371:8928:64;;4080:43;;:::i;:::-;4040:10;;4193:6;;:::i;:::-;4210:142;;;4238:36;;;;;371:8928;;-1:-1:-1;;;4238:36:64;;371:8928;4238:36;;;371:8928;;;;;;;;;4040:10;371:8928;;;;;;;;;;;;;;;;;;;;;;;;4238:36;;;;;;;;;;;4210:142;;;;3108:21;4210:142;;371:8928;;2806:277;3120:9;3108:21;;:::i;:::-;371:8928;3092:13;;371:8928;-1:-1:-1;3143:22:64;;;-1:-1:-1;;;;;371:8928:64;3195:35;371:8928;;;;3195:35;;:::i;:::-;371:8928;3181:11;;:49;2186:1148::o;3139:189::-;371:8928;3275:42;371:8928;-1:-1:-1;;;;;371:8928:64;;;;;;;3275:42;;:::i;4238:36::-;;;;;:::i;:::-;371:8928;;4238:36;;;;371:8928;;;;4238:36;371:8928;;;;;;;;;4238:36;371:8928;;;4210:142;4305:36;;;;;;;;;371:8928;;-1:-1:-1;;;4305:36:64;;;;;371:8928;;;-1:-1:-1;371:8928:64;;;;;;4040:10;371:8928;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4305:36:64;;;;;;;;4210:142;;3108:21;4210:142;;;;4305:36;3108:21;4305:36;;-1:-1:-1;4305:36:64;;;:::i;:::-;-1:-1:-1;4305:36:64;;;2806:277;3108:21;3017:55;;;;;;;;;;;:::i;:::-;371:8928;;2806:277;;2668:18;;;;;;;371:8928;2668:18;371:8928;2668:18;;;;;;;:::i;:::-;;;;;;;;2628:130;371:8928;;-1:-1:-1;;;2729:18:64;;371:8928;;;;2729:18;371:8928;;2729:18;;;;;;-1:-1:-1;;;2729:18:64;;;2628:130;2717:30;;2628:130;;;2729:18;;;;;;;371:8928;2729:18;371:8928;2729:18;;;;;;;:::i;:::-;;;;;;;;2397:63;2437:12;-1:-1:-1;;;;;;;2437:12:64:o;366:2::-;;;;;;;:::o;:::-;371:8928;;;366:2;;;;;;;;5789:652;;;;;6078:45;5789:652;-1:-1:-1;;;;;5987:24:64;371:8928;5987:24;371:8928;;;6078:45;;:::i;:::-;6138:11;;;6134:50;;-1:-1:-1;;;;;371:8928:64;;;;6253:6;;371:8928;;;;6041:10;;371:8928;6253:6;:::i;:::-;6270:142;;;6298:36;;;;;371:8928;;-1:-1:-1;;;6298:36:64;;371:8928;6298:36;;;371:8928;;;;;;;;;;6041:10;371:8928;;;;;;;;;;;;;;;;;;;;;;;;;;;6298:36;;;;;;;;6270:142;;5789:652;:::o;6298:36::-;;;;;;:::i;:::-;371:8928;;6270:142;5789:652;:::o;371:8928::-;;;6298:36;371:8928;;;;;;;;;6270:142;6365:36;;;;;;;371:8928;;-1:-1:-1;;;6365:36:64;;;;;371:8928;;;;-1:-1:-1;371:8928:64;;;;;;6041:10;371:8928;;;;;;;;;;;;;;;-1:-1:-1;371:8928:64;;;;;;-1:-1:-1;;6365:36:64;;;;;;;;6270:142;5789:652;:::o;6365:36::-;371:8928;6365:36;;;:::i;:::-;5789:652;:::o;6134:50::-;6165:8;;;;;;371:8928;6165:8;:::o;371:8928::-;;;;;;;;;;;;;;;;:::o;1620:527::-;;;;371:8928;;:::i;:::-;;1779:14;;:33;;;;1620:527;1775:115;;1998:22;1919:45;;2053:20;1919:45;;;;:::i;:::-;1998:22;;:::i;:::-;2053:20;;:::i;:::-;2115:3;371:8928;;;;;;2115:3;371:8928;;;;;;;2135:4;371:8928;;;;;;2135:4;371:8928;;;;;;;;;;;;;:::i;:::-;;;2090:50;;;371:8928;1620:527;:::o;1775:115::-;371:8928;;-1:-1:-1;;;1835:44:64;;371:8928;1835:44;;;371:8928;;;;;;;;;;;;;1835:44;1779:33;1797:15;;;1779:33;;6766:577;;;6930:14;;6926:53;;6992:14;;6988:84;;7085:15;;7081:86;;7196:21;;;;:::i;:::-;371:8928;7220:4;371:8928;;;;;;7220:4;371:8928;;;;;;;7257:22;;;:::i;:::-;7283:3;371:8928;;;;;;7283:3;371:8928;;;;;;;7308:23;;;:::i;:::-;7335:1;371:8928;;;;;;;6766:577;:::o;7081:86::-;371:8928;;-1:-1:-1;;;7123:33:64;;371:8928;7123:33;;;371:8928;;;;;;-1:-1:-1;;;371:8928:64;;;;7123:33;;;6988:84;371:8928;;-1:-1:-1;;;7029:32:64;;371:8928;7029:32;;;371:8928;;;;;;-1:-1:-1;;;371:8928:64;;;;7029:32;;;6926:53;6960:8;;;371:8928;6960:8;:::o;1702:188:32:-;371:8928:64;;-1:-1:-1;;;1829:53:32;;;;;;-1:-1:-1;;;;;371:8928:64;;;1829:53:32;;;371:8928:64;;;;;;;;;;;;;;;;;1829:53:32;;;371:8928:64;-1:-1:-1;;;;1829:53:32;;371:8928:64;1829:53:32;:::i;:::-;371:8928:64;;;;;;3256:31:33;;;;;;;371:8928:64;;;;;;;;;;3304:55:33;371:8928:64;;;;;1829:53:32;371:8928:64;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1829:53:32;371:8928:64;;;;3304:55:33;;:::i;:::-;371:8928:64;;6960:22:32;;;;:57;;;;371:8928:64;6956:135:32;;;;1702:188;:::o;6956:135::-;7040:40;;;-1:-1:-1;7040:40:32;;371:8928:64;1829:53:32;-1:-1:-1;7040:40:32;6960:57;6987:30;;;;1829:53;6987:30;;;371:8928:64;;;;1829:53:32;6987:30;371:8928:64;;;;;;;;;6960:57:32;;;;371:8928:64;3304:55:33;371:8928:64;;;;;4764:562;;;4929:13;;4925:52;;4990:14;;;;:33;;;;4764:562;4986:115;;5147:3;371:8928;;;;;5147:3;371:8928;;;5180:28;;;;:::i;:::-;371:8928;5252:4;371:8928;;;;;5252:4;371:8928;;;;;5296:23;5240:34;;;;:::i;:::-;5296:23;;:::i;4990:33::-;5008:15;;;4990:33;;4421:582:33;;4593:8;;-1:-1:-1;371:8928:64;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;371:8928:64;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;371:8928:64;;;;4917:24:33;371:8928:64;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"68957":[{"start":1683,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"specifiedAmounts\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"prices\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getPoolIds(uint256,uint256)\":{\"details\":\"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.\",\"params\":{\"limit\":\"The maximum number of pool IDs to retrieve.\",\"offset\":\"The starting index from which to retrieve pool IDs.\"},\"returns\":{\"ids\":\"An array of pool IDs.\"}},\"getTokens(bytes32)\":{\"details\":\"Mainly used for testing as this is redundant with the required substreams implementation.\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"specifiedAmounts\":\"Amounts to calculate marginal prices at.\"},\"returns\":{\"prices\":\"array of prices as fractions corresponding to the provided amounts.\"}},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\",\"side\":\"The side of the trade (Sell or Buy).\",\"specifiedAmount\":\"The amount to be traded.\"},\"returns\":{\"trade\":\"Trade struct representing the executed trade.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getPoolIds(uint256,uint256)\":{\"notice\":\"Retrieves a range of pool IDs.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"},\"price(bytes32,address,address,uint256[])\":{\"notice\":\"Calculates marginal prices for specified amounts (optional).\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"notice\":\"Simulates swapping tokens on a given pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":\"UniswapV2SwapAdapter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":{\"keccak256\":\"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853\",\"dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"factory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"ids","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"uint256[]","name":"specifiedAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"prices","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Retrieve the maximum limits of a token that can be traded. The limit is reached when the change in the received amounts is zero or close to zero or when the swap fails because of the pools restrictions. Overestimate if in doubt rather than underestimate. The swap function should not error with `LimitExceeded` if called with amounts below the limit.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getPoolIds(uint256,uint256)":{"details":"Mainly used for testing. It is alright to not return all available pools here. Nevertheless, this is useful to test against the substreams implementation. If implemented, it saves time writing custom tests.","params":{"limit":"The maximum number of pool IDs to retrieve.","offset":"The starting index from which to retrieve pool IDs."},"returns":{"ids":"An array of pool IDs."}},"getTokens(bytes32)":{"details":"Mainly used for testing as this is redundant with the required substreams implementation.","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"The returned prices should include all dex fees. In case the fee is dynamic on the amount traded, the returned price is expected to include the minimum fee. Note that the returned price should be the marginal price which is distinct from the executed price `swap(amount_in) / amount_in`! The marginal price is defined as the price to trade an arbitrarily small (almost zero) amount after the trade of (amount). E.g. the marginal price of a uniswap v2 pool at amount=0 is `reserve0/reserve1`. Ideally this method should be implemented, although it is optional as the price function can be numerically derived from the swap function. In case it is not available, it should be flagged via capabilities and calling it should revert using the `NotImplemented` error. The method needs to be implemented as view as this is usually more efficient and can be run in parallel.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","specifiedAmounts":"Amounts to calculate marginal prices at."},"returns":{"prices":"array of prices as fractions corresponding to the provided amounts."}},"swap(bytes32,address,address,uint8,uint256)":{"details":"This function should be state modifying, meaning it should actually execute the swap and change the state of the EVM accordingly. Please include a gas usage estimate for each amount. This can be achieved e.g. by using the `gasleft()` function. The return type `Trade` has an attribute called price which should contain the value of `price(specifiedAmount)`. As this is optional, defined via `Capability.PriceFunction`, it is valid to return a Fraction(0, 0) value for this price. In that case the price will be estimated numerically.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold.","side":"The side of the trade (Sell or Buy).","specifiedAmount":"The amount to be traded."},"returns":{"trade":"Trade struct representing the executed trade."}}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getPoolIds(uint256,uint256)":{"notice":"Retrieves a range of pool IDs."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."},"price(bytes32,address,address,uint256[])":{"notice":"Calculates marginal prices for specified amounts (optional)."},"swap(bytes32,address,address,uint8,uint256)":{"notice":"Simulates swapping tokens on a given pool."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/uniswap-v2/UniswapV2SwapAdapter.sol":"UniswapV2SwapAdapter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/uniswap-v2/UniswapV2SwapAdapter.sol":{"keccak256":"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5","urls":["bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853","dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs"],"license":"AGPL-3.0-or-later"}},"version":1},"id":64} \ No newline at end of file diff --git a/evm/out/UniswapV2SwapAdapter.t.sol/UniswapV2PairFunctionTest.json b/evm/out/UniswapV2SwapAdapter.t.sol/UniswapV2PairFunctionTest.json deleted file mode 100644 index bec1aa6..0000000 --- a/evm/out/UniswapV2SwapAdapter.t.sol/UniswapV2PairFunctionTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fractionToInt","inputs":[{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"runPoolBehaviourTest","inputs":[{"name":"adapter","type":"address","internalType":"contract ISwapAdapter"},{"name":"poolIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stringPctgs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testGetCapabilities","inputs":[{"name":"pair","type":"bytes32","internalType":"bytes32"},{"name":"t0","type":"address","internalType":"address"},{"name":"t1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetLimits","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceDecreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPriceFuzz","inputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapBuyIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapFuzz","inputs":[{"name":"specifiedAmount","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSwapSellIncreasing","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUsv2PoolBehaviour","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6080604052346102be57600160ff19600c541617600c55600160ff19601e541617601e556040516080810181811060018060401b0382111761020c5760405261004860406102c2565b6002815261302560f01b6020820152815261006360406102c2565b6004815263302e312560e01b6020820152602082015261008360406102c2565b600381526235302560e81b602082015260408201526100a260406102c2565b60048152633130302560e01b60208201526060820152601f546004601f5580600410610220575b50601f5f9081525f51602061816a5f395f51905f52915b600482106100f757604051617e3490816103368239f35b80518051906001600160401b03821161020c5761011485546102e7565b601f81116101d1575b50602090601f83116001146101685792826001949360209386955f9261015d575b50505f19600383901b1c191690841b1786555b019301910190916100e0565b015190505f8061013e565b90601f19831691865f52815f20925f5b8181106101b957509360209360019693879693838895106101a1575b505050811b018655610151565b01515f1960f88460031b161c191690555f8080610194565b82840151855560019094019360209384019301610178565b6101fc90865f5260205f20601f850160051c81019160208610610202575b601f0160051c019061031f565b5f61011d565b90915081906101ef565b634e487b7160e01b5f52604160045260245ffd5b601f5f525f51602061816a5f395f51905f52017fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80b5b81811061026257506100c9565b8061026f600192546102e7565b8061027c575b5001610255565b601f8111831461029157505f81555b5f610275565b6102ad90825f5283601f60205f20920160051c8201910161031f565b805f525f602081208183555561028b565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020c57604052565b90600182811c92168015610315575b602083101461030157565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102f6565b81811061032a575050565b5f815560010161031f56fe610200806040526004361015610013575f80fd5b5f905f3560e01c90816308c4174514613230575080630a9254e414612e8d578063111f33921461285057806311ca2bc8146127f05780631ed7831c146127725780632ade3880146125b35780633e5e3c23146125355780633f7286f4146124b75780634a36e3721461236257806366d9a9a0146121b45780637f55213e1461140b57806385226c8114611379578063916a17c6146110ed578063a00872f114611081578063a502846b14610e28578063b5508aa914610d8f578063ba414fa614610d6a578063d170c3cc14610cc1578063d3479a0114610bbe578063e20c9f7114610b30578063f6c25e8214610a20578063fa7626d4146109fd5763fe3ee58b1461011c575f80fd5b34610776578060031936011261077657610ca060405161013c828261329f565b60648152601f19820180366020840137835b606481106109ac5750610164604051938461329f565b60648352835b818110610995575050825b6064811061023157505060015b6063811061018e578280f35b6101988183613691565b5151600182019081831161021d57610210826101c6610217936101be6001979689613691565b515190615801565b6101ed60206101d58689613691565b51015160206101e4848a613691565b51015190615801565b6040610207816101fd878a613691565b5101519288613691565b51015190613ced565b850b613d2b565b01610182565b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f516020617d9f5f395f51905f525af1918215610639578592610962575b5061026f8184613691565b51858060405160208101906370a0823160e01b82523060248201526024815261029960448261329f565b51905f516020617dbf5f395f51905f525afa506102c66102b7615850565b60208082518301019101613644565b506102cf613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561094e5761030481600161031d9301600e55613434565b919091309083549060031b91821b915f19901b19161790565b9055601154600f5460105488926001600160a01b03169160e01b61033f615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061039181610383888886615b6b565b03601f19810183528261329f565b519020865260205260ff60036040872001541615610940575b6001600160a01b0384165f908152600d602052604090209085526020526103836103e36040862093604051928391602083019586615b6b565b5190208352602052604082206001810154936002820154610404818761383c565b6107f7575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020617d9f5f395f51905f525afa9788156107ec5787986107b0575b506001908201610100031b5f1901811b198716915f516020617d9f5f395f51905f523b156107ac576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020617d9f5f395f51905f525af1908115610639578591610793575b50506104dd615d3b565b919015918215610788575b505061069957505050506104fa61687f565b6020805461054591906001600160a01b03166105168487613691565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f516020617dbf5f395f51905f525af180156106725761067d575b5060205485906080906105a2906001600160a01b03166105838588613691565b51604051948580948193638307c65560e01b8352600160048401613913565b03925af1908115610672578691610644575b506105bf8286613691565b526105ca8185613691565b5060405191631135fc2960e21b83526004830152602082602481885f516020617d9f5f395f51905f525af19182156106395760019261060b575b5001610175565b61062b9060203d8111610632575b610623818361329f565b8101906138c2565b505f610604565b503d610619565b6040513d87823e3d90fd5b610665915060803d811161066b575b61065d818361329f565b8101906138da565b5f6105b4565b503d610653565b6040513d88823e3d90fd5b6106949060203d811161063257610623818361329f565b610563565b82945054905f516020617d9f5f395f51905f523b15610784576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020617d9f5f395f51905f525af1801561077957610761575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61076c82809261329f565b6107765780610700565b80fd5b6040513d84823e3d90fd5b8280fd5b141590505f806104e8565b8161079d9161329f565b6107a857835f6104d3565b8380fd5b8680fd5b965096506020863d82116107e4575b816107cc6020938361329f565b810103126107e0579451958b959081610456565b5f80fd5b3d91506107bf565b6040513d89823e3d90fd5b9091929350610806818661383c565b61010003610100811161092c5760ff811161092c5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020617d9f5f395f51905f525afa92831561091f5760209382606a926108c194926108fb575b506040519586925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810184528361329f565b8310156108d357509089939291610409565b60405162461bcd60e51b8152602060048201529081906108f7906024830190613302565b0390fd5b6109189192503d8084833e610910818361329f565b8101906135e2565b905f610862565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610948615fb5565b506103aa565b634e487b7160e01b87526041600452602487fd5b9091506020813d821161098d575b8161097d6020938361329f565b810103126107e05751905f610264565b3d9150610970565b6020906109a0613cbb565b8282870101520161016a565b806103e8026103e8810482036109e957633b9aca00820290808204620f424014901517156109e957906001916109e28286613691565b520161014e565b634e487b7160e01b86526011600452602486fd5b5034610776578060031936011261077657602060ff601e54166040519015158152f35b503461077657606036600319011261077657806024356001600160a01b0381168103610b0757604435906001600160a01b0382168203610b2c576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0392831660248201529282166044840152839183916064918391165afa908115610779578291610b0a575b50515f516020617d9f5f395f51905f523b15610b07576040519063260a5b1560e21b825260048201526004602482015281816044815f516020617d9f5f395f51905f525afa801561077957610af65750f35b81610b009161329f565b6107765780f35b50fd5b610b2691503d8084833e610b1e818361329f565b810190613a26565b5f610aa4565b5050fd5b503461077657806003193601126107765760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610b9f57610b9b85610b8f8187038261329f565b604051918291826132c0565b0390f35b82546001600160a01b0316845260209093019260019283019201610b78565b503461077657806003193601126107765760205460405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2604482015282918290829060649082906001600160a01b03165afa908115610779578291610c9f575b50515f516020617d9f5f395f51905f523b15610b07576040519063260a5b1560e21b825260048201526002602482015281816044815f516020617d9f5f395f51905f525afa801561077957610af65750f35b610cbb91503d8084833e610cb3818361329f565b810190613849565b5f610c4d565b503461077657604036600319011261077657600435906001600160a01b0382168203610776576024356001600160401b038111610d665736602382011215610d6657806004013592610d1284613531565b91610d20604051938461329f565b8483526024602084019560051b82010190368211610d6257602401945b818610610d525784610d4f8585613aa9565b80f35b8535815260209586019501610d3d565b8480fd5b5080fd5b50346107765780600319360112610776576020610d8561398b565b6040519015158152f35b5034610776578060031936011261077657601954610dac81613531565b91610dba604051938461329f565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610dfc5760405180610b9b87826133d5565b600160208192604051610e1a81610e1381896134b0565b038261329f565b815201920192019190610de7565b5034610776576040366003190112610776576004359060243560018060a01b03602054169060405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260448201528381606481865afa908115611047578491611067575b50610ec481613674565b5185105f516020617d9f5f395f51905f523b15610d625760405190632631f2b160e11b8252600482015284816024815f516020617d9f5f395f51905f525afa801561063957908591611052575b5050610f1c90613674565b5181105f516020617d9f5f395f51905f523b156107a85760405190632631f2b160e11b8252600482015283816024815f516020617d9f5f395f51905f525afa801561104757611032575b50928291610fb89460405192610f7d60608561329f565b600284526040366020860137610f9284613674565b52610f9c83613681565b52604051808096819463155adc9160e31b835260048301613751565b03915afa91821561091f57819261100e575b50805b825181101561100a5780610fed610fe660019386613691565b5151613d87565b6110046020610ffc8387613691565b510151613d87565b01610fcd565b5080f35b61102b9192503d8084833e611023818361329f565b8101906136cd565b905f610fca565b61103d84809261329f565b610784575f610f66565b6040513d86823e3d90fd5b8161105c9161329f565b6107a857835f610f11565b61107b91503d8086833e610cb3818361329f565b5f610eba565b503461077657602036600319011261077657600435601f54811015610d66576110a990613460565b9190916110d957604051610b9b906110c581610e1381876134b0565b604051918291602083526020830190613302565b634e487b7160e01b81526004819052602490fd5b5034610776578060031936011261077657601c5461110a81613531565b90611118604051928361329f565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061115b5760405180610b9b8782613326565b60405161116781613269565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106112da57846001979460029794602097946111f29454918181106112be575b8181106112a2575b818110611286575b81811061126a575b81811061124e575b818110611232575b818110611218575b10611204575b50038261329f565b83820152815201920192019190611146565b6001600160e01b031916815286015f6111ea565b828a1b6001600160e01b0319168452928901928b016111e4565b604083901b6001600160e01b0319168452928901928b016111dc565b606083901b6001600160e01b0319168452928901928b016111d4565b608083901b6001600160e01b0319168452928901928b016111cc565b60a083901b6001600160e01b0319168452928901928b016111c4565b60c083901b6001600160e01b0319168452928901928b016111bc565b60e083901b6001600160e01b0319168452928901928b016111b4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019161118f565b5034610776578060031936011261077657601a5461139681613531565b916113a4604051938461329f565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106113e65760405180610b9b87826133d5565b6001602081926040516113fd81610e1381896134b0565b8152019201920191906113d1565b503461077657604036600319011261077657600435602435801515810361078457156121ae5760015b60205460405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26044820152908490829060649082906001600160a01b03165afa908115611047578491612194575b50600282101561218057836001831491825f14611cdf576114d190613681565b5184105f516020617d9f5f395f51905f523b15610d665760405190632631f2b160e11b8252600482015281816024815f516020617d9f5f395f51905f525afa801561077957611cca575b508060405160208101906370a0823160e01b82523060248201526024815261154460448261329f565b51905f516020617dbf5f395f51905f525afa506115626102b7615850565b5061156b613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611cb6576103048160016115a09301600e55613434565b905560018060a01b0360115416600f5460e01b601054906115bf615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061160381610383888886615b6b565b519020895260205260ff600360408a2001541615611ca8575b6001600160a01b0384165f908152600d602052604090209088526020526103836116556040892093604051928391602083019586615b6b565b51902086526020528460408120916001830154926002810154611678818661383c565b611b92578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa968715610672578697611b59575b506001908201610100031b5f1901811b1986165f516020617d9f5f395f51905f523b15611b55576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020617d9f5f395f51905f525af1908115611047578491611b40575b505061174d615d3b565b9015908115611b34575b50610699575050505061176861687f565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f516020617dbf5f395f51905f525af1801561063957611b15575b505b6040516370a0823160e01b8152306004820152926020846024815f516020617dbf5f395f51905f525afa938415610639578594611ae1575b506040516370a0823160e01b81523060048201529160208360248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa928315610672578693611aaa575b5060808261185c9560018060a01b03602054169089604051809981958294638307c65560e01b845260048401613913565b03925af1938415610672578694611a89575b508351611879578580f35b15611987576040516370a0823160e01b815230600482015260208160248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa908115610672578691611953575b506118d0926118ca9161382f565b90613dd6565b516040516370a0823160e01b81523060048201526020816024815f516020617dbf5f395f51905f525afa90811561104757849161191f575b506118ca906119169361382f565b5f808080808580f35b90506020813d60201161194b575b8161193a6020938361329f565b810103126107e05751611916611908565b3d915061192d565b90506020813d60201161197f575b8161196e6020938361329f565b810103126107e057516118d06118bc565b3d9150611961565b6040516370a0823160e01b81523060048201529193916020816024815f516020617dbf5f395f51905f525afa908115610672578691611a55575b506118ca906119cf9361382f565b516040516370a0823160e01b815230600482015260208160248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa908115611047578491611a21575b50611a1c926118ca9161382f565b611916565b90506020813d602011611a4d575b81611a3c6020938361329f565b810103126107e05751611a1c611a0e565b3d9150611a2f565b90506020813d602011611a81575b81611a706020938361329f565b810103126107e057516119cf6119c1565b3d9150611a63565b611aa391945060803d60801161066b5761065d818361329f565b925f61186e565b9392506020843d602011611ad9575b81611ac66020938361329f565b810103126107e05792519192608061182b565b3d9150611ab9565b9093506020813d602011611b0d575b81611afd6020938361329f565b810103126107e05751925f6117eb565b3d9150611af0565b611b2d9060203d60201161063257610623818361329f565b505f6117b1565b5f19141590505f611757565b81611b4a9161329f565b61078457825f611743565b8580fd5b955095506020853d602011611b8a575b81611b766020938361329f565b810103126107e057935194899490816116c9565b3d9150611b69565b611b9d84918661383c565b610100036101008111611c945760ff8111611c945760405163348051d760e11b8152600190911b600482015281816024815f516020617d9f5f395f51905f525afa90811561077957606a60209284611c58936108f79692611c78575b506040519485925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810183528261329f565b60405162461bcd60e51b8152602060048201529182916024830190613302565b611c8d9192503d8084833e610910818361329f565b9086611bf9565b634e487b7160e01b82526011600452602482fd5b611cb0615fb5565b5061161c565b634e487b7160e01b85526041600452602485fd5b81611cd49161329f565b6107a857835f61151b565b611ce890613674565b5184105f516020617d9f5f395f51905f523b15610d665760405190632631f2b160e11b8252600482015281816024815f516020617d9f5f395f51905f525afa80156107795761216b575b508060405160208101906370a0823160e01b825230602482015260248152611d5b60448261329f565b51905f516020617dbf5f395f51905f525afa50611d796102b7615850565b50611d82613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611cb657610304816001611db79301600e55613434565b905560018060a01b0360115416600f5460e01b60105490611dd6615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190611e1a81610383888886615b6b565b519020895260205260ff600360408a200154161561215d575b6001600160a01b0384165f908152600d60205260409020908852602052610383611e6c6040892093604051928391602083019586615b6b565b51902086526020528460408120916001830154926002810154611e8f818661383c565b61204d575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa968715610672578697612014575b506001908201610100031b5f1901811b198616915f516020617d9f5f395f51905f523b15611b55576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020617d9f5f395f51905f525af1908115611047578491611fff575b505086611f69615d3b565b919015918215611ff4575b50506106995750505050611f8661687f565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f516020617dbf5f395f51905f525af1801561063957611fd5575b506117b3565b611fed9060203d60201161063257610623818361329f565b505f611fcf565b14159050875f611f74565b816120099161329f565b61078457825f611f5e565b955095506020853d602011612045575b816120316020938361329f565b810103126107e05793519489949081611ee1565b3d9150612024565b9091925061205b818561383c565b6101000361010081116121495760ff81116121495760405163348051d760e11b8152600190911b6004820181905289826024815f516020617d9f5f395f51905f525afa801561213e57606a612113916020948d91612124575b506040519485915f516020617ddf5f395f51905f52828401525f516020617d7f5f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f19810184528361329f565b8810156108d3575090879291611e94565b61213891503d808f833e610910818361329f565b5f6120b4565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b612165615fb5565b50611e33565b816121759161329f565b6107a857835f611d32565b634e487b7160e01b84526021600452602484fd5b6121a891503d8086833e610cb3818361329f565b5f6114b1565b81611434565b5034610776578060031936011261077657601b546121d181613531565b906121df604051928361329f565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106122225760405180610b9b8782613326565b60405161222e81613269565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106122c357846001979460029794602097946122b19454918181106112be578181106112a2578181106112865781811061126a5781811061124e578181106112325781811061121857106112045750038261329f565b8382015281520192019201919061220d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612256565b5034610776578060031936011261077657604051610ca0612383818361329f565b60648252601f190136602083013781805b60648110612462575060205460405163155adc9160e31b81529283916001600160a01b031690829081906123cb9060048301613751565b03915afa908115610779578291612448575b50815b606381106123ec578280f35b6123f68183613691565b51600182019081831161021d576020610ffc8361242e61242761244295612420600199988b613691565b5190613ced565b890b613d2b565b61243c83610ffc878a613691565b86613691565b016123e0565b61245c91503d8084833e611023818361329f565b5f6123dd565b8091506103e8026103e8810482036124a357633b9aca00820290808204620f424014901517156124a3579060019161249a8285613691565b52018290612394565b634e487b7160e01b84526011600452602484fd5b503461077657806003193601126107765760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061251657610b9b85610b8f8187038261329f565b82546001600160a01b03168452602090930192600192830192016124ff565b503461077657806003193601126107765760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061259457610b9b85610b8f8187038261329f565b82546001600160a01b031684526020909301926001928301920161257d565b5034610776578060031936011261077657601d546125d081613531565b6125dd604051918261329f565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106126e15786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106126495786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b8281106126b65750505050506020806001929701930193019092869594929361263c565b90919293946020806126d4600193605f198782030189528951613302565b9701950193929101612692565b6040516126ed81613269565b82546001600160a01b0316815260018301805461270981613531565b91612717604051938461329f565b8183528a526020808b20908b9084015b83821061274d57505050506001928260209283600295015281520192019201919061260d565b60016020819260405161276481610e13818a6134b0565b815201930191019091612727565b503461077657806003193601126107765760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106127d157610b9b85610b8f8187038261329f565b82546001600160a01b03168452602090930192600192830192016127ba565b5034610776578060031936011261077657610d4f60405161281260408261329f565b6001815260203681830137732d385b405a394b4d72b34b18616d10a07b0a327760621b61283e82613674565b526020546001600160a01b0316613aa9565b5034610776578060031936011261077657610ca0604051612871828261329f565b60648152601f19820180366020840137835b60648110612e505750612899604051938461329f565b60648352835b818110612e39575050825b606481106128f957505060015b606381106128c3578280f35b6128cd8183613691565b5151600182019081831161021d57610210826101c66128f3936101be6001979689613691565b016128b7565b604051634b88b8ad60e11b815290602082600481885f516020617d9f5f395f51905f525af1918215610639578592612e06575b506129378184613691565b51858060405160208101906370a0823160e01b82523060248201526024815261296160448261329f565b51905f516020617dbf5f395f51905f525afa5061297f6102b7615850565b50612988613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561094e576103048160016129bd9301600e55613434565b9055601154600f5460105488926001600160a01b03169160e01b6129df615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612a2381610383888886615b6b565b519020865260205260ff60036040872001541615612df8575b6001600160a01b0384165f908152600d60205260409020908552602052610383612a756040862093604051928391602083019586615b6b565b5190208352602052604082206001810154936002820154612a96818761383c565b612d1d575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020617d9f5f395f51905f525afa9788156107ec578798612ce5575b506001908201610100031b5f1901811b198716915f516020617d9f5f395f51905f523b156107ac576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020617d9f5f395f51905f525af1908115610639578591612cd0575b5050612b6f615d3b565b919015918215612cc5575b50506106995750505050612b8c61687f565b60208054612ba891906001600160a01b03166105168487613691565b0381895f516020617dbf5f395f51905f525af1801561067257612ca9575b506020548590608090612c04906001600160a01b0316612be68588613691565b51604051948580948193638307c65560e01b83528360048401613913565b03925af1908115610672578691612c8b575b50612c218286613691565b52612c2c8185613691565b5060405191631135fc2960e21b83526004830152602082602481885f516020617d9f5f395f51905f525af191821561063957600192612c6d575b50016128aa565b612c849060203d811161063257610623818361329f565b505f612c66565b612ca3915060803d811161066b5761065d818361329f565b5f612c16565b612cc09060203d811161063257610623818361329f565b612bc6565b141590505f80612b7a565b81612cda9161329f565b6107a857835f612b65565b965096506020863d8211612d15575b81612d016020938361329f565b810103126107e0579451958b959081612ae8565b3d9150612cf4565b9091929350612d2c818661383c565b61010003610100811161092c5760ff811161092c5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020617d9f5f395f51905f525afa92831561091f5760209382606a92612de694926108fb57506040519586925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810184528361329f565b8310156108d357509089939291612a9b565b612e00615fb5565b50612a3c565b9091506020813d8211612e31575b81612e216020938361329f565b810103126107e05751905f61292c565b3d9150612e14565b602090612e44613cbb565b8282870101520161289f565b806103e8026103e8810482036109e957633b9aca00820290808204620f424014901517156109e95790600191612e868286613691565b5201612883565b50346107e0575f3660031901126107e05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020617d9f5f395f51905f525afa9081156131c857612f16916020915f91613216575b50604051809381926371ee464d60e01b8352604060048401526044830190613302565b6301036640602483015203815f5f516020617d9f5f395f51905f525af180156131c8576131e7575b5060405161124a808201908282106001600160401b038311176131d3576020918391616b358339735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81520301905ff080156131c857602080546001600160a01b0319166001600160a01b039290921691821790555f516020617d9f5f395f51905f523b156107e057604051906318caf8e360e31b825260048201526040602482015260146044820152732ab734b9bbb0b82b1929bbb0b820b230b83a32b960611b60648201525f81608481835f516020617d9f5f395f51905f525af180156131c8576131b5575b505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f516020617d9f5f395f51905f525af18015610779576131a0575b50505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b81525f516020617dbf5f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f516020617d9f5f395f51905f525af180156107795761318b575b50505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b815273b4e16d0168e52d35cacd2c6185b44281ec28c9dc600482015260406024820152600e60448201526d2aa9a221afaba2aa242fa820a4a960911b60648201528181608481835f516020617d9f5f395f51905f525af1801561077957610af65750f35b816131959161329f565b61077657805f613105565b816131aa9161329f565b61077657805f613092565b6131c191505f9061329f565b5f5f613019565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161320e575b816132006020938361329f565b810103126107e05751612f3e565b3d91506131f3565b61322a91503d805f833e610910818361329f565b5f612ef3565b346107e05760403660031901126107e05761326160209161325081613269565b60043581526024358382015261358d565b604051908152f35b604081019081106001600160401b038211176131d357604052565b606081019081106001600160401b038211176131d357604052565b90601f801991011681019081106001600160401b038211176131d357604052565b60206040818301928281528451809452019201905f5b8181106132e35750505090565b82516001600160a01b03168452602093840193909201916001016132d6565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061335857505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106133b25750505060208060019297019301930191939290613349565b82516001600160e01b031916845260209384019390920191600190910190613393565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061340757505050505090565b9091929394602080613425600193603f198682030187528951613302565b970193019301919392906133f8565b600e5481101561344c57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f5481101561344c57601f5f5260205f2001905f90565b90600182811c921680156134a6575b602083101461349257565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613487565b5f92918154916134bf83613478565b808352926001811690811561351457506001146134db57505050565b5f9081526020812093945091925b8383106134fa575060209250010190565b6001816020929493945483858701015201910191906134e9565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116131d35760051b60200190565b8181029291811591840414171561355b57565b634e487b7160e01b5f52601160045260245ffd5b8115613579570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a000000149015171561355b5760206135c49201519061356f565b90565b6001600160401b0381116131d357601f01601f191660200190565b6020818303126107e0578051906001600160401b0382116107e0570181601f820112156107e057805190613615826135c7565b92613623604051948561329f565b828452602083830101116107e057815f9260208093018386015e8301015290565b908160209103126107e0575190565b601180546001600160a01b0319165f516020617dbf5f395f51905f52179055565b80511561344c5760200190565b80516001101561344c5760400190565b805182101561344c5760209160051b010190565b91908260409103126107e0576040516136bd81613269565b6020808294805184520151910152565b6020818303126107e0578051906001600160401b0382116107e0570181601f820112156107e05780516136ff81613531565b9261370d604051948561329f565b81845260208085019260061b840101928184116107e057602001915b838310613737575050505090565b602060409161374684866136a5565b815201920191613729565b602060a06080830192732d385b405a394b4d72b34b18616d10a07b0a327760621b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2838201525f516020617dbf5f395f51905f526040820152608060608201528451809452019201905f5b8181106137bf5750505090565b82518452602093840193909201916001016137b2565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106138195750505090565b825184526020938401939092019160010161380c565b9190820391821161355b57565b9190820180921161355b57565b6020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e057815161387c81613531565b9261388a604051948561329f565b81845260208085019260051b8201019283116107e057602001905b8282106138b25750505090565b81518152602091820191016138a5565b908160209103126107e0575180151581036107e05790565b906080828203126107e05761390b9060408051936138f785613284565b8051855260208101516020860152016136a5565b604082015290565b732d385b405a394b4d72b34b18616d10a07b0a327760621b81525f516020617dbf5f395f51905f52602082015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2604082015260a081019392919060028210156139775760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b60085460ff16801561399a5790565b50604051630667f9d760e41b81525f516020617d9f5f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020617d9f5f395f51905f525afa9081156131c8575f916139f4575b50151590565b90506020813d602011613a1e575b81613a0f6020938361329f565b810103126107e057515f6139ee565b3d9150613a02565b6020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e057815190613a5a82613531565b92613a68604051948561329f565b82845260208085019360051b8201019182116107e057602001915b818310613a905750505090565b8251600a8110156107e057815260209283019201613a83565b9091906001600160a01b038116613abf84613674565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183865af180156131c857613aff915f91613ca1575b50613e25565b15935f5b8151811015613c9957613b168183613691565b516040519063ecbbc03360e01b825260048201525f8160248183885af180156131c85787915f91613bee575b5060019291613be891613b67876001600160a01b03613b6084613674565b5116613ebc565b613b7a87868060a01b03613b6084613681565b613bb282613b888689613691565b51878060a01b03613b9885613674565b5116888060a01b03613ba986613681565b5116918c613ffe565b613bbc8487613691565b5190858060a01b03613bcd82613681565b511690613bdf878060a01b0391613674565b51169189613ffe565b01613b03565b9150503d805f833e613c00818361329f565b8101906020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e0578151613c3681613531565b91613c44604051938461329f565b81835260208084019260051b8501019081116107e05760208a9401905b808210613c72575050506001613b42565b8151945090916001600160a01b03851685036107e0576020818c9682935201920190613c61565b505050509050565b613cb591503d805f833e610b1e818361329f565b5f613af9565b60405190613cc882613284565b815f81525f60208201526040805191613ce083613269565b5f83525f60208401520152565b613d0d906020613d0282518286015190613548565b935191015190613548565b90808203613d1b5750505f90565b1115613d2657600190565b5f1990565b5f516020617d9f5f395f51905f523b156107e0576040519063fe74f05b60e01b82526004820152600160248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b5f613d859161329f565b565b5f516020617d9f5f395f51905f523b156107e05760405190636d83fe6960e11b825260048201525f60248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b905f516020617d9f5f395f51905f523b156107e0576040519163260a5b1560e21b8352600483015260248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b5f5b8151811015613e5a57613e3a8183613691565b51600a81101561397757600514613e5357600101613e27565b5050600190565b50505f90565b5f5b8151811015613e5a57613e758183613691565b51600a81101561397757600914613e5357600101613e62565b5f5b8151811015613e5a57613ea38183613691565b51600a81101561397757600814613e5357600101613e90565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f19604484015260448352613ef460648461329f565b82516001600160a01b038316915f91829182855af190613f12615850565b82613f72575b5081613f67575b5015613f2a57505050565b613f62613d85936040519063095ea7b360e01b602083015260248201525f604482015260448152613f5c60648261329f565b8261587f565b61587f565b90503b15155f613f1f565b80519192508115918215613f8a575b5050905f613f18565b613f9d92506020809183010191016138c2565b5f80613f81565b60405190613fb360608361329f565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b6101809182526101c09490945260405163549387df60e11b8152905160048201526001600160a01b038083166024830152831660448201529192915f8180606481016101608490520381836001600160a01b0388165af180156131c85761406c915f916157e7575b50613674565b516101405260606101a08190526040516140c99161408a908261329f565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261014051615942565b6101a051505f806141536141816040516140e66101a0518261329f565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613302565b6001600160a01b0387811660448401528916606483015261014051608483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b81526101805160048201526001600160a01b038083166024830152841660448201525f8180606481010381836001600160a01b0388165af180156131c8576141f0915f916157cd575b50613e60565b916040519261420060a08561329f565b600484526080366020860137156157c0575f5b61421c84613674565b526103e8610140510461422e84613681565b5282516002101561344c576101a05183016101405160011c905282516003101561344c576080830161014051905260405163155adc9160e31b81525f818061427f87898861018051600486016137d5565b0381836001600160a01b0387165af19081156131c8575f916157a6575b506142af6142a982613674565b5161358d565b81515f1981019190821161355b576142cd6142a96143289385613691565b6101a05160405192906142e0908461329f565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526159a9565b6143346142a982613674565b81515f19810190811161355b576143d16143ea5f936143576142a9869588613691565b6101a05160405192919061436b908461329f565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b60208601526101a05160248601526084850190613302565b916044840152606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506101a05160405161445191614414908261329f565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b60408201526159de565b6144a461445d82613674565b515160406101e081905280519190614475908361329f565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152615942565b6144f660206144b283613674565b5101516101e051805191906144c7908361329f565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152615942565b6145026142a982613674565b610120526101e05180516145459161451a908261329f565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b60208201526101205190615a22565b61454d613cbb565b5083515f19810190811161355b576145659085613691565b51600581810204810361355b575f806101e0515160208101906370a0823160e01b82523060248201526024815261459d60448261329f565b5190875afa506145ae6102b7615850565b50601180546001600160a01b0319166001600160a01b038616179055600f805463ffffffff19166370a08231179055600e54600160401b8110156131d3576103048160016145ff9301600e55613434565b905560018060a01b0360115416600f5460e01b6010549061461e615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f526020526101e0515f206101e05151602081019061466681610383888886615b6b565b5190205f5260205260ff60036101e0515f2001541615615798575b6001600160a01b0384165f908152600d60205260409020905f526020526103836146be6101e0515f20936101e05151928391602083019586615b6b565b5190205f526020526101e0515f2060018101549260028201546146e1818661383c565b61567d575b82546101e05151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa96871561563c575f97615649575b506001908201610100031b5f1901811b1986165f516020617d9f5f395f51905f523b156107e0576101e051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f516020617d9f5f395f51905f525af1801561563c57615627575b50600f5460e01b602061480260246147c8600d615c5c565b6101e051519384918183019663ffffffff60e01b1687528051918291018484015e810161016051838201520301601f19810183528261329f565b60115461016051915191928392916001600160a01b03165afa60c052614826615850565b6010546001600160fb1b0381168103614e67576101605160a0819052825161010091909152602081111561561e57506020610100525b6101605160e0525b6101005160e051106155ac57505060c0511590811561559c575b506154aa5750505061488e61687f565b6101e05151634b88b8ad60e11b8152602081600481610160515f516020617d9f5f395f51905f525af18015614dcf5761016051608052615477575b5060015b8451811015614e9f575f8061498a6149b06148e785613460565b506148f2868b613691565b5161499c610e136149626101e051519461490f6101a0518761329f565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b6101e0518701526101e05151928380926134b0565b6101e05151635821efa160e01b60208201526101a05160248201529586946084860190613302565b84810360231901604486015290613302565b90606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506149d26142a98284613691565b5f80614a4a614a6f6149e4868b613691565b516101e05151906149f86101e0518361329f565b601782527f544553543a205377617070696e67202564206f6620257300000000000000000060208301526101e0515193849263038fd88960e31b60208501526101a05160248501526084840190613302565b60448301919091526001600160a01b038b16606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa50614add6080614a938489613691565b516101e05151638307c65560e01b81526101805160048201526001600160a01b03808a1660248301528b1660448201525f60648201526084810191909152918290819060a4820190565b03816101605160018060a01b038a165af1908115614dcf576101605191614e81575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715614e6757614b4c614b58916a084595161401484a000000614b44878c613691565b51910261356f565b916101e051015161358d565b91614b9e826101e05151614b6f6101e0518261329f565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152615a22565b614be3816101e05151614bb46101e0518261329f565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152615a22565b614c28836101e05151614bf96101e0518261329f565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152615a22565b6101c05115614ddf576101a0516101e05151614d6994614d08939092614c9b929190614c54908361329f565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b6101e05183015285615a65565b6101a0516101e051519190614cb0908361329f565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e0000000000000000006101e051830152836159a9565b6101a0516101e051519190614d1d908361329f565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b6101e051830152610120516159a9565b6101e0515190631135fc2960e21b82526080516004830152602082602481610160515f516020617d9f5f395f51905f525af1918215614dcf57600192614db1575b50016148cd565b614dc89060203d811161063257610623818361329f565b505f614daa565b6101e051513d61016051823e3d90fd5b614e0490614dfc614e6294614df2613fa4565b9061012051615a65565b614df2613fa4565b6101e0515190614e176101a0518361329f565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b6101e05183015261012051615a65565b614d69565b634e487b7160e01b61016051526011600452602461016051fd5b614e99915060803d811161066b5761065d818361329f565b5f614aff565b505091506069610140510261014051810460691461014051151715614e67576101e051516348bd7dfd60e01b815261016080516101805160048401526001600160a01b0385811660248501528781166044850152915160649485900496949192849291839187165af18015614dcf57614f2291610160519161545a575b50613e8e565b1561531157614f8d836101e05151614f3d6101a0518261329f565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101e051820152615a22565b6101e05180519390614f9f908561329f565b600184526101e051601f1901366020860137614fba84613674565b526101e0515163155adc9160e31b8152610160518180614fe387898861018051600486016137d5565b03816101605160018060a01b0387165af190816152f6575b5061528957600161500a615a9a565b6308c379a0146151f8575b614dcf5761507593615028608094613674565b516101e05151638307c65560e01b81526101805160048201526001600160a01b0394851660248201529390911660448401525f6064840152608483015290928391908290819060a4820190565b61016051919003926001600160a01b03165af190816151db575b5061517857600161509e615a9a565b6308c379a0146150f2575b614dcf575b613d856101e051516150c36101e0518261329f565b601781527f544553543a20416c6c207465737473207061737365642e00000000000000000060208201526159de565b6150fa615ab5565b80615106575b506150a9565b610160516101a0516101e05151919350615172929190615126908261329f565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101e051820152615b27565b5f615100565b6101e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6151f39060803d60801161066b5761065d818361329f565b61508f565b615200615ab5565b8061520c575b50615015565b610160516101a0516101e0515191935061528392919061522c908261329f565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101e051820152615b27565b5f615206565b6101e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b61530c903d8061016051833e611023818361329f565b614ffb565b6101a0516101e051519394936153799186919061532e908261329f565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101e051820152615a22565b6101e0518051949061538b908661329f565b600185526101e051601f19013660208701376153a685613674565b526101e051519263155adc9160e31b84526101605184806153d088858861018051600486016137d5565b03816101605160018060a01b0387165af18015614dcf576153fc956080956150289261543f5750613674565b61016051919003926001600160a01b03165af18015614dcf57615420575b506150ae565b6154389060803d60801161066b5761065d818361329f565b505f61541a565b615455903d8061016051833e611023818361329f565b614066565b61547191503d8061016051833e610b1e818361329f565b5f614f1c565b6020813d6020116154a2575b816154906020938361329f565b810103126107e057516080525f6148c9565b3d9150615483565b54915f516020617d9f5f395f51905f523b15615595576101e051516370ca10bb60e01b8152610160516001600160a01b039093166004820152602481019390935260448301528180606481010381610160515f516020617d9f5f395f51905f525af18015614dcf5761557a575b6101e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610160516155879161329f565b610160516155955780615517565b6101605180fd5b905060050260a05114155f61487e565b6155bb60e0518260051b61383c565b825181101561560457602060ff60f81b91840101511660e05160e05160031b0460081460e051151715614e675760e05160031b1c60a0511760a052600160e0510160e052614864565b634e487b7160e01b61016051526032600452602461016051fd5b6101005261485c565b5f6156319161329f565b5f610160525f6147b0565b6101e051513d5f823e3d90fd5b9096506020813d602011615675575b816156656020938361329f565b810103126107e057519581614735565b3d9150615658565b615687818661383c565b61010003610100811161355b5760ff811161355b576101e0515163348051d760e11b81526001821b60048201525f816024815f516020617d9f5f395f51905f525afa91821561563c57615747606a6020946001945f9161577e575b506101e051519586915f516020617ddf5f395f51905f52828401525f516020617d7f5f395f51905f526101e05184015269030ba32b9103a3430b7160b51b6101a0518401528051918291018484015e81015f838201520301601f19810185528461329f565b1b83600502101561575857506146e6565b6101e0515162461bcd60e51b8152602060048201529081906108f7906024830190613302565b61579291503d805f833e610910818361329f565b5f6156e2565b6157a0615fb5565b50614681565b6157ba91503d805f833e611023818361329f565b5f61429c565b6127106101405104614213565b6157e191503d805f833e610b1e818361329f565b5f6141ea565b6157fb91503d805f833e610cb3818361329f565b5f614066565b905f516020617d9f5f395f51905f523b156107e05760405191638466f41560e01b8352600483015260248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b3d1561587a573d90615861826135c7565b9161586f604051938461329f565b82523d5f602084013e565b606090565b81516158aa926001600160a01b03909216915f91829160200182855af16158a4615850565b91615efa565b805190816158b6575050565b6020806158c79383010191016138c2565b156158ce57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6135c49392606092825260208201528160408201520190613302565b5f516020617d9f5f395f51905f523b156107e05761598a915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613302565b03815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b905f516020617d9f5f395f51905f523b156107e0575f9161598a6040519485938493636cd1e26960e11b855260048501615926565b5f610383615a0b829360405192839163104c13eb60e21b6020840152602060248401526044830190613302565b6020815191016a636f6e736f6c652e6c6f675afa50565b615a51615a0b5f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613302565b90604483015203601f19810183528261329f565b905f516020617d9f5f395f51905f523b156107e0575f9161598a6040519485938493630389490b60e61b855260048501615926565b5f9060033d11615aa657565b905060045f803e5f5160e01c90565b5f60443d106135c4576040513d600319016004823e8051913d60248401116001600160401b03841117615b2157828201928351916001600160401b038311615b19573d84016003190185840160200111615b1957506135c49291016020019061329f565b949350505050565b92915050565b615b59615a0b5f93926103838594604051948593634b5c427760e01b6020860152604060248601526064850190613302565b83810360231901604485015290613302565b60209291908391805192839101825e019081520190565b615b8d601454613478565b615c4a576040519081826020600e549283815201600e5f5260205f20925f5b818110615c31575050615bc19250038361329f565b81518060051b908082046020149015171561355b57615bdf816135c7565b90615bed604051928361329f565b808252615bfc601f19916135c7565b013660208301375f5b8351811015615c2c5780615c1b60019286613691565b5160208260051b8501015201615c05565b509150565b8454835260019485019487945060209093019201615bac565b6040516135c481610e138160146134b0565b6007810190615c6b8254613478565b615d2757600191500190604051808360208295549384815201905f5260205f20925f5b818110615d0e575050615ca39250038361329f565b81518060051b908082046020149015171561355b57615cc1816135c7565b90615ccf604051928361329f565b808252615cde601f19916135c7565b013660208301375f5b8351811015615c2c5780615cfd60019286613691565b5160208260051b8501015201615ce7565b8454835260019485019487945060209093019201615c8e565b506135c4610e1391604051928380926134b0565b5f806020600f5460e01b615d896024615d54600d615c5c565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f19810184528361329f565b6011549151916001600160a01b03165afa90615da3615850565b601054909290600581901b906001600160fb1b0381160361355b575f938051602081115f14615e2e57506020905b5f925b828410615de357505050509190565b90919295615df1878361383c565b835181101561344c57830160200151600388901b91906001600160f81b031916881560088a850414171561355b576001921c179601929190615dd4565b90615dd1565b905f806020600285015460e01b615e4f6024615d5488615c5c565b60048601549151916001600160a01b03165afa6003615e6c615850565b930154600581901b906001600160fb1b0381160361355b575f938051602081115f14615ef457506020905b5f925b828410615ea957505050509190565b90919295615eb7878361383c565b835181101561344c57830160200151600388901b91906001600160f81b031916881560088a850414171561355b576001921c179601929190615e9a565b90615e97565b90615f1e5750805115615f0f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615f4f575b615f2f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615f27565b9080601f830112156107e0578151615f6f81613531565b92615f7d604051948561329f565b81845260208085019260051b8201019283116107e057602001905b828210615fa55750505090565b8151815260209182019101615f98565b601154600f546010546001600160a01b03909216915f9160e01b615fd9600d615c5c565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061601281610383888886615b6b565b5190205f5260205260ff600360405f2001541661683e575f516020617d9f5f395f51905f523b156107e05760405163266cf10960e01b81525f81600481835f516020617d9f5f395f51905f525af180156131c857616829575b50616076600d615e34565b90506040516365bc948160e01b81528660048201528581602481835f516020617d9f5f395f51905f525af19081156106725786916167c1575b50805161612057608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b81518110156167b95781602061613b8361616c95613691565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020617d9f5f395f51905f525afa9283156167ae57889361677b575b508215616723575b61619e8282613691565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020617d9f5f395f51905f525afa908115616718578b916166e7575b506161f9600d615e34565b91909382155f146166e0575f19905b5f516020617d9f5f395f51905f523b156166c7576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020617d9f5f395f51905f525af1801561664c57908d916166cb575b5050616279600d615e34565b601154909491506001600160a01b03165f516020617d9f5f395f51905f523b156166c7576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020617d9f5f395f51905f525af180156166bc57908c916166a3575b505082616698575b50501561668e578793889360ff60135416616513575b6001868601610100031b5f1901851b16841c8103616505575090616393917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896103836163688d604051928391602083019586615b6b565b5190206163758686613691565b51906040519283528a602084015260408301526060820152a1613691565b51906040519060808201928284106001600160401b038511176131d35760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906163fc816103838d8d86615b6b565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019061645781610383888886615b6b565b519020855260205260ff600360408620015416156164a8576040948452600d60205284842090845260205261038361649c858520938651928391602083019586615b6b565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01616122565b945061655e93506165248383613691565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020617d9f5f395f51905f525afa94851561213e578a9561665b575b5061658a86600d616998565b95909661659881600d616a71565b60115490939192906001600160a01b03165f516020617d9f5f395f51905f523b15616657576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020617d9f5f395f51905f525af1801561664c57908d91616633575b50508761662b575b50949561630d57509350915060019061650d565b96505f616617565b8161663d9161329f565b616648578b5f61660f565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616686575b816166766020938361329f565b810103126107e05751935f61657e565b3d9150616669565b915060019061650d565b141590505f806162f7565b816166ad9161329f565b6166b8578a5f6162ef565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816166d59161329f565b616648578b5f61626d565b8c90616208565b90506020813d8211616710575b816167016020938361329f565b810103126107e057515f6161ee565b3d91506166f4565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56167736167518484613691565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1616194565b9092506020813d82116167a6575b816167966020938361329f565b810103126107e05751915f61618c565b3d9150616789565b6040513d8a823e3d90fd5b50505061642a565b90503d8087833e6167d2818361329f565b81016040828203126107ac5781516001600160401b03811161682557816167fa918401615f58565b916020810151906001600160401b0382116168215761681a929101615f58565b505f6160af565b8880fd5b8780fd5b6168369194505f9061329f565b5f925f61606b565b91939092505f52600d60205260405f20905f5260205261038361687060405f2093604051928391602083019586615b6b565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580616956575b505f60105560ff19601354166013556168ca601454613478565b806168d25750565b601f81116001146168e457505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061694b57505060145f525f602081208160145555565b5f8155600101616932565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061698d57506168b0565b5f8155600101616980565b91905f5b61010081106169af57505090505f905f90565b8060ff0360ff811161355b576004850154600190911b906001600160a01b03165f516020617d9f5f395f51905f523b156107e0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020617d9f5f395f51905f525af180156131c857616a61575b50616a3b84615e34565b81616a57575b50616a4e5760010161699c565b92505060019190565b905015155f616a41565b5f616a6b9161329f565b5f616a31565b91905f5b6101008110616a8857505090505f905f90565b60048401546001821b906001600160a01b03165f516020617d9f5f395f51905f523b156107e0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020617d9f5f395f51905f525af180156131c857616b24575b50616b0784615e34565b81616b1a575b50616a4e57600101616a75565b905015155f616b0d565b5f616b2e9161329f565b5f616afd56fe60a034606857601f61124a38819003918201601f19168301916001600160401b03831184841017606c57808492602094604052833981010312606857516001600160a01b038116908190036068576080526040516111c990816100818239608051816106930152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461066457806348bd7dfd1461058d5780638307c65514610527578063a9270fbe146103fe578063aad6e488146101ae5763ecbbc0331461005b575f80fd5b346101aa5760203660031901126101aa5760405161007a60608261090d565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610182576004926020925f9161018d575b506100c186610994565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610182575f91610153575b506100fc8392936109a1565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610131575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610123565b610175915060203d60201161017b575b61016d818361090d565b810190610975565b5f6100f0565b503d610163565b6040513d5f823e3d90fd5b6101a49150833d851161017b5761016d818361090d565b5f6100b7565b5f80fd5b346101aa5760803660031901126101aa576101c7610877565b6101cf61088d565b6064359067ffffffffffffffff82116101aa57366023830112156101aa578160040135916101fc8361092f565b9261020a604051948561090d565b8084526024602085019160051b830101913683116101aa57602401905b8282106103ee5750505081519261023d8461092f565b9361024b604051958661090d565b80855261025a601f199161092f565b015f5b8181106103cb57506004926060928435841c92506001600160a01b039182169116101561037f57604051630240bc6b60e21b815292839182905afa8015610182575f915f9161034d575b505b5f5b83518110156102fc57806102e06102c4600193876109b1565b516001600160701b038516906001600160701b03871690610e3b565b6102ea82886109b1565b526102f581876109b1565b50016102ab565b846040518091602082016020835281518091526020604084019201905f5b818110610328575050500390f35b825180518552602090810151818601528695506040909401939092019160010161031a565b9050610371915060603d606011610378575b610369818361090d565b8101906109f1565b50846102a7565b503d61035f565b604051630240bc6b60e21b815292839182905afa8015610182575f915f916103a9575b50906102a9565b90506103c4915060603d60601161037857610369818361090d565b50846103a2565b6020906040516103da816108dd565b5f81525f838201528282890101520161025d565b8135815260209182019101610227565b346101aa57600461040e366108a3565b6040519391606090610420828761090d565b60028652816020870195601f198201368837604051630240bc6b60e21b81529586918290841c5afa91821561018257600a945f915f946104fa575b50506001600160701b03928316939216916001600160a01b03908116911610156104db5782900461048b85610994565b5204610496836109a1565b52905b604051918291602083019060208452518091526040830191905f5b8181106104c2575050500390f35b82518452859450602093840193909201916001016104b4565b908290046104e885610994565b52046104f3836109a1565b5290610499565b6001600160701b039450849250908161051e92903d1061037857610369818361090d565b5093909161045b565b346101aa5760a03660031901126101aa57610540610877565b61054861088d565b6064359160028310156101aa576080926105689260843592600435610a27565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101aa5761059b366108a3565b5050506040516105ac60a08261090d565b6004815260208101608036823760016105c483610994565b5260026105d0836109a1565b5281516002101561065057600360608301528151600310156106505760096080830152604051906020820192602083525180935260408201905f935b8085106106195783830384f35b9091825190600a82101561063c576020816001938293520193019401939061060c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101aa5760403660031901126101aa5760043561068460243582610947565b60405163574f2ba360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929190602081600481875afa80156101825783915f91610842575b5082116107de575b6106e791610968565b6107096106f38261092f565b91610701604051938461090d565b80835261092f565b602082019290601f19013684375f5b825181101561079a5761072b8183610947565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610182576001925f9161077c575b5060601b6bffffffffffffffffffffffff191661077582866109b1565b5201610718565b610794915060203d811161017b5761016d818361090d565b87610758565b8383604051918291602083019060208452518091526040830191905f5b8181106107c5575050500390f35b82518452859450602093840193909201916001016107b7565b505060405163574f2ba360e01b8152602081600481865afa80156101825782905f9061080c575b91506106de565b50506020813d60201161083a575b816108276020938361090d565b810103126101aa57816106e79151610805565b3d915061081a565b9150506020813d60201161086f575b8161085e6020938361090d565b810103126101aa57829051856106d6565b3d9150610851565b602435906001600160a01b03821682036101aa57565b604435906001600160a01b03821682036101aa57565b60609060031901126101aa57600435906024356001600160a01b03811681036101aa57906044356001600160a01b03811681036101aa5790565b6040810190811067ffffffffffffffff8211176108f957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b67ffffffffffffffff81116108f95760051b60200190565b9190820180921161095457565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161095457565b908160209103126101aa57516001600160a01b03811681036101aa5790565b8051156106505760200190565b8051600110156106505760400190565b80518210156106505760209160051b010190565b604051906109d2826108dd565b5f6020838281520152565b51906001600160701b03821682036101aa57565b908160609103126101aa57610a05816109dd565b916040610a14602084016109dd565b92015163ffffffff811681036101aa5790565b9493905f604051966060880188811067ffffffffffffffff8211176108f9576040525f88525f6020890152604051610a5e816108dd565b5f81525f60208201526040890152878415610cda575060601c946001600160a01b03948516948316948510948515610c8557604051630240bc6b60e21b815296606088600481845afa8015610182575f985f91610c5f575b5097965b5a93600281101561063c57898989921598895f14610c445750509083610af66001600160701b03610afe94166001600160701b038d16846110d6565b953390610fe6565b15610bd057803b15610bcc5760405163022c0d9f60e01b81525f6004820181905260248201849052336044830152608060648301526084820152908490829060a490829084905af18015610bc157908491610ba8575b505090610b66915b89525b5a90610968565b60208801525015610b8e576001600160701b0380610b879416921690610e3b565b6040830152565b50610b87916001600160701b038086519216921690610e3b565b81610bb29161090d565b610bbd57825f610b54565b8280fd5b6040513d86823e3d90fd5b8380fd5b80939291933b156101aa5760405163022c0d9f60e01b8152600481018590525f6024820181905233604483015260806064830152608482018190529091829060a490829084905af1801561018257610c2e575b50610b669192610b5c565b610b6692505f610c3d9161090d565b5f91610c23565b610b66979650610c58959491929394610d02565b8952610b5f565b9050610c7b91985060603d60601161037857610369818361090d565b509790975f610ab6565b604051630240bc6b60e21b81529596606087600481845afa8015610182575f975f91610cb4575b509697610aba565b9050610cd091975060603d60601161037857610369818361090d565b509690965f610cac565b9750505050505050565b8115610cee570490565b634e487b7160e01b5f52601260045260245ffd5b94919092610d1e906001600160701b03805f9716911684610f01565b948515610e1e576001600160a01b0390811693610d419187918691339116610fe6565b15610dbd57813b15610bbd5760405163022c0d9f60e01b81525f600482018190526024820192909252336044820152608060648201526084810191909152908290829060a490829084905af18015610db257610d9c57505090565b610da782809261090d565b610daf575090565b80fd5b6040513d84823e3d90fd5b9150803b156101aa5760405163022c0d9f60e01b815260048101929092525f60248301819052336044840152608060648401526084830181905290829060a490829084905af1801561018257610e11575090565b5f610e1b9161090d565b90565b5050505050505f90565b8181029291811591840414171561095457565b919091610e466109c5565b5082158015610ef9575b610eb357610e6c82610e66610e729486856110d6565b90610968565b92610947565b6103e58202918083046103e51490151715610954576103e88102908082046103e814901517156109545760405191610ea9836108dd565b8252602082015290565b60405163643c60f360e01b815260206004820152601d60248201527f4174206c65617374206f6e652072657365727665206973207a65726f210000006044820152606490fd5b508115610e50565b91908215610fdf578015610fa5578115610f6a5782610f1f91610e28565b916103e88302928084046103e8149015171561095457610f3e91610968565b6103e58102908082046103e5149015171561095457610f5c91610ce4565b600181018091116109545790565b60405163643c60f360e01b8152602060048201526012602482015271726573657276654f7574206973207a65726f60701b6044820152606490fd5b60405163643c60f360e01b815260206004820152601160248201527072657365727665496e206973207a65726f60781b6044820152606490fd5b5050505f90565b6040516323b872dd60e01b602082019081526001600160a01b039384166024830152939092166044830152606480830194909452928152915f91829161102d60848661090d565b60018060a01b031693519082855af13d156110ca573d67ffffffffffffffff81116108f95761107e916040519161106e6020601f19601f840116018461090d565b82523d5f602084013e5b83611135565b80519081151591826110a6575b50506110945750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101aa57602001518015908115036101aa575f8061108b565b61107e90606090611078565b91908215610fdf5780159182801561112d575b610eb3576103e584029384046103e503610954576111079084610e28565b916103e882029182046103e814171561095457610e1b9261112791610947565b90610ce4565b5080156110e9565b90611159575080511561114a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061118a575b61116a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561116256fea2646970667358221220b2e7f8fbccc13285e349f8b239b13d9153a3383fc98985279c83c306cd63f78464736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220e5e83294d6ade400fc2ee5c0515769ba39a8d091b5e40c9154838cf2c49a24d664736f6c634300081b0033a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807","sourceMap":"304:5711:77:-:0;;;;;;3166:4:2;304:5711:77;;3166:4:2;304:5711:77;;;3166:4:2;304:5711:77;3166:4:2;304:5711:77;;1038:4:12;304:5711:77;;;1038:4:12;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;304:5711:77;;;;;;;;;:::i;:::-;564:29:65;304:5711:77;;-1:-1:-1;;;304:5711:77;;;;;564:29:65;;304:5711:77;;;;:::i;:::-;;;;-1:-1:-1;;;304:5711:77;;;;;564:29:65;;304:5711:77;;;;:::i;:::-;564:29:65;304:5711:77;;-1:-1:-1;;;304:5711:77;;;;564:29:65;;;304:5711:77;;;564:29:65;304:5711:77;;;564:29:65;304:5711:77;;;-1:-1:-1;;304:5711:77;;;;;-1:-1:-1;;;;;;;;;;;304:5711:77;;564:29:65;304:5711:77;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3166:4:2;304:5711:77;;;;;;;;;;;-1:-1:-1;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:4:2;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;;;564:29:65;304:5711:77;;;;;;;;-1:-1:-1;;;;;;;;;;;304:5711:77;;;;;;;;;;;;;;3166:4:2;304:5711:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;304:5711:77;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x610200806040526004361015610013575f80fd5b5f905f3560e01c90816308c4174514613230575080630a9254e414612e8d578063111f33921461285057806311ca2bc8146127f05780631ed7831c146127725780632ade3880146125b35780633e5e3c23146125355780633f7286f4146124b75780634a36e3721461236257806366d9a9a0146121b45780637f55213e1461140b57806385226c8114611379578063916a17c6146110ed578063a00872f114611081578063a502846b14610e28578063b5508aa914610d8f578063ba414fa614610d6a578063d170c3cc14610cc1578063d3479a0114610bbe578063e20c9f7114610b30578063f6c25e8214610a20578063fa7626d4146109fd5763fe3ee58b1461011c575f80fd5b34610776578060031936011261077657610ca060405161013c828261329f565b60648152601f19820180366020840137835b606481106109ac5750610164604051938461329f565b60648352835b818110610995575050825b6064811061023157505060015b6063811061018e578280f35b6101988183613691565b5151600182019081831161021d57610210826101c6610217936101be6001979689613691565b515190615801565b6101ed60206101d58689613691565b51015160206101e4848a613691565b51015190615801565b6040610207816101fd878a613691565b5101519288613691565b51015190613ced565b850b613d2b565b01610182565b634e487b7160e01b85526011600452602485fd5b604051634b88b8ad60e11b815290602082600481885f516020617d9f5f395f51905f525af1918215610639578592610962575b5061026f8184613691565b51858060405160208101906370a0823160e01b82523060248201526024815261029960448261329f565b51905f516020617dbf5f395f51905f525afa506102c66102b7615850565b60208082518301019101613644565b506102cf613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561094e5761030481600161031d9301600e55613434565b919091309083549060031b91821b915f19901b19161790565b9055601154600f5460105488926001600160a01b03169160e01b61033f615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081865260205260408520604051602081019061039181610383888886615b6b565b03601f19810183528261329f565b519020865260205260ff60036040872001541615610940575b6001600160a01b0384165f908152600d602052604090209085526020526103836103e36040862093604051928391602083019586615b6b565b5190208352602052604082206001810154936002820154610404818761383c565b6107f7575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020617d9f5f395f51905f525afa9788156107ec5787986107b0575b506001908201610100031b5f1901811b198716915f516020617d9f5f395f51905f523b156107ac576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020617d9f5f395f51905f525af1908115610639578591610793575b50506104dd615d3b565b919015918215610788575b505061069957505050506104fa61687f565b6020805461054591906001600160a01b03166105168487613691565b5160405163095ea7b360e01b81526001600160a01b039092166004830152602482015291829081906044820190565b0381895f516020617dbf5f395f51905f525af180156106725761067d575b5060205485906080906105a2906001600160a01b03166105838588613691565b51604051948580948193638307c65560e01b8352600160048401613913565b03925af1908115610672578691610644575b506105bf8286613691565b526105ca8185613691565b5060405191631135fc2960e21b83526004830152602082602481885f516020617d9f5f395f51905f525af19182156106395760019261060b575b5001610175565b61062b9060203d8111610632575b610623818361329f565b8101906138c2565b505f610604565b503d610619565b6040513d87823e3d90fd5b610665915060803d811161066b575b61065d818361329f565b8101906138da565b5f6105b4565b503d610653565b6040513d88823e3d90fd5b6106949060203d811161063257610623818361329f565b610563565b82945054905f516020617d9f5f395f51905f523b15610784576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810191909152604481019290925281606481835f516020617d9f5f395f51905f525af1801561077957610761575b60405162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b61076c82809261329f565b6107765780610700565b80fd5b6040513d84823e3d90fd5b8280fd5b141590505f806104e8565b8161079d9161329f565b6107a857835f6104d3565b8380fd5b8680fd5b965096506020863d82116107e4575b816107cc6020938361329f565b810103126107e0579451958b959081610456565b5f80fd5b3d91506107bf565b6040513d89823e3d90fd5b9091929350610806818661383c565b61010003610100811161092c5760ff811161092c5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020617d9f5f395f51905f525afa92831561091f5760209382606a926108c194926108fb575b506040519586925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810184528361329f565b8310156108d357509089939291610409565b60405162461bcd60e51b8152602060048201529081906108f7906024830190613302565b0390fd5b6109189192503d8084833e610910818361329f565b8101906135e2565b905f610862565b50604051903d90823e3d90fd5b634e487b7160e01b8b52601160045260248bfd5b610948615fb5565b506103aa565b634e487b7160e01b87526041600452602487fd5b9091506020813d821161098d575b8161097d6020938361329f565b810103126107e05751905f610264565b3d9150610970565b6020906109a0613cbb565b8282870101520161016a565b806103e8026103e8810482036109e957633b9aca00820290808204620f424014901517156109e957906001916109e28286613691565b520161014e565b634e487b7160e01b86526011600452602486fd5b5034610776578060031936011261077657602060ff601e54166040519015158152f35b503461077657606036600319011261077657806024356001600160a01b0381168103610b0757604435906001600160a01b0382168203610b2c576020546040516348bd7dfd60e01b815260048035908201526001600160a01b0392831660248201529282166044840152839183916064918391165afa908115610779578291610b0a575b50515f516020617d9f5f395f51905f523b15610b07576040519063260a5b1560e21b825260048201526004602482015281816044815f516020617d9f5f395f51905f525afa801561077957610af65750f35b81610b009161329f565b6107765780f35b50fd5b610b2691503d8084833e610b1e818361329f565b810190613a26565b5f610aa4565b5050fd5b503461077657806003193601126107765760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610b9f57610b9b85610b8f8187038261329f565b604051918291826132c0565b0390f35b82546001600160a01b0316845260209093019260019283019201610b78565b503461077657806003193601126107765760205460405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2604482015282918290829060649082906001600160a01b03165afa908115610779578291610c9f575b50515f516020617d9f5f395f51905f523b15610b07576040519063260a5b1560e21b825260048201526002602482015281816044815f516020617d9f5f395f51905f525afa801561077957610af65750f35b610cbb91503d8084833e610cb3818361329f565b810190613849565b5f610c4d565b503461077657604036600319011261077657600435906001600160a01b0382168203610776576024356001600160401b038111610d665736602382011215610d6657806004013592610d1284613531565b91610d20604051938461329f565b8483526024602084019560051b82010190368211610d6257602401945b818610610d525784610d4f8585613aa9565b80f35b8535815260209586019501610d3d565b8480fd5b5080fd5b50346107765780600319360112610776576020610d8561398b565b6040519015158152f35b5034610776578060031936011261077657601954610dac81613531565b91610dba604051938461329f565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610dfc5760405180610b9b87826133d5565b600160208192604051610e1a81610e1381896134b0565b038261329f565b815201920192019190610de7565b5034610776576040366003190112610776576004359060243560018060a01b03602054169060405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260448201528381606481865afa908115611047578491611067575b50610ec481613674565b5185105f516020617d9f5f395f51905f523b15610d625760405190632631f2b160e11b8252600482015284816024815f516020617d9f5f395f51905f525afa801561063957908591611052575b5050610f1c90613674565b5181105f516020617d9f5f395f51905f523b156107a85760405190632631f2b160e11b8252600482015283816024815f516020617d9f5f395f51905f525afa801561104757611032575b50928291610fb89460405192610f7d60608561329f565b600284526040366020860137610f9284613674565b52610f9c83613681565b52604051808096819463155adc9160e31b835260048301613751565b03915afa91821561091f57819261100e575b50805b825181101561100a5780610fed610fe660019386613691565b5151613d87565b6110046020610ffc8387613691565b510151613d87565b01610fcd565b5080f35b61102b9192503d8084833e611023818361329f565b8101906136cd565b905f610fca565b61103d84809261329f565b610784575f610f66565b6040513d86823e3d90fd5b8161105c9161329f565b6107a857835f610f11565b61107b91503d8086833e610cb3818361329f565b5f610eba565b503461077657602036600319011261077657600435601f54811015610d66576110a990613460565b9190916110d957604051610b9b906110c581610e1381876134b0565b604051918291602083526020830190613302565b634e487b7160e01b81526004819052602490fd5b5034610776578060031936011261077657601c5461110a81613531565b90611118604051928361329f565b808252601c8352827f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061115b5760405180610b9b8782613326565b60405161116781613269565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106112da57846001979460029794602097946111f29454918181106112be575b8181106112a2575b818110611286575b81811061126a575b81811061124e575b818110611232575b818110611218575b10611204575b50038261329f565b83820152815201920192019190611146565b6001600160e01b031916815286015f6111ea565b828a1b6001600160e01b0319168452928901928b016111e4565b604083901b6001600160e01b0319168452928901928b016111dc565b606083901b6001600160e01b0319168452928901928b016111d4565b608083901b6001600160e01b0319168452928901928b016111cc565b60a083901b6001600160e01b0319168452928901928b016111c4565b60c083901b6001600160e01b0319168452928901928b016111bc565b60e083901b6001600160e01b0319168452928901928b016111b4565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e082015201940192019161118f565b5034610776578060031936011261077657601a5461139681613531565b916113a4604051938461329f565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106113e65760405180610b9b87826133d5565b6001602081926040516113fd81610e1381896134b0565b8152019201920191906113d1565b503461077657604036600319011261077657600435602435801515810361078457156121ae5760015b60205460405163549387df60e11b8152732d385b405a394b4d72b34b18616d10a07b0a327760621b60048201525f516020617dbf5f395f51905f52602482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26044820152908490829060649082906001600160a01b03165afa908115611047578491612194575b50600282101561218057836001831491825f14611cdf576114d190613681565b5184105f516020617d9f5f395f51905f523b15610d665760405190632631f2b160e11b8252600482015281816024815f516020617d9f5f395f51905f525afa801561077957611cca575b508060405160208101906370a0823160e01b82523060248201526024815261154460448261329f565b51905f516020617dbf5f395f51905f525afa506115626102b7615850565b5061156b613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611cb6576103048160016115a09301600e55613434565b905560018060a01b0360115416600f5460e01b601054906115bf615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b169081895260205260408820604051602081019061160381610383888886615b6b565b519020895260205260ff600360408a2001541615611ca8575b6001600160a01b0384165f908152600d602052604090209088526020526103836116556040892093604051928391602083019586615b6b565b51902086526020528460408120916001830154926002810154611678818661383c565b611b92578154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa968715610672578697611b59575b506001908201610100031b5f1901811b1986165f516020617d9f5f395f51905f523b15611b55576040516370ca10bb60e01b81526001600160a01b038616600482015260248101939093525f1990911b1760448201528381606481835f516020617d9f5f395f51905f525af1908115611047578491611b40575b505061174d615d3b565b9015908115611b34575b50610699575050505061176861687f565b6020805460405163095ea7b360e01b81526001600160a01b0390911660048201525f1960248201529081604481885f516020617dbf5f395f51905f525af1801561063957611b15575b505b6040516370a0823160e01b8152306004820152926020846024815f516020617dbf5f395f51905f525afa938415610639578594611ae1575b506040516370a0823160e01b81523060048201529160208360248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa928315610672578693611aaa575b5060808261185c9560018060a01b03602054169089604051809981958294638307c65560e01b845260048401613913565b03925af1938415610672578694611a89575b508351611879578580f35b15611987576040516370a0823160e01b815230600482015260208160248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa908115610672578691611953575b506118d0926118ca9161382f565b90613dd6565b516040516370a0823160e01b81523060048201526020816024815f516020617dbf5f395f51905f525afa90811561104757849161191f575b506118ca906119169361382f565b5f808080808580f35b90506020813d60201161194b575b8161193a6020938361329f565b810103126107e05751611916611908565b3d915061192d565b90506020813d60201161197f575b8161196e6020938361329f565b810103126107e057516118d06118bc565b3d9150611961565b6040516370a0823160e01b81523060048201529193916020816024815f516020617dbf5f395f51905f525afa908115610672578691611a55575b506118ca906119cf9361382f565b516040516370a0823160e01b815230600482015260208160248173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa908115611047578491611a21575b50611a1c926118ca9161382f565b611916565b90506020813d602011611a4d575b81611a3c6020938361329f565b810103126107e05751611a1c611a0e565b3d9150611a2f565b90506020813d602011611a81575b81611a706020938361329f565b810103126107e057516119cf6119c1565b3d9150611a63565b611aa391945060803d60801161066b5761065d818361329f565b925f61186e565b9392506020843d602011611ad9575b81611ac66020938361329f565b810103126107e05792519192608061182b565b3d9150611ab9565b9093506020813d602011611b0d575b81611afd6020938361329f565b810103126107e05751925f6117eb565b3d9150611af0565b611b2d9060203d60201161063257610623818361329f565b505f6117b1565b5f19141590505f611757565b81611b4a9161329f565b61078457825f611743565b8580fd5b955095506020853d602011611b8a575b81611b766020938361329f565b810103126107e057935194899490816116c9565b3d9150611b69565b611b9d84918661383c565b610100036101008111611c945760ff8111611c945760405163348051d760e11b8152600190911b600482015281816024815f516020617d9f5f395f51905f525afa90811561077957606a60209284611c58936108f79692611c78575b506040519485925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810183528261329f565b60405162461bcd60e51b8152602060048201529182916024830190613302565b611c8d9192503d8084833e610910818361329f565b9086611bf9565b634e487b7160e01b82526011600452602482fd5b611cb0615fb5565b5061161c565b634e487b7160e01b85526041600452602485fd5b81611cd49161329f565b6107a857835f61151b565b611ce890613674565b5184105f516020617d9f5f395f51905f523b15610d665760405190632631f2b160e11b8252600482015281816024815f516020617d9f5f395f51905f525afa80156107795761216b575b508060405160208101906370a0823160e01b825230602482015260248152611d5b60448261329f565b51905f516020617dbf5f395f51905f525afa50611d796102b7615850565b50611d82613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b811015611cb657610304816001611db79301600e55613434565b905560018060a01b0360115416600f5460e01b60105490611dd6615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818952602052604088206040516020810190611e1a81610383888886615b6b565b519020895260205260ff600360408a200154161561215d575b6001600160a01b0384165f908152600d60205260409020908852602052610383611e6c6040892093604051928391602083019586615b6b565b51902086526020528460408120916001830154926002810154611e8f818661383c565b61204d575b8154604051630667f9d760e41b81526001600160a01b038516600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa968715610672578697612014575b506001908201610100031b5f1901811b198616915f516020617d9f5f395f51905f523b15611b55576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091529089901b9190911760448201528381606481835f516020617d9f5f395f51905f525af1908115611047578491611fff575b505086611f69615d3b565b919015918215611ff4575b50506106995750505050611f8661687f565b6020805460405163095ea7b360e01b81526001600160a01b039091166004820152602481018590529081604481885f516020617dbf5f395f51905f525af1801561063957611fd5575b506117b3565b611fed9060203d60201161063257610623818361329f565b505f611fcf565b14159050875f611f74565b816120099161329f565b61078457825f611f5e565b955095506020853d602011612045575b816120316020938361329f565b810103126107e05793519489949081611ee1565b3d9150612024565b9091925061205b818561383c565b6101000361010081116121495760ff81116121495760405163348051d760e11b8152600190911b6004820181905289826024815f516020617d9f5f395f51905f525afa801561213e57606a612113916020948d91612124575b506040519485915f516020617ddf5f395f51905f52828401525f516020617d7f5f395f51905f52604084015269030ba32b9103a3430b7160b51b60608401528051918291018484015e81018d838201520301601f19810184528361329f565b8810156108d3575090879291611e94565b61213891503d808f833e610910818361329f565b5f6120b4565b6040513d8c823e3d90fd5b634e487b7160e01b89526011600452602489fd5b612165615fb5565b50611e33565b816121759161329f565b6107a857835f611d32565b634e487b7160e01b84526021600452602484fd5b6121a891503d8086833e610cb3818361329f565b5f6114b1565b81611434565b5034610776578060031936011261077657601b546121d181613531565b906121df604051928361329f565b808252601b8352827f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1602084015b8383106122225760405180610b9b8782613326565b60405161222e81613269565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b8160078401106122c357846001979460029794602097946122b19454918181106112be578181106112a2578181106112865781811061126a5781811061124e578181106112325781811061121857106112045750038261329f565b8382015281520192019201919061220d565b926001610100600892865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920191612256565b5034610776578060031936011261077657604051610ca0612383818361329f565b60648252601f190136602083013781805b60648110612462575060205460405163155adc9160e31b81529283916001600160a01b031690829081906123cb9060048301613751565b03915afa908115610779578291612448575b50815b606381106123ec578280f35b6123f68183613691565b51600182019081831161021d576020610ffc8361242e61242761244295612420600199988b613691565b5190613ced565b890b613d2b565b61243c83610ffc878a613691565b86613691565b016123e0565b61245c91503d8084833e611023818361329f565b5f6123dd565b8091506103e8026103e8810482036124a357633b9aca00820290808204620f424014901517156124a3579060019161249a8285613691565b52018290612394565b634e487b7160e01b84526011600452602484fd5b503461077657806003193601126107765760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061251657610b9b85610b8f8187038261329f565b82546001600160a01b03168452602090930192600192830192016124ff565b503461077657806003193601126107765760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b81811061259457610b9b85610b8f8187038261329f565b82546001600160a01b031684526020909301926001928301920161257d565b5034610776578060031936011261077657601d546125d081613531565b6125dd604051918261329f565b818152601d83526020810191837f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f845b8383106126e15786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106126495786860387f35b919395509193603f198782030183528551906020604082019260018060a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b8281106126b65750505050506020806001929701930193019092869594929361263c565b90919293946020806126d4600193605f198782030189528951613302565b9701950193929101612692565b6040516126ed81613269565b82546001600160a01b0316815260018301805461270981613531565b91612717604051938461329f565b8183528a526020808b20908b9084015b83821061274d57505050506001928260209283600295015281520192019201919061260d565b60016020819260405161276481610e13818a6134b0565b815201930191019091612727565b503461077657806003193601126107765760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106127d157610b9b85610b8f8187038261329f565b82546001600160a01b03168452602090930192600192830192016127ba565b5034610776578060031936011261077657610d4f60405161281260408261329f565b6001815260203681830137732d385b405a394b4d72b34b18616d10a07b0a327760621b61283e82613674565b526020546001600160a01b0316613aa9565b5034610776578060031936011261077657610ca0604051612871828261329f565b60648152601f19820180366020840137835b60648110612e505750612899604051938461329f565b60648352835b818110612e39575050825b606481106128f957505060015b606381106128c3578280f35b6128cd8183613691565b5151600182019081831161021d57610210826101c66128f3936101be6001979689613691565b016128b7565b604051634b88b8ad60e11b815290602082600481885f516020617d9f5f395f51905f525af1918215610639578592612e06575b506129378184613691565b51858060405160208101906370a0823160e01b82523060248201526024815261296160448261329f565b51905f516020617dbf5f395f51905f525afa5061297f6102b7615850565b50612988613653565b6370a0823163ffffffff19600f541617600f55600e54600160401b81101561094e576103048160016129bd9301600e55613434565b9055601154600f5460105488926001600160a01b03169160e01b6129df615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690818652602052604085206040516020810190612a2381610383888886615b6b565b519020865260205260ff60036040872001541615612df8575b6001600160a01b0384165f908152600d60205260409020908552602052610383612a756040862093604051928391602083019586615b6b565b5190208352602052604082206001810154936002820154612a96818761383c565b612d1d575b8254604051630667f9d760e41b81526001600160a01b038616600482015260248101829052969091906020886044815f516020617d9f5f395f51905f525afa9788156107ec578798612ce5575b506001908201610100031b5f1901811b198716915f516020617d9f5f395f51905f523b156107ac576040516370ca10bb60e01b81526001600160a01b038716600482015260248101919091529083901b9190911760448201528481606481835f516020617d9f5f395f51905f525af1908115610639578591612cd0575b5050612b6f615d3b565b919015918215612cc5575b50506106995750505050612b8c61687f565b60208054612ba891906001600160a01b03166105168487613691565b0381895f516020617dbf5f395f51905f525af1801561067257612ca9575b506020548590608090612c04906001600160a01b0316612be68588613691565b51604051948580948193638307c65560e01b83528360048401613913565b03925af1908115610672578691612c8b575b50612c218286613691565b52612c2c8185613691565b5060405191631135fc2960e21b83526004830152602082602481885f516020617d9f5f395f51905f525af191821561063957600192612c6d575b50016128aa565b612c849060203d811161063257610623818361329f565b505f612c66565b612ca3915060803d811161066b5761065d818361329f565b5f612c16565b612cc09060203d811161063257610623818361329f565b612bc6565b141590505f80612b7a565b81612cda9161329f565b6107a857835f612b65565b965096506020863d8211612d15575b81612d016020938361329f565b810103126107e0579451958b959081612ae8565b3d9150612cf4565b9091929350612d2c818661383c565b61010003610100811161092c5760ff811161092c5760405163348051d760e11b8152600190911b600482018190528b80836024815f516020617d9f5f395f51905f525afa92831561091f5760209382606a92612de694926108fb57506040519586925f516020617ddf5f395f51905f52828501525f516020617d7f5f395f51905f52604085015269030ba32b9103a3430b7160b51b60608501528051918291018585015e820190838201520301601f19810184528361329f565b8310156108d357509089939291612a9b565b612e00615fb5565b50612a3c565b9091506020813d8211612e31575b81612e216020938361329f565b810103126107e05751905f61292c565b3d9150612e14565b602090612e44613cbb565b8282870101520161289f565b806103e8026103e8810482036109e957633b9aca00820290808204620f424014901517156109e95790600191612e868286613691565b5201612883565b50346107e0575f3660031901126107e05760405163975a6ce960e01b81526020600482015260076024820152661b585a5b9b995d60ca1b60448201525f816064815f516020617d9f5f395f51905f525afa9081156131c857612f16916020915f91613216575b50604051809381926371ee464d60e01b8352604060048401526044830190613302565b6301036640602483015203815f5f516020617d9f5f395f51905f525af180156131c8576131e7575b5060405161124a808201908282106001600160401b038311176131d3576020918391616b358339735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81520301905ff080156131c857602080546001600160a01b0319166001600160a01b039290921691821790555f516020617d9f5f395f51905f523b156107e057604051906318caf8e360e31b825260048201526040602482015260146044820152732ab734b9bbb0b82b1929bbb0b820b230b83a32b960611b60648201525f81608481835f516020617d9f5f395f51905f525af180156131c8576131b5575b505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201526040602482015260046044820152630ae8aa8960e31b60648201528181608481835f516020617d9f5f395f51905f525af18015610779576131a0575b50505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b81525f516020617dbf5f395f51905f5260048201526040602482015260046044820152635553444360e01b60648201528181608481835f516020617d9f5f395f51905f525af180156107795761318b575b50505f516020617d9f5f395f51905f523b1561077657806040516318caf8e360e31b815273b4e16d0168e52d35cacd2c6185b44281ec28c9dc600482015260406024820152600e60448201526d2aa9a221afaba2aa242fa820a4a960911b60648201528181608481835f516020617d9f5f395f51905f525af1801561077957610af65750f35b816131959161329f565b61077657805f613105565b816131aa9161329f565b61077657805f613092565b6131c191505f9061329f565b5f5f613019565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d60201161320e575b816132006020938361329f565b810103126107e05751612f3e565b3d91506131f3565b61322a91503d805f833e610910818361329f565b5f612ef3565b346107e05760403660031901126107e05761326160209161325081613269565b60043581526024358382015261358d565b604051908152f35b604081019081106001600160401b038211176131d357604052565b606081019081106001600160401b038211176131d357604052565b90601f801991011681019081106001600160401b038211176131d357604052565b60206040818301928281528451809452019201905f5b8181106132e35750505090565b82516001600160a01b03168452602093840193909201916001016132d6565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061335857505050505090565b9091929394603f1982820301835285516020606081604085019360018060a01b0381511686520151936040838201528451809452019201905f905b8082106133b25750505060208060019297019301930191939290613349565b82516001600160e01b031916845260209384019390920191600190910190613393565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061340757505050505090565b9091929394602080613425600193603f198682030187528951613302565b970193019301919392906133f8565b600e5481101561344c57600e5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b601f5481101561344c57601f5f5260205f2001905f90565b90600182811c921680156134a6575b602083101461349257565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613487565b5f92918154916134bf83613478565b808352926001811690811561351457506001146134db57505050565b5f9081526020812093945091925b8383106134fa575060209250010190565b6001816020929493945483858701015201910191906134e9565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b0381116131d35760051b60200190565b8181029291811591840414171561355b57565b634e487b7160e01b5f52601160045260245ffd5b8115613579570490565b634e487b7160e01b5f52601260045260245ffd5b80516a084595161401484a0000008102908082046a084595161401484a000000149015171561355b5760206135c49201519061356f565b90565b6001600160401b0381116131d357601f01601f191660200190565b6020818303126107e0578051906001600160401b0382116107e0570181601f820112156107e057805190613615826135c7565b92613623604051948561329f565b828452602083830101116107e057815f9260208093018386015e8301015290565b908160209103126107e0575190565b601180546001600160a01b0319165f516020617dbf5f395f51905f52179055565b80511561344c5760200190565b80516001101561344c5760400190565b805182101561344c5760209160051b010190565b91908260409103126107e0576040516136bd81613269565b6020808294805184520151910152565b6020818303126107e0578051906001600160401b0382116107e0570181601f820112156107e05780516136ff81613531565b9261370d604051948561329f565b81845260208085019260061b840101928184116107e057602001915b838310613737575050505090565b602060409161374684866136a5565b815201920191613729565b602060a06080830192732d385b405a394b4d72b34b18616d10a07b0a327760621b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2838201525f516020617dbf5f395f51905f526040820152608060608201528451809452019201905f5b8181106137bf5750505090565b82518452602093840193909201916001016137b2565b60a0919360209360808301958352600180851b031684830152600180841b03166040820152608060608201528451809452019201905f5b8181106138195750505090565b825184526020938401939092019160010161380c565b9190820391821161355b57565b9190820180921161355b57565b6020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e057815161387c81613531565b9261388a604051948561329f565b81845260208085019260051b8201019283116107e057602001905b8282106138b25750505090565b81518152602091820191016138a5565b908160209103126107e0575180151581036107e05790565b906080828203126107e05761390b9060408051936138f785613284565b8051855260208101516020860152016136a5565b604082015290565b732d385b405a394b4d72b34b18616d10a07b0a327760621b81525f516020617dbf5f395f51905f52602082015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2604082015260a081019392919060028210156139775760809160608201520152565b634e487b7160e01b5f52602160045260245ffd5b60085460ff16801561399a5790565b50604051630667f9d760e41b81525f516020617d9f5f395f51905f5260048201526519985a5b195960d21b60248201526020816044815f516020617d9f5f395f51905f525afa9081156131c8575f916139f4575b50151590565b90506020813d602011613a1e575b81613a0f6020938361329f565b810103126107e057515f6139ee565b3d9150613a02565b6020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e057815190613a5a82613531565b92613a68604051948561329f565b82845260208085019360051b8201019182116107e057602001915b818310613a905750505090565b8251600a8110156107e057815260209283019201613a83565b9091906001600160a01b038116613abf84613674565b51604051906348bd7dfd60e01b825260048201525f60248201525f60448201525f8160648183865af180156131c857613aff915f91613ca1575b50613e25565b15935f5b8151811015613c9957613b168183613691565b516040519063ecbbc03360e01b825260048201525f8160248183885af180156131c85787915f91613bee575b5060019291613be891613b67876001600160a01b03613b6084613674565b5116613ebc565b613b7a87868060a01b03613b6084613681565b613bb282613b888689613691565b51878060a01b03613b9885613674565b5116888060a01b03613ba986613681565b5116918c613ffe565b613bbc8487613691565b5190858060a01b03613bcd82613681565b511690613bdf878060a01b0391613674565b51169189613ffe565b01613b03565b9150503d805f833e613c00818361329f565b8101906020818303126107e0578051906001600160401b0382116107e057019080601f830112156107e0578151613c3681613531565b91613c44604051938461329f565b81835260208084019260051b8501019081116107e05760208a9401905b808210613c72575050506001613b42565b8151945090916001600160a01b03851685036107e0576020818c9682935201920190613c61565b505050509050565b613cb591503d805f833e610b1e818361329f565b5f613af9565b60405190613cc882613284565b815f81525f60208201526040805191613ce083613269565b5f83525f60208401520152565b613d0d906020613d0282518286015190613548565b935191015190613548565b90808203613d1b5750505f90565b1115613d2657600190565b5f1990565b5f516020617d9f5f395f51905f523b156107e0576040519063fe74f05b60e01b82526004820152600160248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b5f613d859161329f565b565b5f516020617d9f5f395f51905f523b156107e05760405190636d83fe6960e11b825260048201525f60248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b905f516020617d9f5f395f51905f523b156107e0576040519163260a5b1560e21b8352600483015260248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b5f5b8151811015613e5a57613e3a8183613691565b51600a81101561397757600514613e5357600101613e27565b5050600190565b50505f90565b5f5b8151811015613e5a57613e758183613691565b51600a81101561397757600914613e5357600101613e62565b5f5b8151811015613e5a57613ea38183613691565b51600a81101561397757600814613e5357600101613e90565b60405190602082019263095ea7b360e01b845260018060a01b0316928360248401525f19604484015260448352613ef460648461329f565b82516001600160a01b038316915f91829182855af190613f12615850565b82613f72575b5081613f67575b5015613f2a57505050565b613f62613d85936040519063095ea7b360e01b602083015260248201525f604482015260448152613f5c60648261329f565b8261587f565b61587f565b90503b15155f613f1f565b80519192508115918215613f8a575b5050905f613f18565b613f9d92506020809183010191016138c2565b5f80613f81565b60405190613fb360608361329f565b603682527536103a3790383934b1b29030b33a32b91039bbb0b81760511b6040837f45786563757465642070726963652073686f756c64206265206f72206571756160208201520152565b6101809182526101c09490945260405163549387df60e11b8152905160048201526001600160a01b038083166024830152831660448201529192915f8180606481016101608490520381836001600160a01b0388165af180156131c85761406c915f916157e7575b50613674565b516101405260606101a08190526040516140c99161408a908261329f565b602381527f53656c6c206c696d69742073686f756c6420626520677265617465722074686160208201526206e20360ec1b604082015261014051615942565b6101a051505f806141536141816040516140e66101a0518261329f565b603681527f544553543a2054657374696e672070726963657320666f722070616972202573602082015275080b4f88095ccb8814d95b1b081b1a5b5a5d0e88095960521b6040820152604051928391638ef3f39960e01b60208401526080602484015260a4830190613302565b6001600160a01b0387811660448401528916606483015261014051608483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506040516348bd7dfd60e01b81526101805160048201526001600160a01b038083166024830152841660448201525f8180606481010381836001600160a01b0388165af180156131c8576141f0915f916157cd575b50613e60565b916040519261420060a08561329f565b600484526080366020860137156157c0575f5b61421c84613674565b526103e8610140510461422e84613681565b5282516002101561344c576101a05183016101405160011c905282516003101561344c576080830161014051905260405163155adc9160e31b81525f818061427f87898861018051600486016137d5565b0381836001600160a01b0387165af19081156131c8575f916157a6575b506142af6142a982613674565b5161358d565b81515f1981019190821161355b576142cd6142a96143289385613691565b6101a05160405192906142e0908461329f565b603083527f5072696365206174206c696d69742073686f756c6420626520736d616c6c657260208401526f0207468616e20707269636520617420360841b60408401526159a9565b6143346142a982613674565b81515f19810190811161355b576143d16143ea5f936143576142a9869588613691565b6101a05160405192919061436b908461329f565b602d83527f544553543a20507269636520617420303a2025642c207072696365206174207360208401526c195b1b081b1a5b5a5d0e880959609a1b604084015260405194859363ca47c4eb60e01b60208601526101a05160248601526084850190613302565b916044840152606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506101a05160405161445191614414908261329f565b602581527f544553543a2054657374696e67206265686176696f7220666f72207072696365602082015264020617420360dc1b60408201526159de565b6144a461445d82613674565b515160406101e081905280519190614475908361329f565b601882527f4e6f6d696e61746f722073686f756c646e2774206265203000000000000000006020830152615942565b6144f660206144b283613674565b5101516101e051805191906144c7908361329f565b601a82527f44656e6f6d696e61746f722073686f756c646e277420626520300000000000006020830152615942565b6145026142a982613674565b610120526101e05180516145459161451a908261329f565b6014815273151154d50e88141c9a58d948185d080c0e88095960621b60208201526101205190615a22565b61454d613cbb565b5083515f19810190811161355b576145659085613691565b51600581810204810361355b575f806101e0515160208101906370a0823160e01b82523060248201526024815261459d60448261329f565b5190875afa506145ae6102b7615850565b50601180546001600160a01b0319166001600160a01b038616179055600f805463ffffffff19166370a08231179055600e54600160401b8110156131d3576103048160016145ff9301600e55613434565b905560018060a01b0360115416600f5460e01b6010549061461e615b82565b6001600160a01b0384165f908152600d60205260409020909163ffffffff60e01b1690815f526020526101e0515f206101e05151602081019061466681610383888886615b6b565b5190205f5260205260ff60036101e0515f2001541615615798575b6001600160a01b0384165f908152600d60205260409020905f526020526103836146be6101e0515f20936101e05151928391602083019586615b6b565b5190205f526020526101e0515f2060018101549260028201546146e1818661383c565b61567d575b82546101e05151630667f9d760e41b81526001600160a01b038616600482015260248101829052959091906020876044815f516020617d9f5f395f51905f525afa96871561563c575f97615649575b506001908201610100031b5f1901811b1986165f516020617d9f5f395f51905f523b156107e0576101e051516370ca10bb60e01b81526001600160a01b038716600482015260248101939093526005840290911b1760448201525f81606481835f516020617d9f5f395f51905f525af1801561563c57615627575b50600f5460e01b602061480260246147c8600d615c5c565b6101e051519384918183019663ffffffff60e01b1687528051918291018484015e810161016051838201520301601f19810183528261329f565b60115461016051915191928392916001600160a01b03165afa60c052614826615850565b6010546001600160fb1b0381168103614e67576101605160a0819052825161010091909152602081111561561e57506020610100525b6101605160e0525b6101005160e051106155ac57505060c0511590811561559c575b506154aa5750505061488e61687f565b6101e05151634b88b8ad60e11b8152602081600481610160515f516020617d9f5f395f51905f525af18015614dcf5761016051608052615477575b5060015b8451811015614e9f575f8061498a6149b06148e785613460565b506148f2868b613691565b5161499c610e136149626101e051519461490f6101a0518761329f565b603086527f544553543a2054657374696e67206265686176696f7220666f7220707269636560208701526f1030ba1012b99037b3103634b6b4ba1760811b6101e0518701526101e05151928380926134b0565b6101e05151635821efa160e01b60208201526101a05160248201529586946084860190613302565b84810360231901604486015290613302565b90606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa506149d26142a98284613691565b5f80614a4a614a6f6149e4868b613691565b516101e05151906149f86101e0518361329f565b601782527f544553543a205377617070696e67202564206f6620257300000000000000000060208301526101e0515193849263038fd88960e31b60208501526101a05160248501526084840190613302565b60448301919091526001600160a01b038b16606483015203601f19810183528261329f565b6020815191016a636f6e736f6c652e6c6f675afa50614add6080614a938489613691565b516101e05151638307c65560e01b81526101805160048201526001600160a01b03808a1660248301528b1660448201525f60648201526084810191909152918290819060a4820190565b03816101605160018060a01b038a165af1908115614dcf576101605191614e81575b508051806a084595161401484a0000008102046a084595161401484a0000001481151715614e6757614b4c614b58916a084595161401484a000000614b44878c613691565b51910261356f565b916101e051015161358d565b91614b9e826101e05151614b6f6101e0518261329f565b601d81527f544553543a20202d2045786563757465642070726963653a20202025640000006020820152615a22565b614be3816101e05151614bb46101e0518261329f565b601d81527f544553543a20202d20507269636520617420616d6f756e743a202025640000006020820152615a22565b614c28836101e05151614bf96101e0518261329f565b601d81527f544553543a20202d20507269636520616674657220737761703a2025640000006020820152615a22565b6101c05115614ddf576101a0516101e05151614d6994614d08939092614c9b929190614c54908361329f565b602c82527f50726963652073686f756c642062652067726561746564207468616e2065786560208301526b31baba32b210383934b1b29760a11b6101e05183015285615a65565b6101a0516101e051519190614cb0908361329f565b603782527f45786563757465642070726963652073686f756c64206265206772656174657260208301527f207468616e20707269636520616674657220737761702e0000000000000000006101e051830152836159a9565b6101a0516101e051519190614d1d908361329f565b602e82527f50726963652073686f756c642062652067726561746564207468616e2070726960208301526d31b29030b33a32b91039bbb0b81760911b6101e051830152610120516159a9565b6101e0515190631135fc2960e21b82526080516004830152602082602481610160515f516020617d9f5f395f51905f525af1918215614dcf57600192614db1575b50016148cd565b614dc89060203d811161063257610623818361329f565b505f614daa565b6101e051513d61016051823e3d90fd5b614e0490614dfc614e6294614df2613fa4565b9061012051615a65565b614df2613fa4565b6101e0515190614e176101a0518361329f565b602d82527f50726963652073686f756c64206265206f7220657175616c20746f207072696360208301526c329030b33a32b91039bbb0b81760991b6101e05183015261012051615a65565b614d69565b634e487b7160e01b61016051526011600452602461016051fd5b614e99915060803d811161066b5761065d818361329f565b5f614aff565b505091506069610140510261014051810460691461014051151715614e67576101e051516348bd7dfd60e01b815261016080516101805160048401526001600160a01b0385811660248501528781166044850152915160649485900496949192849291839187165af18015614dcf57614f2291610160519161545a575b50613e8e565b1561531157614f8d836101e05151614f3d6101a0518261329f565b603681527f544553543a2054657374696e6720726576657274206265686176696f722061626020820152751bdd99481d1a19481cd95b1b081b1a5b5a5d0e88095960521b6101e051820152615a22565b6101e05180519390614f9f908561329f565b600184526101e051601f1901366020860137614fba84613674565b526101e0515163155adc9160e31b8152610160518180614fe387898861018051600486016137d5565b03816101605160018060a01b0387165af190816152f6575b5061528957600161500a615a9a565b6308c379a0146151f8575b614dcf5761507593615028608094613674565b516101e05151638307c65560e01b81526101805160048201526001600160a01b0394851660248201529390911660448401525f6064840152608483015290928391908290819060a4820190565b61016051919003926001600160a01b03165af190816151db575b5061517857600161509e615a9a565b6308c379a0146150f2575b614dcf575b613d856101e051516150c36101e0518261329f565b601781527f544553543a20416c6c207465737473207061737365642e00000000000000000060208201526159de565b6150fa615ab5565b80615106575b506150a9565b610160516101a0516101e05151919350615172929190615126908261329f565b603281527f544553543a204578706563746564206572726f72207768656e207377617070696020820152716e672061626f7665206c696d69743a20257360701b6101e051820152615b27565b5f615100565b6101e0515162461bcd60e51b815260206004820152603360248201527f506f6f6c2073686f756c646e27742062652061626c6520746f20737761702061604482015272189bdd99481d1a19481cd95b1b081b1a5b5a5d606a1b6064820152608490fd5b6151f39060803d60801161066b5761065d818361329f565b61508f565b615200615ab5565b8061520c575b50615015565b610160516101a0516101e0515191935061528392919061522c908261329f565b603881527f544553543a204578706563746564206572726f72207768656e2066657463686960208201527f6e672070726963652061626f7665206c696d69743a20257300000000000000006101e051820152615b27565b5f615206565b6101e0515162461bcd60e51b815260206004820152603b60248201527f506f6f6c2073686f756c646e27742062652061626c6520746f2066657463682060448201527f7072696365732061626f7665207468652073656c6c206c696d697400000000006064820152608490fd5b61530c903d8061016051833e611023818361329f565b614ffb565b6101a0516101e051519394936153799186919061532e908261329f565b603181527f544553543a2054657374696e67206f7065726174696f6e732061626f766520746020820152701a19481cd95b1b081b1a5b5a5d0e880959607a1b6101e051820152615a22565b6101e0518051949061538b908661329f565b600185526101e051601f19013660208701376153a685613674565b526101e051519263155adc9160e31b84526101605184806153d088858861018051600486016137d5565b03816101605160018060a01b0387165af18015614dcf576153fc956080956150289261543f5750613674565b61016051919003926001600160a01b03165af18015614dcf57615420575b506150ae565b6154389060803d60801161066b5761065d818361329f565b505f61541a565b615455903d8061016051833e611023818361329f565b614066565b61547191503d8061016051833e610b1e818361329f565b5f614f1c565b6020813d6020116154a2575b816154906020938361329f565b810103126107e057516080525f6148c9565b3d9150615483565b54915f516020617d9f5f395f51905f523b15615595576101e051516370ca10bb60e01b8152610160516001600160a01b039093166004820152602481019390935260448301528180606481010381610160515f516020617d9f5f395f51905f525af18015614dcf5761557a575b6101e0515162461bcd60e51b815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a204661696044820152723632b2103a37903bb934ba32903b30b63ab29760691b6064820152608490fd5b610160516155879161329f565b610160516155955780615517565b6101605180fd5b905060050260a05114155f61487e565b6155bb60e0518260051b61383c565b825181101561560457602060ff60f81b91840101511660e05160e05160031b0460081460e051151715614e675760e05160031b1c60a0511760a052600160e0510160e052614864565b634e487b7160e01b61016051526032600452602461016051fd5b6101005261485c565b5f6156319161329f565b5f610160525f6147b0565b6101e051513d5f823e3d90fd5b9096506020813d602011615675575b816156656020938361329f565b810103126107e057519581614735565b3d9150615658565b615687818661383c565b61010003610100811161355b5760ff811161355b576101e0515163348051d760e11b81526001821b60048201525f816024815f516020617d9f5f395f51905f525afa91821561563c57615747606a6020946001945f9161577e575b506101e051519586915f516020617ddf5f395f51905f52828401525f516020617d7f5f395f51905f526101e05184015269030ba32b9103a3430b7160b51b6101a0518401528051918291018484015e81015f838201520301601f19810185528461329f565b1b83600502101561575857506146e6565b6101e0515162461bcd60e51b8152602060048201529081906108f7906024830190613302565b61579291503d805f833e610910818361329f565b5f6156e2565b6157a0615fb5565b50614681565b6157ba91503d805f833e611023818361329f565b5f61429c565b6127106101405104614213565b6157e191503d805f833e610b1e818361329f565b5f6141ea565b6157fb91503d805f833e610cb3818361329f565b5f614066565b905f516020617d9f5f395f51905f523b156107e05760405191638466f41560e01b8352600483015260248201525f816044815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b3d1561587a573d90615861826135c7565b9161586f604051938461329f565b82523d5f602084013e565b606090565b81516158aa926001600160a01b03909216915f91829160200182855af16158a4615850565b91615efa565b805190816158b6575050565b6020806158c79383010191016138c2565b156158ce57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6135c49392606092825260208201528160408201520190613302565b5f516020617d9f5f395f51905f523b156107e05761598a915f916040519384928392636cd1e26960e11b84526004840152846024840152606060448401526064830190613302565b03815f516020617d9f5f395f51905f525afa80156131c857613d7b5750565b905f516020617d9f5f395f51905f523b156107e0575f9161598a6040519485938493636cd1e26960e11b855260048501615926565b5f610383615a0b829360405192839163104c13eb60e21b6020840152602060248401526044830190613302565b6020815191016a636f6e736f6c652e6c6f675afa50565b615a51615a0b5f93928493604051938492632d839cb360e21b6020850152604060248501526064840190613302565b90604483015203601f19810183528261329f565b905f516020617d9f5f395f51905f523b156107e0575f9161598a6040519485938493630389490b60e61b855260048501615926565b5f9060033d11615aa657565b905060045f803e5f5160e01c90565b5f60443d106135c4576040513d600319016004823e8051913d60248401116001600160401b03841117615b2157828201928351916001600160401b038311615b19573d84016003190185840160200111615b1957506135c49291016020019061329f565b949350505050565b92915050565b615b59615a0b5f93926103838594604051948593634b5c427760e01b6020860152604060248601526064850190613302565b83810360231901604485015290613302565b60209291908391805192839101825e019081520190565b615b8d601454613478565b615c4a576040519081826020600e549283815201600e5f5260205f20925f5b818110615c31575050615bc19250038361329f565b81518060051b908082046020149015171561355b57615bdf816135c7565b90615bed604051928361329f565b808252615bfc601f19916135c7565b013660208301375f5b8351811015615c2c5780615c1b60019286613691565b5160208260051b8501015201615c05565b509150565b8454835260019485019487945060209093019201615bac565b6040516135c481610e138160146134b0565b6007810190615c6b8254613478565b615d2757600191500190604051808360208295549384815201905f5260205f20925f5b818110615d0e575050615ca39250038361329f565b81518060051b908082046020149015171561355b57615cc1816135c7565b90615ccf604051928361329f565b808252615cde601f19916135c7565b013660208301375f5b8351811015615c2c5780615cfd60019286613691565b5160208260051b8501015201615ce7565b8454835260019485019487945060209093019201615c8e565b506135c4610e1391604051928380926134b0565b5f806020600f5460e01b615d896024615d54600d615c5c565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f19810184528361329f565b6011549151916001600160a01b03165afa90615da3615850565b601054909290600581901b906001600160fb1b0381160361355b575f938051602081115f14615e2e57506020905b5f925b828410615de357505050509190565b90919295615df1878361383c565b835181101561344c57830160200151600388901b91906001600160f81b031916881560088a850414171561355b576001921c179601929190615dd4565b90615dd1565b905f806020600285015460e01b615e4f6024615d5488615c5c565b60048601549151916001600160a01b03165afa6003615e6c615850565b930154600581901b906001600160fb1b0381160361355b575f938051602081115f14615ef457506020905b5f925b828410615ea957505050509190565b90919295615eb7878361383c565b835181101561344c57830160200151600388901b91906001600160f81b031916881560088a850414171561355b576001921c179601929190615e9a565b90615e97565b90615f1e5750805115615f0f57805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615f4f575b615f2f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615f27565b9080601f830112156107e0578151615f6f81613531565b92615f7d604051948561329f565b81845260208085019260051b8201019283116107e057602001905b828210615fa55750505090565b8151815260209182019101615f98565b601154600f546010546001600160a01b03909216915f9160e01b615fd9600d615c5c565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061601281610383888886615b6b565b5190205f5260205260ff600360405f2001541661683e575f516020617d9f5f395f51905f523b156107e05760405163266cf10960e01b81525f81600481835f516020617d9f5f395f51905f525af180156131c857616829575b50616076600d615e34565b90506040516365bc948160e01b81528660048201528581602481835f516020617d9f5f395f51905f525af19081156106725786916167c1575b50805161612057608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b855b81518110156167b95781602061613b8361616c95613691565b51604051630667f9d760e41b81526001600160a01b038c166004820152602481019190915293849081906044820190565b03815f516020617d9f5f395f51905f525afa9283156167ae57889361677b575b508215616723575b61619e8282613691565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020617d9f5f395f51905f525afa908115616718578b916166e7575b506161f9600d615e34565b91909382155f146166e0575f19905b5f516020617d9f5f395f51905f523b156166c7576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020617d9f5f395f51905f525af1801561664c57908d916166cb575b5050616279600d615e34565b601154909491506001600160a01b03165f516020617d9f5f395f51905f523b156166c7576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020617d9f5f395f51905f525af180156166bc57908c916166a3575b505082616698575b50501561668e578793889360ff60135416616513575b6001868601610100031b5f1901851b16841c8103616505575090616393917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808b896103836163688d604051928391602083019586615b6b565b5190206163758686613691565b51906040519283528a602084015260408301526060820152a1613691565b51906040519060808201928284106001600160401b038511176131d35760039360405282526020820193845260408201908152606082019360018552898952600d60205260408920868a526020526040892060405160208101906163fc816103838d8d86615b6b565b5190208a526020526040892092518355516001830155516002820155019051151560ff801983541691161790555b848452600d6020526040842081855260205260408420604051602081019061645781610383888886615b6b565b519020855260205260ff600360408620015416156164a8576040948452600d60205284842090845260205261038361649c858520938651928391602083019586615b6b565b51902082526020522090565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b935091506001905b01616122565b945061655e93506165248383613691565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020617d9f5f395f51905f525afa94851561213e578a9561665b575b5061658a86600d616998565b95909661659881600d616a71565b60115490939192906001600160a01b03165f516020617d9f5f395f51905f523b15616657576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020617d9f5f395f51905f525af1801561664c57908d91616633575b50508761662b575b50949561630d57509350915060019061650d565b96505f616617565b8161663d9161329f565b616648578b5f61660f565b8b80fd5b6040513d8f823e3d90fd5b8e80fd5b9094506020813d8211616686575b816166766020938361329f565b810103126107e05751935f61657e565b3d9150616669565b915060019061650d565b141590505f806162f7565b816166ad9161329f565b6166b8578a5f6162ef565b8a80fd5b6040513d8e823e3d90fd5b8d80fd5b816166d59161329f565b616648578b5f61626d565b8c90616208565b90506020813d8211616710575b816167016020938361329f565b810103126107e057515f6161ee565b3d91506166f4565b6040513d8d823e3d90fd5b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a56167736167518484613691565b51604080516001600160a01b038e168152602081019290925290918291820190565b0390a1616194565b9092506020813d82116167a6575b816167966020938361329f565b810103126107e05751915f61618c565b3d9150616789565b6040513d8a823e3d90fd5b50505061642a565b90503d8087833e6167d2818361329f565b81016040828203126107ac5781516001600160401b03811161682557816167fa918401615f58565b916020810151906001600160401b0382116168215761681a929101615f58565b505f6160af565b8880fd5b8780fd5b6168369194505f9061329f565b5f925f61606b565b91939092505f52600d60205260405f20905f5260205261038361687060405f2093604051928391602083019586615b6b565b5190205f5260205260405f2090565b6bffffffffffffffffffffffff60a01b6011541660115563ffffffff19600f5416600f55600e545f600e5580616956575b505f60105560ff19601354166013556168ca601454613478565b806168d25750565b601f81116001146168e457505f601455565b60145f52601f0160051c7fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec017fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed5b81811061694b57505060145f525f602081208160145555565b5f8155600101616932565b600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd908101905b81811061698d57506168b0565b5f8155600101616980565b91905f5b61010081106169af57505090505f905f90565b8060ff0360ff811161355b576004850154600190911b906001600160a01b03165f516020617d9f5f395f51905f523b156107e0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020617d9f5f395f51905f525af180156131c857616a61575b50616a3b84615e34565b81616a57575b50616a4e5760010161699c565b92505060019190565b905015155f616a41565b5f616a6b9161329f565b5f616a31565b91905f5b6101008110616a8857505090505f905f90565b60048401546001821b906001600160a01b03165f516020617d9f5f395f51905f523b156107e0576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020617d9f5f395f51905f525af180156131c857616b24575b50616b0784615e34565b81616b1a575b50616a4e57600101616a75565b905015155f616b0d565b5f616b2e9161329f565b5f616afd56fe60a034606857601f61124a38819003918201601f19168301916001600160401b03831184841017606c57808492602094604052833981010312606857516001600160a01b038116908190036068576080526040516111c990816100818239608051816106930152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806323eeca011461066457806348bd7dfd1461058d5780638307c65514610527578063a9270fbe146103fe578063aad6e488146101ae5763ecbbc0331461005b575f80fd5b346101aa5760203660031901126101aa5760405161007a60608261090d565b6002815260208101604036823760043560601c604051630dfe168160e01b8152602081600481855afa918215610182576004926020925f9161018d575b506100c186610994565b6001600160a01b03909116905260405163d21220a760e01b815292839182905afa908115610182575f91610153575b506100fc8392936109a1565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610131575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610123565b610175915060203d60201161017b575b61016d818361090d565b810190610975565b5f6100f0565b503d610163565b6040513d5f823e3d90fd5b6101a49150833d851161017b5761016d818361090d565b5f6100b7565b5f80fd5b346101aa5760803660031901126101aa576101c7610877565b6101cf61088d565b6064359067ffffffffffffffff82116101aa57366023830112156101aa578160040135916101fc8361092f565b9261020a604051948561090d565b8084526024602085019160051b830101913683116101aa57602401905b8282106103ee5750505081519261023d8461092f565b9361024b604051958661090d565b80855261025a601f199161092f565b015f5b8181106103cb57506004926060928435841c92506001600160a01b039182169116101561037f57604051630240bc6b60e21b815292839182905afa8015610182575f915f9161034d575b505b5f5b83518110156102fc57806102e06102c4600193876109b1565b516001600160701b038516906001600160701b03871690610e3b565b6102ea82886109b1565b526102f581876109b1565b50016102ab565b846040518091602082016020835281518091526020604084019201905f5b818110610328575050500390f35b825180518552602090810151818601528695506040909401939092019160010161031a565b9050610371915060603d606011610378575b610369818361090d565b8101906109f1565b50846102a7565b503d61035f565b604051630240bc6b60e21b815292839182905afa8015610182575f915f916103a9575b50906102a9565b90506103c4915060603d60601161037857610369818361090d565b50846103a2565b6020906040516103da816108dd565b5f81525f838201528282890101520161025d565b8135815260209182019101610227565b346101aa57600461040e366108a3565b6040519391606090610420828761090d565b60028652816020870195601f198201368837604051630240bc6b60e21b81529586918290841c5afa91821561018257600a945f915f946104fa575b50506001600160701b03928316939216916001600160a01b03908116911610156104db5782900461048b85610994565b5204610496836109a1565b52905b604051918291602083019060208452518091526040830191905f5b8181106104c2575050500390f35b82518452859450602093840193909201916001016104b4565b908290046104e885610994565b52046104f3836109a1565b5290610499565b6001600160701b039450849250908161051e92903d1061037857610369818361090d565b5093909161045b565b346101aa5760a03660031901126101aa57610540610877565b61054861088d565b6064359160028310156101aa576080926105689260843592600435610a27565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101aa5761059b366108a3565b5050506040516105ac60a08261090d565b6004815260208101608036823760016105c483610994565b5260026105d0836109a1565b5281516002101561065057600360608301528151600310156106505760096080830152604051906020820192602083525180935260408201905f935b8085106106195783830384f35b9091825190600a82101561063c576020816001938293520193019401939061060c565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b346101aa5760403660031901126101aa5760043561068460243582610947565b60405163574f2ba360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929190602081600481875afa80156101825783915f91610842575b5082116107de575b6106e791610968565b6107096106f38261092f565b91610701604051938461090d565b80835261092f565b602082019290601f19013684375f5b825181101561079a5761072b8183610947565b9060405191631e3dd18b60e01b83526004830152602082602481895afa8015610182576001925f9161077c575b5060601b6bffffffffffffffffffffffff191661077582866109b1565b5201610718565b610794915060203d811161017b5761016d818361090d565b87610758565b8383604051918291602083019060208452518091526040830191905f5b8181106107c5575050500390f35b82518452859450602093840193909201916001016107b7565b505060405163574f2ba360e01b8152602081600481865afa80156101825782905f9061080c575b91506106de565b50506020813d60201161083a575b816108276020938361090d565b810103126101aa57816106e79151610805565b3d915061081a565b9150506020813d60201161086f575b8161085e6020938361090d565b810103126101aa57829051856106d6565b3d9150610851565b602435906001600160a01b03821682036101aa57565b604435906001600160a01b03821682036101aa57565b60609060031901126101aa57600435906024356001600160a01b03811681036101aa57906044356001600160a01b03811681036101aa5790565b6040810190811067ffffffffffffffff8211176108f957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b67ffffffffffffffff81116108f95760051b60200190565b9190820180921161095457565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161095457565b908160209103126101aa57516001600160a01b03811681036101aa5790565b8051156106505760200190565b8051600110156106505760400190565b80518210156106505760209160051b010190565b604051906109d2826108dd565b5f6020838281520152565b51906001600160701b03821682036101aa57565b908160609103126101aa57610a05816109dd565b916040610a14602084016109dd565b92015163ffffffff811681036101aa5790565b9493905f604051966060880188811067ffffffffffffffff8211176108f9576040525f88525f6020890152604051610a5e816108dd565b5f81525f60208201526040890152878415610cda575060601c946001600160a01b03948516948316948510948515610c8557604051630240bc6b60e21b815296606088600481845afa8015610182575f985f91610c5f575b5097965b5a93600281101561063c57898989921598895f14610c445750509083610af66001600160701b03610afe94166001600160701b038d16846110d6565b953390610fe6565b15610bd057803b15610bcc5760405163022c0d9f60e01b81525f6004820181905260248201849052336044830152608060648301526084820152908490829060a490829084905af18015610bc157908491610ba8575b505090610b66915b89525b5a90610968565b60208801525015610b8e576001600160701b0380610b879416921690610e3b565b6040830152565b50610b87916001600160701b038086519216921690610e3b565b81610bb29161090d565b610bbd57825f610b54565b8280fd5b6040513d86823e3d90fd5b8380fd5b80939291933b156101aa5760405163022c0d9f60e01b8152600481018590525f6024820181905233604483015260806064830152608482018190529091829060a490829084905af1801561018257610c2e575b50610b669192610b5c565b610b6692505f610c3d9161090d565b5f91610c23565b610b66979650610c58959491929394610d02565b8952610b5f565b9050610c7b91985060603d60601161037857610369818361090d565b509790975f610ab6565b604051630240bc6b60e21b81529596606087600481845afa8015610182575f975f91610cb4575b509697610aba565b9050610cd091975060603d60601161037857610369818361090d565b509690965f610cac565b9750505050505050565b8115610cee570490565b634e487b7160e01b5f52601260045260245ffd5b94919092610d1e906001600160701b03805f9716911684610f01565b948515610e1e576001600160a01b0390811693610d419187918691339116610fe6565b15610dbd57813b15610bbd5760405163022c0d9f60e01b81525f600482018190526024820192909252336044820152608060648201526084810191909152908290829060a490829084905af18015610db257610d9c57505090565b610da782809261090d565b610daf575090565b80fd5b6040513d84823e3d90fd5b9150803b156101aa5760405163022c0d9f60e01b815260048101929092525f60248301819052336044840152608060648401526084830181905290829060a490829084905af1801561018257610e11575090565b5f610e1b9161090d565b90565b5050505050505f90565b8181029291811591840414171561095457565b919091610e466109c5565b5082158015610ef9575b610eb357610e6c82610e66610e729486856110d6565b90610968565b92610947565b6103e58202918083046103e51490151715610954576103e88102908082046103e814901517156109545760405191610ea9836108dd565b8252602082015290565b60405163643c60f360e01b815260206004820152601d60248201527f4174206c65617374206f6e652072657365727665206973207a65726f210000006044820152606490fd5b508115610e50565b91908215610fdf578015610fa5578115610f6a5782610f1f91610e28565b916103e88302928084046103e8149015171561095457610f3e91610968565b6103e58102908082046103e5149015171561095457610f5c91610ce4565b600181018091116109545790565b60405163643c60f360e01b8152602060048201526012602482015271726573657276654f7574206973207a65726f60701b6044820152606490fd5b60405163643c60f360e01b815260206004820152601160248201527072657365727665496e206973207a65726f60781b6044820152606490fd5b5050505f90565b6040516323b872dd60e01b602082019081526001600160a01b039384166024830152939092166044830152606480830194909452928152915f91829161102d60848661090d565b60018060a01b031693519082855af13d156110ca573d67ffffffffffffffff81116108f95761107e916040519161106e6020601f19601f840116018461090d565b82523d5f602084013e5b83611135565b80519081151591826110a6575b50506110945750565b635274afe760e01b5f5260045260245ffd5b81925090602091810103126101aa57602001518015908115036101aa575f8061108b565b61107e90606090611078565b91908215610fdf5780159182801561112d575b610eb3576103e584029384046103e503610954576111079084610e28565b916103e882029182046103e814171561095457610e1b9261112791610947565b90610ce4565b5080156110e9565b90611159575080511561114a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061118a575b61116a575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561116256fea2646970667358221220b2e7f8fbccc13285e349f8b239b13d9153a3383fc98985279c83c306cd63f78464736f6c634300081b00336b656420736c6f742e2057652063616e2774206669742076616c7565206772650000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873746453746f726167652066696e642853746453746f72616765293a20506163a2646970667358221220e5e83294d6ade400fc2ee5c0515769ba39a8d091b5e40c9154838cf2c49a24d664736f6c634300081b0033","sourceMap":"304:5711:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:3;304:5711;;-1:-1:-1;;694:3:77;;;304:5711;694:3;;;304:5711;4475:13;4490:19;694:3;4490:19;;;;304:5711;;;;;;;:::i;:::-;694:3;304:5711;;;;;;;;;4677:13;;;4692:19;694:3;4692:19;;;;5012:13;;5379;5027:23;694:3;5027:23;;;;304:5711;;;5052:3;5080:9;;;;:::i;:::-;;304:5711;5379:13;694:3;;;;;;;;5226:53;5108:13;:30;5217:66;5108:13;;5379;5108;;;;:::i;:::-;;304:5711;5108:30;;:::i;:::-;5181:21;694:3;5162:9;;;;:::i;:::-;;:17;304:5711;694:3;5181:13;;;;:::i;:::-;;:21;304:5711;5181:21;;:::i;:::-;304:5711;5259:13;5226:9;;;;;:::i;:::-;;:15;;694:3;5259:13;;:::i;:::-;;:19;;5226:53;;:::i;:::-;694:3;;5217:66;:::i;:::-;694:3;5012:13;;694:3;-1:-1:-1;;;523:5:65;;6854:12:8;304:5711:77;523:5:65;27501:38:3;304:5711:77;523:5:65;4713:3:77;304:5711;;-1:-1:-1;;;4745:13:77;;304:5711;694:3;304:5711;;;4745:13;-1:-1:-1;;;;;;;;;;;4745:13:77;;;;;;;;;;;4713:3;4799:10;;;;;:::i;:::-;304:5711;;;;;694:3;27501:38:3;;1590:14:0;;;;27501:38:3;;4792:4:77;27501:38:3;;;304:5711:77;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;:::-;694:3:77;304:5711;;;27568:30:3;;;;;;:::i;:::-;;6854:22:8;;:::i;:::-;27524:10:3;304:5711:77;;7009:9:8;304:5711:77;;;7009:9:8;304:5711:77;7505:10:8;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;5379:13;304:5711;;;7505:10:8;304:5711:77;;:::i;:::-;4792:4;;;;304:5711;;;;;;;;;2868:17;;;304:5711;;;;;;;;;;6854:12:8;304:5711:77;7009:9:8;304:5711:77;15610:11:8;304:5711:77;;;-1:-1:-1;;;;;304:5711:77;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;15703:15:8;;304:5711:77;;;;;;;;694:3;304:5711;;;;;;694:3;15735:37:8;;;;;;;;;;:::i;:::-;;694:3:77;;15735:37:8;;;;;;:::i;:::-;304:5711:77;15725:48:8;;304:5711:77;;694:3;304:5711;;15610:11:8;304:5711:77;;;15703:77:8;304:5711:77;;15702:78:8;15698:126;;4713:3:77;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;;;;694:3;304:5711;15889:37:8;;304:5711:77;;;;;;15889:37:8;;;694:3:77;15889:37:8;;;;;:::i;:::-;304:5711:77;15879:48:8;;304:5711:77;;694:3;304:5711;;;;5379:13;15943:15:8;;304:5711:77;15961:16:8;7009:9;15961:16;;304:5711:77;15943:34:8;;;;:::i;:::-;15938:460;;4713:3:77;304:5711;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;304:5711:77;;;16424:32:8;;304:5711:77;;;;;;;;;;;694:3;304:5711;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4713:3:77;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;304:5711:77;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;304:5711:77;;;16587:43:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;;;12656:92:8;;;;12810:59;;;304:5711:77;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4713:3:77;16678:31:8;;;;:::i;:::-;16724:8;;;304:5711:77;;;16724:29:8;;4713:3:77;16720:176:8;;;;14785:4;;;;;;:::i;:::-;694:3:77;1590:14:0;;4824:50:77;;694:3;-1:-1:-1;;;;;304:5711:77;4863:10;;;;:::i;:::-;304:5711;;;-1:-1:-1;;;4824:50:77;;-1:-1:-1;;;;;304:5711:77;;;;4824:50;;304:5711;;;;;;;;;;;;;;;4824:50;;;;-1:-1:-1;;;;;;;;;;;4824:50:77;;;;;;;;4713:3;-1:-1:-1;694:3:77;1590:14:0;304:5711:77;;4901:48;;;;-1:-1:-1;;;;;304:5711:77;4938:10;;;;:::i;:::-;304:5711;;;1590:14:0;;;;;;;;;4901:48:77;;5379:13;304:5711;4901:48;;;:::i;:::-;;;;;;;;;;;;;;4713:3;4889:60;;;;;:::i;:::-;;;;;;:::i;:::-;;304:5711;;1590:14:0;;;;4963:23:77;;304:5711;4963:23;;304:5711;694:3;4963:23;27501:38:3;4963:23:77;;-1:-1:-1;;;;;;;;;;;4963:23:77;;;;;;;5379:13;4963:23;;;4713:3;;694;4677:13;;4963:23;;;694:3;4963:23;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;304:5711;;1590:14:0;304:5711:77;;1590:14:0;;;;4901:48:77;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;304:5711;;1590:14:0;304:5711:77;;1590:14:0;;;;4824:50:77;;;694:3;4824:50;;;;;;;;;:::i;:::-;;;16720:176:8;304:5711:77;;;;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;304:5711:77;;-1:-1:-1;;;16769:41:8;;-1:-1:-1;;;;;304:5711:77;;;;;16769:41:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;12810:59:8;;;304:5711:77;;;;;12810:59:8;304:5711:77;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;304:5711:77;;-1:-1:-1;;;16824:61:8;;694:3:77;304:5711;16824:61:8;;12810:59;;27501:38:3;12810:59:8;;304:5711:77;12810:59:8;27501:38:3;304:5711:77;;12810:59:8;-1:-1:-1;;;694:3:77;12810:59:8;;;16824:61;;;16769:41;;;;;;:::i;:::-;304:5711:77;;16769:41:8;;;304:5711:77;;;16769:41:8;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;16769:41:8;304:5711:77;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;304:5711:77;;16587:43:8;;;;304:5711:77;;;;16587:43:8;304:5711:77;;;16424:32:8;;;;;694:3:77;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;1590:14:0;-1:-1:-1;304:5711:77;;16424:32:8;;;-1:-1:-1;16424:32:8;;;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;15938:460:8;16028:34;;;;;;;;;:::i;:::-;16021:3;694::77;16021::8;694::77;;;;304:5711;;;;;;;-1:-1:-1;;;16314:19:8;;5379:13:77;304:5711;;;;16314:19:8;;304:5711:77;;;16314:19:8;;304:5711:77;27501:38:3;304:5711:77;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;694:3:77;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;15938:460;304:5711:77;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;304:5711:77;12810:59:8;;;-1:-1:-1;;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;12810:59:8;;;304:5711:77;;;;;;;;16170:185:8;;694:3:77;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;12810:59;304:5711:77;;-1:-1:-1;;;12810:59:8;;694:3:77;304:5711;12810:59:8;;304:5711:77;;;;;;27501:38:3;304:5711:77;;;;:::i;:::-;12810:59:8;;;16314:19;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;304:5711:77;;;1590:14:0;;;;;;;;304:5711:77;-1:-1:-1;;;523:5:65;;6854:12:8;304:5711:77;523:5:65;27501:38:3;304:5711:77;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;27501:38:3;304:5711:77;;4745:13;;;;694:3;4745:13;;;;;;;;;1590:14:0;4745:13:77;;;:::i;:::-;;;1590:14:0;;;;;4745:13:77;;;;;;;-1:-1:-1;4745:13:77;;304:5711;694:3;304:5711;;;:::i;:::-;;;;;;;;;;4511:3;523:5:65;4543:4:77;523:5:65;4543:4:77;523:5:65;;;;;;;;;;;;;4554:7:77;523:5:65;;;;;;;4530:31:77;5379:13;4530:31;;;;;:::i;:::-;304:5711;694:3;4475:13;;523:5:65;-1:-1:-1;;;523:5:65;;;304:5711:77;523:5:65;;304:5711:77;523:5:65;304:5711:77;;;;;;;;;;;;;;;1016:26:12;304:5711:77;;;;;;;;;;;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;1590:14:0;304:5711:77;;-1:-1:-1;;;5516:37:77;;304:5711;;;5516:37;;;304:5711;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;5516:37;;;;;;;;;;;304:5711;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;304:5711:77;;1590:14:0;;;;2349:24:1;;304:5711:77;2349:24:1;;304:5711:77;;;;;;2349:24:1;;304:5711:77;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;304:5711:77;;2349:24:1;;;;;:::i;:::-;304:5711:77;;2349:24:1;304:5711:77;2349:24:1;304:5711:77;;5516:37;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;304:5711;;;;;;;;;;;;;;;;;;;;;;2421:18:5;304:5711:77;;;;;;;2421:18:5;304:5711:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:7;1590:14:0;304:5711:77;;-1:-1:-1;;;5725:35:77;;-1:-1:-1;;;304:5711:77;5725:35;;304:5711;-1:-1:-1;;;;;;;;;;;304:5711:77;;;;456:42;304:5711;;;;;;;;;;5725:35;;304:5711;;-1:-1:-1;;;;;304:5711:77;5725:35;;;;;;;;;;;304:5711;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;304:5711:77;;1590:14:0;;;;2349:24:1;;304:5711:77;2349:24:1;;304:5711:77;5795:1;304:5711;;;;2349:24:1;;304:5711:77;2349:24:1;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;304:5711:77;;5725:35;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;304:5711;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2273:18:5;304:5711:77;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2273:18:5;304:5711:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;;;860:68;304:5711;;;;;1590:14:0;304:5711:77;;;;1590:14:0;;;1275:35:77;;304:5711;;;;1275:35;;304:5711;-1:-1:-1;;;;;;;;;;;304:5711:77;;;;456:42;304:5711;;;;1275:35;;;;;;;;;;;;;;;;304:5711;1340:9;;;;:::i;:::-;304:5711;1330:19;;-1:-1:-1;;;;;;;;;;;1320:30:77;;;;304:5711;;1590:14:0;;;;1320:30:77;;304:5711;1320:30;;304:5711;1320:30;;304:5711;1320:30;-1:-1:-1;;;;;;;;;;;1320:30:77;;;;;;;;;;;304:5711;1380:9;;;;;:::i;:::-;304:5711;1370:19;;-1:-1:-1;;;;;;;;;;;1360:30:77;;;;304:5711;;1590:14:0;;;;1360:30:77;;304:5711;1360:30;;304:5711;1360:30;;304:5711;1360:30;-1:-1:-1;;;;;;;;;;;1360:30:77;;;;;;;;304:5711;;;;;1542:40;304:5711;;;;;;;;:::i;:::-;1442:1;304:5711;;694:3;304:5711;;694:3;;304:5711;1454:20;;;:::i;:::-;304:5711;1484:20;;;:::i;:::-;304:5711;;;1590:14:0;;;;;;;;1542:40:77;;304:5711;1542:40;;;:::i;:::-;;;;;;;;;;;;;;304:5711;1598:13;;1632:3;304:5711;;1613:17;;;;;1660:9;1651:32;1660:9;304:5711;1660:9;;;:::i;:::-;;304:5711;1651:32;:::i;:::-;1697:34;304:5711;1706:9;;;;:::i;:::-;;:21;304:5711;1697:34;:::i;:::-;694:3;1598:13;;1613:17;;304:5711;;1542:40;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1360:30;;;;;;:::i;:::-;304:5711;;1360:30;;;;304:5711;;1590:14:0;304:5711:77;;1590:14:0;;;;1320:30:77;;;;;:::i;:::-;304:5711;;1320:30;;;;1275:35;;;;;;;;;;;;;:::i;:::-;;;;304:5711;;;;;;;-1:-1:-1;;304:5711:77;;;;;;534:59:65;304:5711:77;534:59:65;;;;;;;;:::i;:::-;304:5711:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;3190:18:5;304:5711:77;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3190:18:5;304:5711:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;860:68;304:5711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;1590:14:0;;;-1:-1:-1;;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;1590:14:0;304:5711:77;1590:14:0;304:5711:77;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:5;304:5711:77;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2707:18:5;304:5711:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;;;;;;;;;2451:38;;;304:5711;2451:38;304:5711;1590:14:0;304:5711:77;;-1:-1:-1;;;2583:35:77;;-1:-1:-1;;;304:5711:77;2583:35;;304:5711;-1:-1:-1;;;;;;;;;;;304:5711:77;;;;456:42;304:5711;;;;;;;;;2583:35;;304:5711;;-1:-1:-1;;;;;304:5711:77;2583:35;;;;;;;;;;;2451:38;304:5711;;;;;;;2633:21;304:5711;2633:21;;2629:534;;;2633:21;;;2698:9;;;:::i;:::-;304:5711;2680:27;;-1:-1:-1;;;;;;;;;;;2670:38:77;;;;304:5711;;1590:14:0;;;;2670:38:77;;304:5711;2670:38;;304:5711;2670:38;;304:5711;2670:38;-1:-1:-1;;;;;;;;;;;2670:38:77;;;;;;;;2629:534;304:5711;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;2861:4:77;304:5711;27501:38:3;;304:5711:77;;27501:38:3;;;304:5711:77;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;304:5711:77;;7009:9:8;304:5711:77;;;7009:9:8;304:5711:77;7505:10:8;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;;;;;7505:10:8;304:5711:77;;:::i;:::-;;;860:68;304:5711;;;;6854:12:8;304:5711:77;;7009:9:8;304:5711:77;;1590:14:0;15610:11:8;304:5711:77;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;15703:15:8;;304:5711:77;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;304:5711:77;15725:48:8;;304:5711:77;;;;;15610:11:8;304:5711:77;;;15703:77:8;304:5711:77;;15702:78:8;15698:126;;2629:534:77;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;;;;;;15889:37:8;;304:5711:77;;;;;;15889:37:8;;;304:5711:77;15889:37:8;;;;;:::i;:::-;304:5711:77;15879:48:8;;304:5711:77;;;;;;;;15943:15:8;304:5711:77;15943:15:8;;304:5711:77;15961:16:8;304:5711:77;15961:16:8;;304:5711:77;15943:34:8;;;;:::i;:::-;15938:460;;304:5711:77;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;304:5711:77;;;16424:32:8;;304:5711:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2629:534:77;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;304:5711:77;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;304:5711:77;;;16587:43:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;-1:-1:-1;;304:5711:77;;;12656:92:8;12810:59;;;304:5711:77;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2629:534:77;16678:31:8;;;;:::i;:::-;16724:8;;304:5711:77;;;16724:29:8;;2629:534:77;16720:176:8;;;14785:4;;;;;;:::i;:::-;304:5711:77;1590:14:0;;304:5711:77;;-1:-1:-1;;;2900:57:77;;-1:-1:-1;;;;;304:5711:77;;;;2900:57;;304:5711;-1:-1:-1;;304:5711:77;;;;;;;;2900:57;-1:-1:-1;;;;;;;;;;;2900:57:77;;;;;;;;2629:534;;;304:5711;;-1:-1:-1;;;3196:37:77;;3227:4;304:5711;3196:37;;304:5711;;;;;;-1:-1:-1;;;;;;;;;;;3196:37:77;;;;;;;;;;;2629:534;-1:-1:-1;304:5711:77;;-1:-1:-1;;;3266:37:77;;3227:4;304:5711;3266:37;;304:5711;;;;;;456:42;3266:37;;;;;;;;;;;2629:534;304:5711;3347:53;304:5711;3347:53;304:5711;860:68;304:5711;;;;;1590:14:0;304:5711:77;;;;;1590:14:0;;;;;;;;;3347:53:77;;304:5711;3347:53;;;:::i;:::-;;;;;;;;;;;;;;2629:534;304:5711;;;3411:753;;304:5711;;;3411:753;3461:21;;;304:5711;;-1:-1:-1;;;3569:37:77;;3227:4;304:5711;3569:37;;304:5711;;;;;456:42;3569:37;;;;;;;;;;;3457:697;3569:52;;;;;;:::i;:::-;;;:::i;:::-;304:5711;;;-1:-1:-1;;;3746:37:77;;3227:4;304:5711;3746:37;;304:5711;;;;;-1:-1:-1;;;;;;;;;;;3746:37:77;;;;;;;;;;;3457:697;3731:52;;;;;;:::i;:::-;3411:753;;;;;304:5711;;;3746:37;;;304:5711;3746:37;;304:5711;3746:37;;;;;;1590:14:0;3746:37:77;;;:::i;:::-;;;1590:14:0;;;;;3731:52:77;3746:37;;;;;-1:-1:-1;3746:37:77;;3569;;;304:5711;3569:37;;304:5711;3569:37;;;;;;1590:14:0;3569:37:77;;;:::i;:::-;;;1590:14:0;;;;;3569:52:77;:37;;;;;-1:-1:-1;3569:37:77;;3457:697;304:5711;;-1:-1:-1;;;3922:37:77;;3227:4;304:5711;3922:37;;304:5711;;;;;;;;-1:-1:-1;;;;;;;;;;;3922:37:77;;;;;;;;;;;3457:697;3907:52;;;;;;:::i;:::-;304:5711;;;-1:-1:-1;;;4069:37:77;;3227:4;304:5711;4069:37;;304:5711;;;;;456:42;4069:37;;;;;;;;;;;3457:697;4069:52;;;;;;:::i;:::-;3457:697;;4069:37;;;304:5711;4069:37;;304:5711;4069:37;;;;;;1590:14:0;4069:37:77;;;:::i;:::-;;;1590:14:0;;;;;4069:52:77;:37;;;;;-1:-1:-1;4069:37:77;;3922;;;304:5711;3922:37;;304:5711;3922:37;;;;;;1590:14:0;3922:37:77;;;:::i;:::-;;;1590:14:0;;;;;3907:52:77;3922:37;;;;;-1:-1:-1;3922:37:77;;3347:53;;;;;;;;;;;;;;;:::i;:::-;;;;;3266:37;;;;304:5711;3266:37;;304:5711;3266:37;;;;;;1590:14:0;3266:37:77;;;:::i;:::-;;;1590:14:0;;;;;;3266:37:77;;3347:53;3266:37;;;;;-1:-1:-1;3266:37:77;;3196;;;;304:5711;3196:37;;304:5711;3196:37;;;;;;1590:14:0;3196:37:77;;;:::i;:::-;;;1590:14:0;;;;;3196:37:77;;;;;;;-1:-1:-1;3196:37:77;;2900:57;;;304:5711;2900:57;304:5711;2900:57;;;;;;;:::i;:::-;;;;;16724:29:8;-1:-1:-1;;16736:17:8;;;-1:-1:-1;2868:17:77;16724:29:8;;16587:43;;;;;:::i;:::-;304:5711:77;;16587:43:8;;;;;304:5711:77;;;16424:32:8;;;;;304:5711:77;16424:32:8;;304:5711:77;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;:::i;:::-;16021:3;694::77;16021::8;694::77;;;;304:5711;;;;;;;-1:-1:-1;;;16314:19:8;;304:5711:77;;;;;16314:19:8;;304:5711:77;16314:19:8;304:5711:77;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;12810:59;304:5711:77;16314:19:8;;16170:185;16314:19;304:5711:77;16314:19:8;;;;15938:460;304:5711:77;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;304:5711:77;12810:59:8;;;-1:-1:-1;;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;12810:59:8;;;304:5711:77;;;;;;;;16170:185:8;;694:3:77;;16170:185:8;;;;;;:::i;:::-;304:5711:77;;-1:-1:-1;;;12810:59:8;;304:5711:77;;12810:59:8;;304:5711:77;;;;;;;;;:::i;16314:19:8:-;;;;;;;;;;;;;;:::i;:::-;;;;;304:5711:77;-1:-1:-1;;;523:5:65;;6854:12:8;304:5711:77;523:5:65;304:5711:77;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;;2670:38;;;;;:::i;:::-;304:5711;;2670:38;;;;2629:534;3016:9;;;:::i;:::-;304:5711;2998:27;;-1:-1:-1;;;;;;;;;;;2988:38:77;;;;304:5711;;1590:14:0;;;;2988:38:77;;304:5711;2988:38;;304:5711;2988:38;;304:5711;2988:38;-1:-1:-1;;;;;;;;;;;2988:38:77;;;;;;;;2629:534;304:5711;;;;;27501:38:3;;1590:14:0;;;;27501:38:3;;3060:4:77;304:5711;27501:38:3;;304:5711:77;;27501:38:3;;;304:5711:77;27501:38:3;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;304:5711:77;;7009:9:8;304:5711:77;;;7009:9:8;304:5711:77;7505:10:8;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;;;;;7505:10:8;304:5711:77;;:::i;:::-;;;860:68;304:5711;;;;6854:12:8;304:5711:77;;7009:9:8;304:5711:77;;1590:14:0;15610:11:8;304:5711:77;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;15703:15:8;;304:5711:77;;;;;;;;;;;;;;;;15735:37:8;;;;;;;;;;:::i;:::-;304:5711:77;15725:48:8;;304:5711:77;;;;;15610:11:8;304:5711:77;;;15703:77:8;304:5711:77;;15702:78:8;15698:126;;2629:534:77;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;;;;;;15889:37:8;;304:5711:77;;;;;;15889:37:8;;;304:5711:77;15889:37:8;;;;;:::i;:::-;304:5711:77;15879:48:8;;304:5711:77;;;;;;;;15943:15:8;304:5711:77;15943:15:8;;304:5711:77;15961:16:8;304:5711:77;15961:16:8;;304:5711:77;15943:34:8;;;;:::i;:::-;15938:460;;2629:534:77;304:5711;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;304:5711:77;;;16424:32:8;;304:5711:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;2629:534:77;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;304:5711:77;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;304:5711:77;;;16587:43:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;;;12656:92:8;;;;12810:59;;;304:5711:77;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;2629:534:77;16678:31:8;;;;;:::i;:::-;16724:8;;;304:5711:77;;;16724:29:8;;2629:534:77;16720:176:8;;;;14785:4;;;;;;:::i;:::-;304:5711:77;1590:14:0;;304:5711:77;;-1:-1:-1;;;3097:55:77;;-1:-1:-1;;;;;304:5711:77;;;;3097:55;;304:5711;;;;;;;;;;;3097:55;-1:-1:-1;;;;;;;;;;;3097:55:77;;;;;;;;2629:534;;;;3097:55;;;304:5711;3097:55;304:5711;3097:55;;;;;;;:::i;:::-;;;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;304:5711:77;;16587:43:8;;;;16424:32;;;;;304:5711:77;16424:32:8;;304:5711:77;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;:::i;:::-;16021:3;694::77;16021::8;694::77;;;;304:5711;;;;;;;-1:-1:-1;;;16314:19:8;;304:5711:77;;;;;16314:19:8;;304:5711:77;;;16314:19:8;304:5711:77;;;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;12810:59;16170:185;16314:19;304:5711:77;16314:19:8;;;;;15938:460;304:5711:77;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;304:5711:77;12810:59:8;;;-1:-1:-1;;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;12810:59:8;;;304:5711:77;;;;;;;;16170:185:8;;694:3:77;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;16314:19;;;-1:-1:-1;16314:19:8;;;;;;;;;:::i;:::-;;;;;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;304:5711:77;-1:-1:-1;;;523:5:65;;6854:12:8;304:5711:77;523:5:65;304:5711:77;;523:5:65;15698:126:8;13208:33;;:::i;:::-;;15698:126;;2988:38:77;;;;;:::i;:::-;304:5711;;2988:38;;;;304:5711;-1:-1:-1;;;304:5711:77;;;;;;;;2583:35;;;;;;;;;;;;;:::i;:::-;;;;2451:38;;;;304:5711;;;;;;;;;;;;;2883:26:5;304:5711:77;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2883:26:5;304:5711:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;860:68;304:5711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;304:5711:77;1590:14:0;304:5711:77;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;;;;;;1590:14:0;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:3;304:5711;;-1:-1:-1;;694:3:77;304:5711;694:3;;;304:5711;1932:13;;1947:19;694:3;1947:19;;;;-1:-1:-1;694:3:77;1590:14:0;304:5711:77;;-1:-1:-1;;;2066:40:77;;304:5711;;;-1:-1:-1;;;;;304:5711:77;;;;;;2066:40;;304:5711;2066:40;;;:::i;:::-;;;;;;;;;;;;;;1927:102;2122:13;;2137:23;694:3;2137:23;;;;304:5711;;;2162:3;2190:9;;;;:::i;:::-;;694:3;;;;;;;;;;2306:13;2217;2181:54;2190:41;2297:38;2217:13;;694:3;2217:13;;;;:::i;:::-;;2190:41;;:::i;:::-;694:3;;2181:54;:::i;:::-;2249:34;2258:9;;;;;:::i;2249:34::-;2306:13;;:::i;2297:38::-;694:3;2122:13;;2066:40;;;;;;;;;;;;;:::i;:::-;;;;1968:3;523:5:65;;;2000:4:77;523:5:65;2000:4:77;523:5:65;;;;;;;;;;;;;2011:7:77;523:5:65;;;;;;;1987:31:77;694:3;1987:31;;;;;:::i;:::-;304:5711;694:3;1932:13;;;;523:5:65;-1:-1:-1;;;523:5:65;;;304:5711:77;523:5:65;;304:5711:77;523:5:65;304:5711:77;;;;;;;;;;;;;;;;;;3038:18:5;304:5711:77;;;;;;;3038:18:5;304:5711:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:5;304:5711:77;;;;;;;3331:16:5;304:5711:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3485:19:5;304:5711:77;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3485:19:5;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:68;304:5711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;860:68;304:5711;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:5;304:5711:77;;;;;;;2563:16:5;304:5711:77;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5968:38;304:5711;;;;;;:::i;:::-;5901:1;304:5711;;;;;;;;-1:-1:-1;;;5913:45:77;;;:::i;:::-;304:5711;;1590:14:0;-1:-1:-1;;;;;304:5711:77;5968:38;:::i;304:5711::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:3;304:5711;;-1:-1:-1;;694:3:77;;;304:5711;694:3;;;304:5711;4475:13;4490:19;694:3;4490:19;;;;304:5711;;;;;;;:::i;:::-;694:3;304:5711;;;;;;;;;4677:13;;;4692:19;694:3;4692:19;;;;5012:13;;694:3;5027:23;694:3;5027:23;;;;304:5711;;;5052:3;5080:9;;;;:::i;:::-;;304:5711;694:3;;;;;;;;;5226:53;5108:13;:30;5217:66;5108:13;;694:3;5108:13;;;;:::i;5217:66::-;694:3;5012:13;;4713:3;304:5711;;-1:-1:-1;;;4745:13:77;;304:5711;694:3;304:5711;;;4745:13;-1:-1:-1;;;;;;;;;;;4745:13:77;;;;;;;;;;;4713:3;4799:10;;;;;:::i;:::-;304:5711;;;;;694:3;27501:38:3;;1590:14:0;;;;27501:38:3;;4792:4:77;27501:38:3;;;304:5711:77;27501:38:3;;;;;;;:::i;:::-;27484:56;;-1:-1:-1;;;;;;;;;;;27484:56:3;;;27568:30;27484:56;;:::i;27568:30::-;;6854:22:8;;:::i;:::-;27524:10:3;304:5711:77;;7009:9:8;304:5711:77;;;7009:9:8;304:5711:77;7505:10:8;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;694:3;304:5711;;;7505:10:8;304:5711:77;;:::i;:::-;;;6854:12:8;304:5711:77;7009:9:8;304:5711:77;15610:11:8;304:5711:77;;;-1:-1:-1;;;;;304:5711:77;;;1590:14:0;15653:34:8;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;15703:15:8;;304:5711:77;;;;;;;;694:3;304:5711;;;;;;694:3;15735:37:8;;;;;;;;;;:::i;:::-;304:5711:77;15725:48:8;;304:5711:77;;694:3;304:5711;;15610:11:8;304:5711:77;;;15703:77:8;304:5711:77;;15702:78:8;15698:126;;4713:3:77;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;;;;694:3;304:5711;15889:37:8;;304:5711:77;;;;;;15889:37:8;;;694:3:77;15889:37:8;;;;;:::i;:::-;304:5711:77;15879:48:8;;304:5711:77;;694:3;304:5711;;;;694:3;15943:15:8;;304:5711:77;15961:16:8;7009:9;15961:16;;304:5711:77;15943:34:8;;;;:::i;:::-;15938:460;;4713:3:77;304:5711;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;304:5711:77;;;16424:32:8;;304:5711:77;;;;;;;;;;;694:3;304:5711;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;;;;;4713:3:77;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;16587:43;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;304:5711:77;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;304:5711:77;;;16587:43:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;;;12656:92:8;;;;12810:59;;;304:5711:77;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;;;;;;;;4713:3:77;16678:31:8;;;;:::i;:::-;16724:8;;;304:5711:77;;;16724:29:8;;4713:3:77;16720:176:8;;;;14785:4;;;;;;:::i;:::-;694:3:77;1590:14:0;;4824:50:77;;694:3;-1:-1:-1;;;;;304:5711:77;4863:10;;;;:::i;4824:50::-;;;;-1:-1:-1;;;;;;;;;;;4824:50:77;;;;;;;;4713:3;-1:-1:-1;694:3:77;1590:14:0;304:5711:77;;4901:48;;;;-1:-1:-1;;;;;304:5711:77;4938:10;;;;:::i;:::-;304:5711;;;1590:14:0;;;;;;;;;4901:48:77;;;304:5711;4901:48;;;:::i;:::-;;;;;;;;;;;;;;4713:3;4889:60;;;;;:::i;:::-;;;;;;:::i;:::-;;304:5711;;1590:14:0;;;;4963:23:77;;304:5711;4963:23;;304:5711;694:3;4963:23;27501:38:3;4963:23:77;;-1:-1:-1;;;;;;;;;;;4963:23:77;;;;;;;694:3;4963:23;;;4713:3;;694;4677:13;;4963:23;;;694:3;4963:23;;;;;;;;;:::i;:::-;;;;;4901:48;;;;;;;;;;;;;;:::i;:::-;;;;4824:50;;;694:3;4824:50;;;;;;;;;:::i;:::-;;;16724:29:8;16736:17;;;-1:-1:-1;16724:29:8;;;;16587:43;;;;;:::i;:::-;304:5711:77;;16587:43:8;;;;16424:32;;;;;694:3:77;16424:32:8;;;;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;;;;;;:::i;:::-;16021:3;694::77;16021::8;694::77;;;;304:5711;;;;;;;-1:-1:-1;;;16314:19:8;;694:3:77;304:5711;;;;16314:19:8;;304:5711:77;;;16314:19:8;;304:5711:77;27501:38:3;304:5711:77;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;694:3:77;16314:19:8;;12810:59;16314:19;16170:185;16314:19;;;;304:5711:77;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;304:5711:77;12810:59:8;;;-1:-1:-1;;;304:5711:77;12810:59:8;;;304:5711:77;;;;;;12810:59:8;;;304:5711:77;;;;;;;;16170:185:8;;694:3:77;;16170:185:8;;;;;;:::i;:::-;16103:21;;12810:59;;;15938:460;;;;;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;4745:13:77;;;;694:3;4745:13;;;;;;;;;1590:14:0;4745:13:77;;;:::i;:::-;;;1590:14:0;;;;;4745:13:77;;;;;;;-1:-1:-1;4745:13:77;;304:5711;694:3;304:5711;;;:::i;:::-;;;;;;;;;;4511:3;523:5:65;4543:4:77;523:5:65;4543:4:77;523:5:65;;;;;;;;;;;;;4554:7:77;523:5:65;;;;;;;4530:31:77;694:3;4530:31;;;;;:::i;:::-;304:5711;694:3;4475:13;;304:5711;;;;;;;-1:-1:-1;;304:5711:77;;;;;;-1:-1:-1;;;796:20:77;;1590:14:0;304:5711:77;796:20;;1590:14:0;;;;;304:5711:77;-1:-1:-1;;;304:5711:77;;;1590:14:0;-1:-1:-1;304:5711:77;796:20;304:5711;-1:-1:-1;;;;;;;;;;;796:20:77;;;;;;;1590:14:0;796:20:77;1590:14:0;796:20:77;304:5711;796:20;;;304:5711;;;;1590:14:0;;;;;;;776:52:77;;304:5711;;776:52;;1590:14:0;304:5711:77;1590:14:0;;;;:::i;:::-;758:8:77;1590:14:0;;;304:5711:77;776:52;;304:5711;-1:-1:-1;;;;;;;;;;;776:52:77;;;;;;;;304:5711;;;;860:68;;;;;;;;-1:-1:-1;;;;;860:68:77;;;;;1590:14:0;860:68:77;;;;;;885:42;304:5711;;860:68;;;304:5711;860:68;;;;;1590:14:0;;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;304:5711:77;;;;1590:14:0;;;;;-1:-1:-1;;;;;;;;;;;939:50:77;;;;304:5711;;1590:14:0;;;;939:50:77;;304:5711;939:50;;304:5711;;1590:14:0;;;;;304:5711:77;1590:14:0;;304:5711:77;-1:-1:-1;;;796:20:77;304:5711;;1590:14:0;304:5711:77;939:50;;;;-1:-1:-1;;;;;;;;;;;939:50:77;;;;;;;;304:5711;999:22;-1:-1:-1;;;;;;;;;;;999:22:77;;;;304:5711;;;1590:14:0;;;999:22:77;;456:42;304:5711;999:22;;304:5711;;1590:14:0;456:42:77;;;304:5711;;456:42;;304:5711;-1:-1:-1;;;796:20:77;304:5711;;456:42;999:22;;939:50;999:22;;-1:-1:-1;;;;;;;;;;;999:22:77;;;;;;;;304:5711;1031:22;;-1:-1:-1;;;;;;;;;;;1031:22:77;;;;304:5711;;;1590:14:0;;;1031:22:77;;-1:-1:-1;;;;;;;;;;;304:5711:77;1031:22;;304:5711;;1590:14:0;528:42:77;;;304:5711;;528:42;;304:5711;-1:-1:-1;;;796:20:77;304:5711;;528:42;1031:22;;939:50;1031:22;;-1:-1:-1;;;;;;;;;;;1031:22:77;;;;;;;;304:5711;1063:42;;-1:-1:-1;;;;;;;;;;;1063:42:77;;;;304:5711;;;1590:14:0;;;1063:42:77;;610;304:5711;1063:42;;304:5711;;1590:14:0;610:42:77;;;;304:5711;610:42;;304:5711;-1:-1:-1;;;796:20:77;304:5711;;610:42;1063;;939:50;1063:42;;-1:-1:-1;;;;;;;;;;;1063:42:77;;;;;;;;304:5711;;1031:22;;;;;:::i;:::-;304:5711;;1031:22;;;;999;;;;;:::i;:::-;304:5711;;999:22;;;;939:50;;;;304:5711;939:50;;:::i;:::-;304:5711;939:50;;;;304:5711;;1590:14:0;304:5711:77;1590:14:0;;;;;860:68:77;304:5711;;;;;;;;1590:14:0;304:5711:77;;776:52;1590:14:0;776:52:77;;1590:14:0;776:52:77;;;;;;1590:14:0;776:52:77;;;:::i;:::-;;;1590:14:0;;;;;776:52:77;;;;;-1:-1:-1;776:52:77;;796:20;;;;;;304:5711;796:20;;;;;;:::i;:::-;;;;304:5711;;;;;;-1:-1:-1;;304:5711:77;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;:::o;:::-;;;694:3;;304:5711;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;-1:-1:-1;;304:5711:77;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;860:68;304:5711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7505:10:8;304:5711:77;;;;;;7505:10:8;-1:-1:-1;304:5711:77;;-1:-1:-1;304:5711:77;;;-1:-1:-1;304:5711:77;:::o;:::-;;;;;;;;;;;;;534:59:65;304:5711:77;;;;;;534:59:65;-1:-1:-1;304:5711:77;;-1:-1:-1;304:5711:77;;;-1:-1:-1;304:5711:77;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;304:5711:77;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;;;;:::o;523:5:65:-;;;;;;;;;;;;;;;;:::o;:::-;304:5711:77;;;523:5:65;;;;;;;;;;;;;;;:::o;:::-;304:5711:77;;;523:5:65;;;;;;;;8534:180;304:5711:77;;523:5:65;;;;;;;;;;;;;;;8690:17;8655:52;8690:17;;304:5711:77;8655:52:65;;:::i;:::-;8534:180;:::o;1590:14:0:-;-1:-1:-1;;;;;1590:14:0;;;;304:5711:77;;-1:-1:-1;;304:5711:77;1590:14:0;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;:::i;:::-;304:5711:77;;;;;;;:::i;:::-;1590:14:0;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;304:5711:77;;;;;1590:14:0;:::o;:::-;;;;;;;;;;;:::o;:::-;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;;;;;;;1590:14:0;;;:::o;304:5711:77:-;;;;;;;;;:::o;:::-;;;2641:13;304:5711;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;694:3::-;;;;;;;;;;;304:5711;;;;:::i;:::-;694:3;;;1590:14:0;;;694:3:77;;;1590:14:0;694:3:77;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;694:3:77;;;;;;;;;;;;;;;;;;:::i;:::-;304:5711;;;;;;;:::i;:::-;694:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;304:5711;694:3;;;;;:::i;:::-;;;;;;;;;;;304:5711;694:3;;;304:5711;;;;;;456:42;694:3;;;304:5711;-1:-1:-1;;;;;;;;;;;694:3:77;;;304:5711;694:3;;;;;304:5711;;;;;;;;694:3;;;;;;;;;;;;:::o;:::-;;;304:5711;;694:3;;;;;304:5711;;;;694:3;;;;;304:5711;694:3;;;;;;;304:5711;;;860:68;304:5711;;;;;694:3;;;304:5711;860:68;304:5711;;;;;694:3;;;304:5711;694:3;;;;;304:5711;;;;;;;;694:3;;;;;;;;;;;;:::o;:::-;;;304:5711;;694:3;;;;;304:5711;;;;694:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;304:5711::-;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1590:14:0;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;1590:14:0;;304:5711:77;;;;;1590:14:0;304:5711:77;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;304:5711:77;;-1:-1:-1;;;;;;;;;;;304:5711:77;;;;456:42;304:5711;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;304:5711:77;;;;;-1:-1:-1;304:5711:77;1243:204:1;1302:7;304:5711:77;;;;;;;1325:14:1;:::o;1298:143::-;304:5711:77;;;1590:14:0;;;1377:39:1;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;304:5711:77;192:59:1;;;;;;304:5711:77;192:59:1;1377:39;;;-1:-1:-1;;;;;;;;;;;1377:39:1;;;;;;;304:5711:77;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;1590:14:0;1377:39:1;;;:::i;:::-;;;1590:14:0;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;304:5711:77;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;935:818:65;;;;-1:-1:-1;;;;;304:5711:77;;1126:10:65;935:818;1126:10;:::i;:::-;304:5711:77;;;1590:14:0;;;;1102:59:65;;;;;304:5711:77;1134:1:65;304:5711:77;;;;1134:1:65;304:5711:77;;;;1134:1:65;1102:59;;;;;;;;;;;1075:134;1102:59;1134:1;1102:59;;;935:818;1075:134;;:::i;:::-;1074:135;1224:13;1134:1;1259:3;304:5711:77;;1239:18:65;;;;;1322:10;;;;:::i;:::-;304:5711:77;;;1590:14:0;;;;1304:29:65;;1102:59;1304:29;;304:5711:77;1134:1:65;1304:29;;;;;;;;;;;;;1134:1;1304:29;;;1259:3;-1:-1:-1;1442:1:65;;304:5711:77;1708:14:65;;1396:17;304:5711:77;-1:-1:-1;;;;;1354:9:65;304:5711:77;1354:9:65;:::i;:::-;304:5711:77;;1396:17:65;:::i;:::-;1477;304:5711:77;;;;;;1435:9:65;;;:::i;1477:17::-;1588:14;1554:10;;;;;:::i;:::-;304:5711:77;;;;;;1566:9:65;;;:::i;:::-;304:5711:77;;;;;;;1577:9:65;;;:::i;:::-;304:5711:77;;1588:14:65;;;:::i;:::-;1674:10;;;;:::i;:::-;304:5711:77;;;;;;;1686:9:65;;;:::i;:::-;304:5711:77;;;1697:9:65;304:5711:77;;;;;1697:9:65;;:::i;:::-;304:5711:77;;1708:14:65;;;:::i;:::-;694:3:77;1224:13:65;;1304:29;;;;;;1134:1;1304:29;;;;;;:::i;:::-;;;304:5711:77;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;1175:24:65;304:5711:77;;;;;;;;;;;;;;;;;;;;1304:29:65;;;1442:1;1304:29;;304:5711:77;;;;-1:-1:-1;304:5711:77;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;1239:18:65;;;;;;;935:818::o;1102:59::-;;;;;;1134:1;1102:59;;;;;;:::i;:::-;;;;304:5711:77;;;;;;;:::i;:::-;;-1:-1:-1;304:5711:77;;-1:-1:-1;304:5711:77;;;;;;;;;;;:::i;:::-;-1:-1:-1;304:5711:77;;-1:-1:-1;304:5711:77;;;;;;:::o;426:547:59:-;688:35;426:547;637:17;619:35;304:5711:77;;637:17:59;;;304:5711:77;619:35:59;;:::i;:::-;304:5711:77;;706:17:59;;304:5711:77;688:35:59;;:::i;:::-;769:30;;;;;;801:8;;304:5711:77;801:8:59;:::o;765:201::-;867:29;;;;905:1;898:8;:::o;863:103::-;-1:-1:-1;;2868:17:77;957:9:59:o;2866:108:1:-;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;304:5711:77;;1590:14:0;;;;2943:24:1;;;;;304:5711:77;694:3;304:5711;;;;-1:-1:-1;2943:24:1;;;-1:-1:-1;;;;;;;;;;;2943:24:1;;;;;;;;2866:108;:::o;2943:24::-;-1:-1:-1;2943:24:1;;;:::i;:::-;2866:108::o;13112:110::-;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;304:5711:77;;1590:14:0;;;;13191:24:1;;;;;304:5711:77;;;;;;;13191:24:1;;;-1:-1:-1;;;;;;;;;;;13191:24:1;;;;;;;;13112:110;:::o;2270:::-;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;304:5711:77;;1590:14:0;;;;2349:24:1;;;;;304:5711:77;;;;;-1:-1:-1;2349:24:1;;;-1:-1:-1;;;;;;;;;;;2349:24:1;;;;;;;;2270:110;:::o;8720:323:65:-;304:5711:77;8906:3:65;304:5711:77;;8881:23:65;;;;;8929:15;;;;:::i;:::-;304:5711:77;;;;;;;1175:24:65;8929:29;8925:79;;694:3:77;;8866:13:65;;8925:79;8978:11;;694:3:77;8978:11:65;:::o;8881:23::-;;;304:5711:77;8720:323:65;:::o;:::-;304:5711:77;8906:3:65;304:5711:77;;8881:23:65;;;;;8929:15;;;;:::i;:::-;304:5711:77;;;;;;;2531:24:65;8929:29;8925:79;;694:3:77;;8866:13:65;;8720:323;304:5711:77;8906:3:65;304:5711:77;;8881:23:65;;;;;8929:15;;;;:::i;:::-;304:5711:77;;;;;;;6005:21:65;8929:29;8925:79;;694:3:77;;8866:13:65;;5926:434:58;304:5711:77;;6065:47:58;;;;1590:14:0;;;;6065:47:58;;860:68:77;304:5711;;;;;6065:47:58;;;;;304:5711:77;2868:17;;304:5711;;;;6065:47:58;;;;;;;:::i;:::-;8511:25;;-1:-1:-1;;;;;304:5711:77;;;-1:-1:-1;;;;;304:5711:77;8511:25:58;;;;;:::i;:::-;8553:81;;;5926:434;8553:127;;;;5926:434;6127:45;;6123:231;;5926:434;;;:::o;6123:231::-;6232:43;6330:12;304:5711:77;;;1590:14:0;;;;6065:47:58;6232:43;;;6065:47;6232:43;;304:5711:77;-1:-1:-1;6065:47:58;304:5711:77;;;6065:47:58;6232:43;;;6065:47;6232:43;;:::i;:::-;;;:::i;:::-;6330:12;:::i;8553:127::-;8650:26;;;:30;;8553:127;;;:81;304:5711:77;;;;-1:-1:-1;8577:22:58;;;:56;;;;8553:81;;;;;;;8577:56;8603:30;;;6065:47;8603:30;;;;;;;;:::i;:::-;8577:56;;;;304:5711:77;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;304:5711:77;;;;;;;;;:::o;1911:4479:65:-;;;;;;;;;;304:5711:77;;-1:-1:-1;;;2117:44:65;;;;;;;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;1911:4479:65;;;2117:44;304:5711:77;;;;;2117:44:65;;;;;304:5711:77;2117:44:65;-1:-1:-1;;;;;304:5711:77;;2117:44:65;;;;;;:47;:44;;;;;1911:4479;2117:47;;:::i;:::-;304:5711:77;;;1590:14:0;304:5711:77;1590:14:0;;;304:5711:77;;2174:61:65;;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;2174:61:65;;;:::i;:::-;1590:14:0;;304:5711:77;2117:44:65;304:5711:77;;44640:78:15;304:5711:77;;;1590:14:0;;304:5711:77;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;;44640:78:15;;;;;;1590:14:0;44640:78:15;;;304:5711:77;44640:78:15;;;304:5711:77;;;;;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;44640:78:15;-1:-1:-1;;44640:78:15;;;;;;:::i;:::-;1222:159;304:5711:77;;1222:159:15;;591:42;1222:159;;-1:-1:-1;304:5711:77;;-1:-1:-1;;;2467:50:65;;;;2117:44;2467:50;;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;2117:44:65;304:5711:77;;;;;2467:50:65;304:5711:77;;-1:-1:-1;;;;;304:5711:77;;2467:50:65;;;;;;2440:125;2467:50;2117:44;2467:50;;;1911:4479;2440:125;;:::i;:::-;304:5711:77;;;;;;;;:::i;:::-;2117:44:65;304:5711:77;;694:3;304:5711;1590:14:0;694:3:77;;304:5711;8365:37:65;;;2117:44;8365:37;8352:50;;;:::i;:::-;304:5711:77;8433:4:65;523:5;;;8412:25;;;:::i;:::-;304:5711:77;;;8468:1:65;304:5711:77;;;;1590:14:0;;304:5711:77;;523:5:65;;8420:1;523:5;304:5711:77;;;;8487:1:65;304:5711:77;;;;;;;;;;;;;1590:14:0;;;2822:49:65;;2117:44;2822:49;;;;;;;;2117:44;2822:49;;;:::i;:::-;;304:5711:77;;-1:-1:-1;;;;;304:5711:77;;2822:49:65;;;;;;;2117:44;2822:49;;;8365:37;2917:9;2903:24;2917:9;;;:::i;:::-;;2903:24;:::i;:::-;304:5711:77;;-1:-1:-1;;694:3:77;;;2868:17;694:3;;;;2941:40:65;2955:25;2881:174;2955:25;;;:::i;2941:40::-;1590:14:0;;304:5711:77;;;1590:14:0;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;2881:174:65;:::i;:::-;3152:24;3166:9;;;:::i;3152:24::-;304:5711:77;;-1:-1:-1;;694:3:77;;;;;;;304:5711;12247:66:15;2117:44:65;3204:25;3190:40;3204:25;;;;;:::i;3190:40::-;1590:14:0;;304:5711:77;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;;12247:66:15;;;;;;1590:14:0;12247:66:15;;;1590:14:0;;44640:78:15;12247:66;;304:5711:77;;;;;;:::i;:::-;;;;;;;;;;12247:66:15;694:3:77;;12247:66:15;;;;;;:::i;:::-;1222:159;304:5711:77;;1222:159:15;;591:42;1222:159;;-1:-1:-1;1590:14:0;;304:5711:77;;3251:53:65;;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;3251:53:65;:::i;:::-;3314:60;3323:9;;;:::i;:::-;;304:5711:77;;;1590:14:0;;;304:5711:77;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;3314:60:65;:::i;:::-;3384:64;1590:14:0;3393:9:65;;;:::i;:::-;;:21;304:5711:77;;;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;3384:64:65;:::i;:::-;3480:24;3494:9;;;:::i;3480:24::-;;;304:5711:77;;;;3514:49:65;;304:5711:77;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;304:5711:77;;;3514:49:65;;;;:::i;:::-;304:5711:77;;:::i;:::-;-1:-1:-1;304:5711:77;;-1:-1:-1;;694:3:77;;;;;;;3635:27:65;;;;:::i;:::-;304:5711:77;;523:5:65;;;;;;;;2117:44;304:5711:77;;;;1590:14:0;27501:38:3;;1590:14:0;;;;27501:38:3;;3624:4:65;44640:78:15;27501:38:3;;304:5711:77;44640:78:15;27501:38:3;;;304:5711:77;27501:38:3;;:::i;:::-;27484:56;;;;;;27568:30;27484:56;;:::i;27568:30::-;-1:-1:-1;6854:12:8;1590:14:0;;-1:-1:-1;;;;;;1590:14:0;-1:-1:-1;;;;;304:5711:77;;1590:14:0;;;7009:9:8;304:5711:77;;-1:-1:-1;;304:5711:77;27524:10:3;304:5711:77;;;7505:10:8;304:5711:77;-1:-1:-1;;;304:5711:77;;;;;;;8420:1:65;304:5711:77;;;7505:10:8;304:5711:77;;:::i;:::-;;;860:68;304:5711;;;;6854:12:8;304:5711:77;;7009:9:8;304:5711:77;1590:14:0;;15610:11:8;304:5711:77;15653:34:8;;;:::i;:::-;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;15703:15:8;;304:5711:77;;;;;;2117:44:65;304:5711:77;1590:14:0;304:5711:77;;;2117:44:65;304:5711:77;;;;1590:14:0;15735:37:8;;;;;;;;;;:::i;:::-;304:5711:77;15725:48:8;;2117:44:65;304:5711:77;1590:14:0;304:5711:77;;8487:1:65;304:5711:77;;2117:44:65;304:5711:77;15703:77:8;304:5711:77;;15702:78:8;15698:126;;8365:37:65;-1:-1:-1;;;;;304:5711:77;;;;;;27635:8:3;304:5711:77;;;;;;2117:44:65;304:5711:77;1590:14:0;304:5711:77;15889:37:8;;304:5711:77;;2117:44:65;304:5711:77;;;;;15889:37:8;;;1590:14:0;15889:37:8;;;;;:::i;:::-;304:5711:77;15879:48:8;;2117:44:65;304:5711:77;1590:14:0;304:5711:77;;;2117:44:65;304:5711:77;8420:1:65;15943:15:8;;304:5711:77;15961:16:8;8468:1:65;15961:16:8;;304:5711:77;15943:34:8;;;;:::i;:::-;15938:460;;8365:37:65;304:5711:77;;;;;-1:-1:-1;;;16424:32:8;;-1:-1:-1;;;;;304:5711:77;;2117:44:65;16424:32:8;;304:5711:77;;;;;;;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;;;;;;;;;16424:32:8;;;;;;;2117:44:65;16424:32:8;;;8365:37:65;-1:-1:-1;12275:113:8;;;;;;;-1:-1:-1;;12275:113:8;;;12677:42;12657:62;;-1:-1:-1;;;;;;;;;;;16587:43:8;;;;304:5711:77;;;-1:-1:-1;;;16587:43:8;;-1:-1:-1;;;;;304:5711:77;;2117:44:65;16587:43:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;;523:5:65;;304:5711:77;;;12656:92:8;12810:59;;;304:5711:77;-1:-1:-1;304:5711:77;12810:59:8;304:5711:77;-1:-1:-1;;;;;;;;;;;;16587:43:8;;;;;;;;8365:37:65;-1:-1:-1;7009:9:8;304:5711:77;1590:14:0;;;1364:48:8;44640:78:15;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;304:5711:77;;;1364:48:8;;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;-1:-1:-1;;304:5711:77;;;;1364:48:8;;694:3:77;;1364:48:8;;;;;;:::i;:::-;6854:12;304:5711:77;-1:-1:-1;;1458:29:8;;-1:-1:-1;;;;1458:29:8;-1:-1:-1;;;;;304:5711:77;1458:29:8;;;;;;:::i;:::-;15610:11;304:5711:77;-1:-1:-1;;;;;523:5:65;;;;;;-1:-1:-1;;10974:11:8;;;;304:5711:77;;11010:29:8;;;;;1590:14:0;11010:13:8;;1590:14:0;;;11010:29:8;1590:14:0;11010:29:8;;;-1:-1:-1;;11054:13:8;;11069:7;;;;;;;;-1:-1:-1;;1563:24:8;;16724:8;;304:5711:77;;16724:29:8;;11049:106;16720:176;;;14785:4;;;;;:::i;:::-;304:5711:77;;;1590:14:0;;;3697:13:65;;1590:14:0;2117:44:65;;;;;-1:-1:-1;;;;;;;;;;;3697:13:65;;;;;;2117:44;;3697:13;;;;11049:106:8;-1:-1:-1;8420:1:65;3761:3;304:5711:77;;3741:18:65;;;;;1222:159:15;3878:14:65;304:5711:77;12952:65:15;3878:14:65;;;:::i;:::-;3910:10;;;;;:::i;:::-;304:5711:77;;;;;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1590:14:0;12952:65:15;;;1590:14:0;;44640:78:15;12952:65;;304:5711:77;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;304:5711:77;;;;;;;:::i;:::-;;;;;;12952:65:15;694:3:77;;12952:65:15;;;;;;:::i;:::-;1222:159;304:5711:77;;1222:159:15;;591:42;1222:159;;;3972:24:65;3986:9;;;;:::i;3972:24::-;1222:159:15;4051:10:65;304:5711:77;12771:66:15;4051:10:65;;;;:::i;:::-;304:5711:77;;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;;;;12771:66:15;;;;;;1590:14:0;12771:66:15;;;1590:14:0;;44640:78:15;12771:66;;304:5711:77;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;12771:66:15;-1:-1:-1;;12771:66:15;;;;;;:::i;:::-;1222:159;304:5711:77;;1222:159:15;;591:42;1222:159;;;4093:97:65;304:5711:77;4166:10:65;;;;:::i;:::-;304:5711:77;;;;-1:-1:-1;;;4093:97:65;;;;2117:44;4093:97;;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;;;;;;;;;;;;;4093:97:65;;2117:44;;;860:68:77;304:5711;;;;;;4093:97:65;;;;;;;2117:44;;4093:97;;;3761:3;304:5711:77;;;523:5:65;;;;;;;;;;;;;4244:52;4335:26;4286:10;523:5;4286:10;;;;:::i;:::-;304:5711:77;523:5:65;;4244:52;:::i;:::-;304:5711:77;;;4349:11:65;;4335:26;:::i;:::-;304:5711:77;4375:60:65;304:5711:77;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;4375:60:65;:::i;:::-;4449;304:5711:77;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;4449:60:65;:::i;:::-;4523:61;304:5711:77;;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;4523:61:65;:::i;:::-;4599:1176;;;;;1590:14:0;;304:5711:77;;;5013:164:65;;4819:176;;-1:-1:-1;;4637:164:65;;304:5711:77;-1:-1:-1;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;4637:164:65;;:::i;:::-;1590:14:0;;304:5711:77;;;;1590:14:0;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;;;;;;;4819:176:65;;:::i;:::-;1590:14:0;;304:5711:77;;;;1590:14:0;304:5711:77;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;5013:164:65;;;:::i;:::-;304:5711:77;;;1590:14:0;;;;5789:25:65;;304:5711:77;;2117:44:65;5789:25;;304:5711:77;1590:14:0;2117:44:65;44640:78:15;2117:44:65;;;-1:-1:-1;;;;;;;;;;;5789:25:65;;;;;;;8420:1;5789:25;;;4599:1176;3761:3;694::77;3726:13:65;;5789:25;;;1590:14:0;5789:25:65;;;;;;;;;:::i;:::-;;;;;;304:5711:77;;;1590:14:0;2117:44:65;;1590:14:0;;;;;4599:1176:65;5407:172;304:5711:77;5216:173:65;5597:163;304:5711:77;;;:::i;:::-;5216:173:65;;;;:::i;:::-;304:5711:77;;:::i;5407:172:65:-;304:5711:77;;;1590:14:0;304:5711:77;1590:14:0;;304:5711:77;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;5597:163:65;;;:::i;:::-;4599:1176;;523:5;304:5711:77;;;2117:44:65;;523:5;6854:12:8;2117:44:65;523:5;44640:78:15;2117:44:65;;523:5;4093:97;;;;304:5711:77;4093:97:65;;;;;;;;;:::i;:::-;;;;3741:18;;;;;5873:3;523:5;;;;;;;5873:3;523:5;;;;;;;;304:5711:77;;;-1:-1:-1;;;5941:50:65;;2117:44;;;5941:50;;2117:44;5941:50;;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;2117:44:65;;304:5711:77;523:5:65;;;;;;2117:44;;304:5711:77;;;;;;;5941:50:65;;;;;;5914:122;2117:44;;;5941:50;;;3721:2104;5914:122;;:::i;:::-;;;;6590;304:5711:77;;;;;1590:14:0;;304:5711:77;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;6590:122:65;:::i;:::-;304:5711:77;;;;;;;;;;:::i;:::-;8420:1:65;304:5711:77;;;;-1:-1:-1;;694:3:77;304:5711;1590:14:0;694:3:77;;304:5711;6783:37:65;;;:::i;:::-;304:5711:77;;;;1590:14:0;;;6835:57:65;;2117:44;;6835:57;;;;;;;;2117:44;6835:57;;;:::i;:::-;;2117:44;;;860:68:77;304:5711;;;;;;6835:57:65;;2117:44;;6835:57;;6047:287;-1:-1:-1;6831:346:65;;8420:1;6831:346;;:::i;:::-;;;;;;;;7190:97;6831:346;7259:18;304:5711:77;6831:346:65;7259:18;:::i;:::-;304:5711:77;;;;-1:-1:-1;;;7190:97:65;;;;2117:44;7190:97;;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;;7190:97:65;2117:44;;7190:97;;;;-1:-1:-1;;;;;304:5711:77;7190:97:65;;2117:44;;7190:97;;6831:346;-1:-1:-1;7186:342:65;;8420:1;7186:342;;:::i;:::-;;;;;;;;6047:287;6344:39;304:5711:77;;;;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;6344:39:65;:::i;7186:342::-;7375:153;;:::i;:::-;;;;7186:342;;;;7375:153;2117:44;;1590:14:0;;304:5711:77;;;2117:44:65;;-1:-1:-1;7418:99:65;;2117:44;304:5711:77;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;7418:99:65;:::i;:::-;7375:153;;;7186:342;304:5711:77;;;-1:-1:-1;;;7302:61:65;;1590:14:0;2117:44:65;7302:61;;304:5711:77;;44640:78:15;304:5711:77;;;;;;;;-1:-1:-1;;;304:5711:77;;;;;;7302:61:65;7190:97;;;304:5711:77;7190:97:65;304:5711:77;7190:97:65;;;;;;;:::i;:::-;;;6831:346;7018:159;;:::i;:::-;;;;6831:346;;;;7018:159;2117:44;;1590:14:0;;304:5711:77;;;2117:44:65;;-1:-1:-1;7061:105:65;;2117:44;304:5711:77;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;;;;;;;7061:105:65;:::i;:::-;7018:159;;;6831:346;304:5711:77;;;-1:-1:-1;;;6907:99:65;;1590:14:0;2117:44:65;6907:99;;304:5711:77;;44640:78:15;304:5711:77;;;;;;;;;;;;;;;6907:99:65;6835:57;;;;2117:44;;;6835:57;;;;;;:::i;:::-;;;6047:287;1590:14:0;;304:5711:77;;;-1:-1:-1;;;7738:117:65;;-1:-1:-1;;304:5711:77;;;;;:::i;:::-;;;;;1590:14:0;304:5711:77;;;-1:-1:-1;;;304:5711:77;;;;;7738:117:65;:::i;:::-;304:5711:77;;;;;;;;;;:::i;:::-;8420:1:65;304:5711:77;;;;-1:-1:-1;;694:3:77;304:5711;1590:14:0;694:3:77;;304:5711;7926:37:65;;;:::i;:::-;304:5711:77;;;;1590:14:0;;;;7974:57:65;;2117:44;;7974:57;;;;;;;;2117:44;7974:57;;;:::i;:::-;;2117:44;;;860:68:77;304:5711;;;;;;7974:57:65;;;;;;8041:97;;304:5711:77;;8110:18:65;;7974:57;;8110:18;;:::i;8041:97::-;2117:44;;8041:97;;;;-1:-1:-1;;;;;304:5711:77;8041:97:65;;;;;;;;6047:287;;;;8041:97;;;304:5711:77;8041:97:65;304:5711:77;8041:97:65;;;;;;;:::i;:::-;;;;;7974:57;;;;2117:44;;;7974:57;;;;;;:::i;:::-;;;5941:50;;;;;2117:44;;;5941:50;;;;;;:::i;:::-;;;;3697:13;1590:14:0;3697:13:65;;1590:14:0;3697:13:65;;;;;;1590:14:0;3697:13:65;;;:::i;:::-;;;1590:14:0;;;;;3697:13:65;;;;;;;;-1:-1:-1;3697:13:65;;16720:176:8;304:5711:77;16769:41:8;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;304:5711:77;;;-1:-1:-1;;;16769:41:8;;2117:44:65;;-1:-1:-1;;;;;304:5711:77;;;2117:44:65;16769:41:8;;304:5711:77;12810:59:8;;;304:5711:77;;;;12810:59:8;;;304:5711:77;;;12810:59:8;;;16769:41;2117:44:65;;;-1:-1:-1;;;;;;;;;;;16769:41:8;;;;;;;;16720:176;304:5711:77;;;-1:-1:-1;;;16824:61:8;;1590:14:0;2117:44:65;16824:61:8;;12810:59;304:5711:77;44640:78:15;12810:59:8;;304:5711:77;12810:59:8;304:5711:77;;;12810:59:8;-1:-1:-1;;;304:5711:77;12810:59:8;;;304:5711:77;;16824:61:8;16769:41;2117:44:65;;16769:41:8;;;:::i;:::-;304:5711:77;;;;16769:41:8;;;304:5711:77;2117:44:65;;;304:5711:77;16724:29:8;523:5:65;;304:5711:77;523:5:65;16736:17:8;;;;16724:29;;;11078:3;11114:10;;;523:5:65;304:5711:77;523:5:65;11114:10:8;:::i;:::-;304:5711:77;;;;;;;1590:14:0;304:5711:77;;;;;;;;;523:5:65;;;;8487:1;523:5;;11142:1:8;523:5:65;;;;;;;;;;8487:1;523:5;304:5711:77;11097:47:8;;;;;8420:1:65;11078:3:8;;694::77;11078::8;;11054:13;;304:5711:77;;;;-1:-1:-1;;304:5711:77;;2117:44:65;304:5711:77;44640:78:15;-1:-1:-1;;304:5711:77;11010:29:8;;;;;16587:43;2117:44:65;16587:43:8;;;:::i;:::-;2117:44:65;304:5711:77;;16587:43:8;;;;304:5711:77;;;1590:14:0;2117:44:65;1590:14:0;;;;;16424:32:8;;;;1590:14:0;16424:32:8;;1590:14:0;16424:32:8;;;;;;1590:14:0;16424:32:8;;;:::i;:::-;;;1590:14:0;;;;;;;16424:32:8;;;;;-1:-1:-1;16424:32:8;;15938:460;16028:34;;;;:::i;:::-;16021:3;694::77;16021::8;694::77;;;;304:5711;;;;;;;;-1:-1:-1;;;16314:19:8;;8420:1:65;304:5711:77;;2117:44:65;16314:19:8;;304:5711:77;-1:-1:-1;304:5711:77;44640:78:15;304:5711:77;-1:-1:-1;;;;;;;;;;;16314:19:8;;;;;;;16170:185;12810:59;1590:14:0;16314:19:8;8420:1:65;16314:19:8;2117:44:65;16314:19:8;;;15938:460;304:5711:77;;;;16170:185:8;;;-1:-1:-1;;;;;;;;;;;16170:185:8;;;12810:59;-1:-1:-1;;;;;;;;;;;304:5711:77;;12810:59:8;;;-1:-1:-1;;;1590:14:0;;12810:59:8;;;304:5711:77;;;;;;12810:59:8;;;304:5711:77;;;2117:44:65;304:5711:77;;;;16170:185:8;;694:3:77;;16170:185:8;;;;;;:::i;:::-;304:5711:77;523:5:65;304:5711:77;523:5:65;16103:21:8;12810:59;;;15938:460;;;12810:59;304:5711:77;;;-1:-1:-1;;;12810:59:8;;1590:14:0;2117:44:65;12810:59:8;;304:5711:77;;;;;;44640:78:15;304:5711:77;;;;:::i;16314:19:8:-;;;;;;2117:44:65;16314:19:8;;;;;;:::i;:::-;;;;15698:126;13208:33;;:::i;:::-;;15698:126;;2822:49:65;;;;;;2117:44;2822:49;;;;;;:::i;:::-;;;;8365:37;8397:5;523;;;8365:37;;2467:50;;;;;;2117:44;2467:50;;;;;;:::i;:::-;;;;2117:44;;;;;;;;;;;;;:::i;:::-;;;;14296:110:1;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;304:5711:77;;1590:14:0;;;;14375:24:1;;;;;304:5711:77;;;;;-1:-1:-1;14375:24:1;;;-1:-1:-1;;;;;;;;;;;14375:24:1;;;;;;;;14296:110;:::o;304:5711:77:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;304:5711:77;;;;:::o;:::-;;;:::o;6764:749:58:-;3256:31:33;;3304:55;;-1:-1:-1;;;;;304:5711:77;;;;2626:1:33;;;;3256:31;;2626:1;304:5711:77;3256:31:33;;;;:::i;:::-;3304:55;;:::i;:::-;304:5711:77;;7289:21:58;;7285:222;;6764:749;;:::o;7285:222::-;3256:31:33;7390:30:58;;;;;;;;;:::i;:::-;304:5711:77;;;6764:749:58:o;304:5711:77:-;;;-1:-1:-1;;;304:5711:77;;3256:31:33;304:5711:77;;;;;;;;;;;;;;-1:-1:-1;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13228:134:1:-;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;304:5711:77;;2117:44:65;304:5711:77;;;1590:14:0;;;;;;;;13326:29:1;;;;;304:5711:77;;;;;;;;;;;;;;;;:::i;:::-;13326:29:1;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;;;;13228:134;:::o;:::-;;-1:-1:-1;;;;;;;;;;;13326:29:1;;;;;304:5711:77;13326:29:1;304:5711:77;;1590:14:0;;;;;;;;13326:29:1;;;;;;:::i;6598:121:15:-;1222:159;304:5711:77;6669:42:15;6598:121;;304:5711:77;;6669:42:15;;;;;;;;;;;;;;304:5711:77;;;;;;:::i;6669:42:15:-;1222:159;304:5711:77;;1222:159:15;;591:42;1222:159;;;6598:121::o;7546:145::-;1590:14:0;7629:54:15;1222:159;7546:145;;;;304:5711:77;;7629:54:15;;;;;;;;;;304:5711:77;7629:54:15;;;1590:14:0;;;;;;:::i;:::-;;;;;304:5711:77;7629:54:15;694:3:77;;7629:54:15;;;;;;:::i;15596:134:1:-;;-1:-1:-1;;;;;;;;;;;15694:29:1;;;;;304:5711:77;15694:29:1;304:5711:77;;1590:14:0;;;;;;;;15694:29:1;;;;;;:::i;304:5711:77:-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;-1:-1:-1;;304:5711:77;;;;;;;;;-1:-1:-1;304:5711:77;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;7846:150:15:-;304:5711:77;7935:53:15;1222:159;7846:150;;304:5711:77;7846:150:15;;304:5711:77;;7935:53:15;;;;;;;;;;304:5711:77;7935:53:15;;;304:5711:77;;;;;;:::i;:::-;;;;-1:-1:-1;;304:5711:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;953:236:8:-;304:5711:77;1052:14:8;304:5711:77;;:::i;:::-;1052:14:8;;304:5711:77;;;;;;1109:10:8;304:5711:77;;;;;;1109:10:8;1077:1;304:5711:77;;1077:1:8;304:5711:77;;1077:1:8;304:5711:77;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;304:5711:77;523:5:65;;;;;;;304:5711:77;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;694:3;;304:5711;;:::i;:::-;;;;;;;1077:1:8;11360:3;304:5711:77;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;304:5711:77;;11456:84:8;523:5:65;11456:84:8;;;;;694:3:77;11331:13:8;;11346:12;-1:-1:-1;11346:12:8;-1:-1:-1;1094:26:8:o;304:5711:77:-;;;;;1109:10:8;304:5711:77;;;;;;-1:-1:-1;304:5711:77;;;;;;;;1048:135:8;304:5711:77;;;;;;1052:14:8;304:5711:77;:::i;953:236:8:-;1052:14;;;304:5711:77;;;;;:::i;:::-;1052:21:8;;1109:10;;;;304:5711:77;;;;;;;;;;;;;;;1077:1:8;304:5711:77;;1077:1:8;304:5711:77;;1077:1:8;304:5711:77;;;;;;;;;;;;;;:::i;:::-;;;523:5:65;;;;;;;304:5711:77;523:5:65;;;;;;;304:5711:77;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;694:3;;304:5711;;:::i;:::-;;;;;;;1077:1:8;11360:3;304:5711:77;;11346:12:8;;;;;11391:4;;1109:10;11391:4;;;:::i;:::-;304:5711:77;;11456:84:8;523:5:65;11456:84:8;;;;;694:3:77;11331:13:8;;304:5711:77;;;;;1109:10:8;304:5711:77;;;;;;-1:-1:-1;304:5711:77;;;;;;;;1048:135:8;304:5711:77;;;;;;;;;;;:::i;1251:343:8:-;-1:-1:-1;304:5711:77;1364:48:8;1381:9;304:5711:77;1590:14:0;;1364:48:8;304:5711:77;1392:19:8;27635:8:3;1392:19:8;:::i;:::-;304:5711:77;;1364:48:8;;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;;;1364:48:8;;694:3:77;;1364:48:8;;;;;;:::i;:::-;1458:12;304:5711:77;1458:29:8;;;-1:-1:-1;;;;;304:5711:77;1458:29:8;;;;;:::i;:::-;1540:11;304:5711:77;;;;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;304:5711:77;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;304:5711:77;;;;;;;;;1364:48:8;304:5711:77;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;304:5711:77;523:5:65;;11142:1:8;523:5:65;;;;;;;;694:3:77;304:5711;;11097:47:8;11078:3;694::77;11054:13:8;;;;;11010:29;;;;1251:343;;-1:-1:-1;1381:9:8;1364:48;1381:9;;;304:5711:77;1590:14:0;;1364:48:8;304:5711:77;1392:19:8;;;:::i;1364:48::-;304:5711:77;1458:12:8;;304:5711:77;1458:29:8;;;-1:-1:-1;;;;;304:5711:77;1458:29:8;;1540:11;1458:29;;:::i;:::-;1540:11;;304:5711:77;523:5:65;;;;;-1:-1:-1;;;;;523:5:65;;;;;-1:-1:-1;304:5711:77;;;1364:48:8;11010:13;;:29;1364:48;;;11010:29;1364:48;11010:29;;-1:-1:-1;11049:106:8;11069:7;;;;;;1563:24;;;;;1251:343;:::o;11078:3::-;11114:10;;;;;;;;:::i;:::-;304:5711:77;;;;;;;;;1364:48:8;304:5711:77;;1540:11:8;523:5:65;;;;;-1:-1:-1;;;;;;304:5711:77;523:5:65;;11142:1:8;523:5:65;;;;;;;;694:3:77;304:5711;;11097:47:8;11078:3;694::77;11054:13:8;;;;;11010:29;;;;4421:582:33;;4593:8;;-1:-1:-1;304:5711:77;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;304:5711:77;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;304:5711:77;;;;4917:24:33;304:5711:77;1590:14:0;;4917:24:33;4841:49;4867:18;;;:23;4841:49;;643:59:8;;;;;;;;;;;;;;;:::i;:::-;304:5711:77;;;;;;;:::i;:::-;643:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;192::1;;643::8;;;;;;;;;;4249:2493;4361:12;304:5711:77;4397:9:8;304:5711:77;4438:11:8;304:5711:77;-1:-1:-1;;;;;304:5711:77;;;;;;1590:14:0;;4481:19:8;27635:8:3;4481:19:8;:::i;:::-;4551:15;304:5711:77;;;27635:8:3;304:5711:77;;;;;;;;;;;;;;;;;;;;;;4583:37:8;;;;;;;;;;:::i;:::-;304:5711:77;4573:48:8;;304:5711:77;;;;;4438:11:8;304:5711:77;;;4551:77:8;304:5711:77;;4547:255:8;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;304:5711:77;;-1:-1:-1;;;4811:11:8;;304:5711:77;;4361:12:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;4811:11:8;;;;;;;;4249:2493;4857:16;;27635:8:3;4857:16:8;:::i;:::-;304:5711:77;;;;1590:14:0;;;4911:25:8;;;4361:12;4911:25;;304:5711:77;4911:25:8;;;;;-1:-1:-1;;;;;;;;;;;4911:25:8;;;;;;;;;;;4249:2493;-1:-1:-1;304:5711:77;;4951:12:8;;4984:74;304:5711:77;;12810:59:8;;;4984:74;;304:5711:77;4361:12:8;4984:74;;643:59;304:5711:77;4911:25:8;643:59;;304:5711:77;643:59:8;304:5711:77;;;643:59:8;;;;;;4984:74;4947:1461;5094:13;5127:3;304:5711:77;;5109:16:8;;;;;5178:8;304:5711:77;5178:8:8;;5165:22;5178:8;;:::i;:::-;304:5711:77;;;-1:-1:-1;;;5165:22:8;;-1:-1:-1;;;;;304:5711:77;;4361:12:8;5165:22;;304:5711:77;;;;;;;;;;;;;;;;;;5165:22:8;;;-1:-1:-1;;;;;;;;;;;5165:22:8;;;;;;;;;;;5127:3;5209:18;;;5205:114;;5127:3;5369:8;;;;:::i;:::-;304:5711:77;4361:12:8;304:5711:77;;;-1:-1:-1;;;1978:27:8;;-1:-1:-1;;;;;304:5711:77;;;4361:12:8;1978:27;;304:5711:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1978:27:8;;;;;;;;;;;5127:3;2057:16;;27635:8:3;2057:16:8;:::i;:::-;2102:65;;;:29;;:65;:29;;;-1:-1:-1;;2868:17:77;2102:65:8;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;304:5711:77;;-1:-1:-1;;;2177:37:8;;-1:-1:-1;;;;;304:5711:77;;;;4361:12:8;2177:37;;304:5711:77;12810:59:8;;;304:5711:77;;;12810:59:8;;;304:5711:77;;;;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;2177:37:8;;;;;;;;;;;2102:65;2254:16;;;27635:8:3;2254:16:8;:::i;:::-;4361:12;304:5711:77;;;;-1:-1:-1;;;;;;304:5711:77;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;304:5711:77;;-1:-1:-1;;;2281:43:8;;-1:-1:-1;;;;;304:5711:77;;;;4361:12:8;2281:43;;304:5711:77;12810:59:8;;;304:5711:77;;;;12810:59:8;;;304:5711:77;;;;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;2281:43:8;;;;;;;;;;;2102:65;2343:46;;;;;2102:65;5341:37;;;5337:92;;5447:50;;;304:5711:77;;5520:25:8;304:5711:77;;5516:256:8;;2102:65;12275:113;;;;;;;-1:-1:-1;;12275:113:8;;;5902:57;304:5711:77;;5998:29:8;;5994:84;;304:5711:77;;6319:8:8;304:5711:77;6101:89:8;643:59;304:5711:77;;6132:37:8;;304:5711:77;;;6132:37:8;;;304:5711:77;6132:37:8;;;;;:::i;:::-;304:5711:77;6122:48:8;;6180:8;;;;:::i;:::-;304:5711:77;;;;;;;643:59:8;304:5711:77;643:59:8;;304:5711:77;;643:59:8;;304:5711:77;643:59:8;;;304:5711:77;6101:89:8;6319:8;:::i;:::-;304:5711:77;;;;;643:59:8;304:5711:77;;;;;;-1:-1:-1;;;;;304:5711:77;;;;;4438:11:8;304:5711:77;;;;;;6302:58:8;;304:5711:77;;;;6302:58:8;;304:5711:77;;;643:59:8;6302:58;;643:59;694:3:77;643:59:8;;304:5711:77;;;27635:8:3;304:5711:77;;;;;;;;;;;;;;;;6240:37:8;;;;;;;;;;:::i;:::-;304:5711:77;6230:48:8;;304:5711:77;;;;;;;;;643:59:8;;304:5711:77;694:3;643:59:8;;;304:5711:77;4397:9:8;643:59;;;;;;304:5711:77;;;;;643:59:8;;;;;;;;5089:1309;304:5711:77;;;27635:8:3;304:5711:77;;;;;;;;;;;;;;;;6471:37:8;;;;;;;;;;:::i;:::-;304:5711:77;6461:48:8;;304:5711:77;;;;;4438:11:8;304:5711:77;;;6439:77:8;304:5711:77;;643:59:8;;;304:5711:77;6664:15:8;304:5711:77;;27635:8:3;304:5711:77;;;;;;;;;;6696:37:8;;304:5711:77;;;;;;6696:37:8;;;304:5711:77;6696:37:8;;;;;:::i;:::-;304:5711:77;6686:48:8;;304:5711:77;;;;;4249:2493:8;:::o;643:59::-;304:5711:77;;-1:-1:-1;;;643:59:8;;304:5711:77;4361:12:8;643:59;;;;4911:25;643:59;;304:5711:77;643:59:8;304:5711:77;;;643:59:8;-1:-1:-1;;;643:59:8;;;;;;;5994:84;6051:8;;;;694:3:77;6051:8:8;5094:13;694:3:77;5094:13:8;;5516:256;5654:8;;3216:27;5654:8;;;;;;:::i;:::-;304:5711:77;4361:12:8;304:5711:77;;;-1:-1:-1;;;3216:27:8;;-1:-1:-1;;;;;304:5711:77;;;4361:12:8;3216:27;;304:5711:77;;;;;;;;;;;;;;;;;;;;;;3216:27:8;;;-1:-1:-1;;;;;;;;;;;3216:27:8;;;;;;;;;;;5516:256;3293:28;;;27635:8:3;3293:28:8;:::i;:::-;3372:29;;;;;27635:8:3;3372:29:8;:::i;:::-;4361:12;304:5711:77;;;;;;-1:-1:-1;;;;;304:5711:77;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;304:5711:77;;-1:-1:-1;;;3497:43:8;;-1:-1:-1;;;;;304:5711:77;;;;4361:12:8;3497:43;;304:5711:77;12810:59:8;;;304:5711:77;;;;12810:59:8;;;304:5711:77;;;;;;12810:59:8;304:5711:77;;-1:-1:-1;;;;;;;;;;;3497:43:8;;;;;;;;;;;5516:256;3558:23;;;;;5516:256;5601:62;;5689:6;5516:256;5685:69;5723:8;;;;;694:3:77;5723:8:8;;;3558:23;;-1:-1:-1;3558:23:8;;;3497:43;;;;;:::i;:::-;304:5711:77;;3497:43:8;;;;304:5711:77;;;;3497:43:8;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;3497:43:8;304:5711:77;;;3216:27:8;;;;304:5711:77;3216:27:8;;;;;;;;;1590:14:0;3216:27:8;;;:::i;:::-;;;1590:14:0;;;;;3216:27:8;;;;;;;-1:-1:-1;3216:27:8;;5337:92;5402:8;;694:3:77;5402:8:8;;;2343:46;2355:33;;;-1:-1:-1;2343:46:8;;;;2281:43;;;;;:::i;:::-;304:5711:77;;2281:43:8;;;;304:5711:77;;;;2281:43:8;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;2281:43:8;304:5711:77;;;2177:37:8;;;;;:::i;:::-;304:5711:77;;2177:37:8;;;;2102:65;;;;;1978:27;;;304:5711:77;1978:27:8;;;;;;;;;1590:14:0;1978:27:8;;;:::i;:::-;;;1590:14:0;;;;;1978:27:8;;;;;;-1:-1:-1;1978:27:8;;;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;5205:114:8;5256:44;;5290:8;;;;:::i;:::-;304:5711:77;;;;-1:-1:-1;;;;;304:5711:77;;;;;;;;;;;;;;;;;;;5256:44:8;;;;5205:114;;5165:22;;;;304:5711:77;5165:22:8;;;;;;;;;1590:14:0;5165:22:8;;;:::i;:::-;;;1590:14:0;;;;;5165:22:8;;;;;;;-1:-1:-1;5165:22:8;;;304:5711:77;;1590:14:0;304:5711:77;;1590:14:0;;;;5109:16:8;;;;;;4911:25;;;;;;;;;;;;:::i;:::-;;;304:5711:77;643:59:8;;;;;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;;:::i;:::-;;304:5711:77;643:59:8;;;;-1:-1:-1;;;;;643:59:8;;;;;;;;;:::i;:::-;;4911:25;;;643:59;304:5711:77;;;643:59:8;304:5711:77;;;4811:11:8;;;;;304:5711:77;4811:11:8;;:::i;:::-;304:5711:77;4811:11:8;;;;4547:255;4720:15;;;;;304:5711:77;;27635:8:3;304:5711:77;;;;;;;;;;4752:37:8;;304:5711:77;;;;;;4752:37:8;;;304:5711:77;4752:37:8;;;;;:::i;:::-;304:5711:77;4742:48:8;;304:5711:77;;;;;;;4713:78:8;:::o;11586:239::-;1590:14:0;;;11652:12:8;304:5711:77;;11652:12:8;304:5711:77;;;11681:9:8;304:5711:77;;11681:9:8;304:5711:77;11707:10:8;304:5711:77;11645:19:8;11707:10;304:5711:77;;;;11586:239:8;304:5711:77;11645:19:8;11734:11;304:5711:77;;;11762:25:8;304:5711:77;;11762:25:8;304:5711:77;;11804:14:8;304:5711:77;;:::i;:::-;;;;11586:239:8;:::o;304:5711:77:-;;;;;;;;;11645:19:8;11804:14;304:5711:77;11586:239:8:o;304:5711:77:-;11804:14:8;11645:19;304:5711:77;;;;;;;;;;;;;;;;11804:14:8;11645:19;304:5711:77;11645:19:8;304:5711:77;;;;11804:14:8;304:5711:77;;2866:108:1:o;304:5711:77:-;;;;;;;;;11707:10:8;11645:19;304:5711:77;;;;;;;;;;;;;;;;11645:19:8;304:5711:77;;11707:10:8;304:5711:77;;;2560:514:8;;;2695:1;2698:12;2707:3;2698:12;;;;3050:17;;;;2695:1;3050:17;2695:1;2560:514;:::o;2712:8::-;694:3:77;2771::8;694::77;2771::8;694::77;;;;2824:12:8;;;304:5711:77;694:3;304:5711;;;;-1:-1:-1;;;;;304:5711:77;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;304:5711:77;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;304:5711:77;;;;2824:12:8;2815:49;;304:5711:77;12810:59:8;;;304:5711:77;;;12810:59:8;;;304:5711:77;;;;-1:-1:-1;304:5711:77;12810:59:8;304:5711:77;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;694:3:77;;2678:18:8;;2941:90;2995:21;;;694:3:77;2995:21:8;;:::o;2945:30::-;2957:17;;;;2945:30;;;2815:49;2695:1;2815:49;;;:::i;:::-;;;;2560:514;;;4551:10;2698:12;2707:3;2698:12;;;;3050:17;;;;4551:10;3050:17;4551:10;2560:514;:::o;2712:8::-;2824:12;;;304:5711:77;694:3;304:5711;;;-1:-1:-1;;;;;304:5711:77;-1:-1:-1;;;;;;;;;;;2815:49:8;;;;304:5711:77;;-1:-1:-1;;;2815:49:8;;-1:-1:-1;;;;;304:5711:77;;;;2824:12:8;2815:49;;304:5711:77;12810:59:8;;;304:5711:77;;;12810:59:8;;;304:5711:77;;;;-1:-1:-1;304:5711:77;12810:59:8;304:5711:77;-1:-1:-1;;;;;;;;;;;;2815:49:8;;;;;;;;2712:8;2910:16;;;;:::i;:::-;2945:30;;;2712:8;2941:90;;;694:3:77;;2678:18:8;;2945:30;2957:17;;;;2945:30;;;2815:49;4551:10;2815:49;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fractionToInt((uint256,uint256))":"08c41745","runPoolBehaviourTest(address,bytes32[])":"d170c3cc","setUp()":"0a9254e4","stringPctgs(uint256)":"a00872f1","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testGetCapabilities(bytes32,address,address)":"f6c25e82","testGetLimits()":"d3479a01","testPriceDecreasing()":"4a36e372","testPriceFuzz(uint256,uint256)":"a502846b","testSwapBuyIncreasing()":"fe3ee58b","testSwapFuzz(uint256,bool)":"7f55213e","testSwapSellIncreasing()":"111f3392","testUsv2PoolBehaviour()":"11ca2bc8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"name\":\"fractionToInt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapAdapter\",\"name\":\"adapter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"poolIds\",\"type\":\"bytes32[]\"}],\"name\":\"runPoolBehaviourTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stringPctgs\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pair\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"t0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"t1\",\"type\":\"address\"}],\"name\":\"testGetCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetLimits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPriceDecreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"testPriceFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapBuyIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"}],\"name\":\"testSwapFuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwapSellIncreasing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testUsv2PoolBehaviour\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/UniswapV2SwapAdapter.t.sol\":\"UniswapV2PairFunctionTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/EfficientERC20.sol\":{\"keccak256\":\"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa\",\"dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ\"]},\"src/libraries/FractionMath.sol\":{\"keccak256\":\"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c\",\"dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr\"]},\"src/uniswap-v2/UniswapV2SwapAdapter.sol\":{\"keccak256\":\"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853\",\"dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs\"]},\"test/AdapterTest.sol\":{\"keccak256\":\"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0\",\"dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd\"]},\"test/UniswapV2SwapAdapter.t.sol\":{\"keccak256\":\"0xad67284d4c7573a891576e43100cc51dbff212064ee40875b21f551e39ffa9b9\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://7bca31a31253ee67e50b36fbfb4b21744f5e7e7607c24ee96b6ab642d52d2ad0\",\"dweb:/ipfs/QmVHCgxAiWPz1s2NoGnVRGNTc6wDsbTSJHmtPnhPGEDioZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"fractionToInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISwapAdapter","name":"adapter","type":"address"},{"internalType":"bytes32[]","name":"poolIds","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"runPoolBehaviourTest"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stringPctgs","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"pair","type":"bytes32"},{"internalType":"address","name":"t0","type":"address"},{"internalType":"address","name":"t1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testGetCapabilities"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetLimits"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPriceDecreasing"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testPriceFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapBuyIncreasing"},{"inputs":[{"internalType":"uint256","name":"specifiedAmount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"testSwapFuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSwapSellIncreasing"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testUsv2PoolBehaviour"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/UniswapV2SwapAdapter.t.sol":"UniswapV2PairFunctionTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/EfficientERC20.sol":{"keccak256":"0x825d7f6aa98465b3c5b5a08d24cadfbb0a06f44693beec4e00ad2fe2824b4ef0","urls":["bzz-raw://2a5b53d7d634f50f27a1e45ce9136a054f1f19efc3dcfc1f85c8b1bbeac735fa","dweb:/ipfs/QmQSeQyF86HLRnvKgQogia8W2eoWzncG2m1GkYMnp84DJZ"],"license":"UNLICENSED"},"src/libraries/FractionMath.sol":{"keccak256":"0x327fa2e6a30e5305decbc59db80a2300c9bb80856e8f890d8edda52986dab735","urls":["bzz-raw://3be12211b298c2090fc475c7acd07682b688a551395db988266dcbc6d28fc53c","dweb:/ipfs/QmTfnVAAj4aQWXaZAgRN8g8mjzHKyVqSJocEJFUGWbANWr"],"license":"AGPL-3.0-or-later"},"src/uniswap-v2/UniswapV2SwapAdapter.sol":{"keccak256":"0xd4da168460c3a8859504bed2fa8ebb8de95eb8ff684f9c691ac47b4028a461d5","urls":["bzz-raw://8a2428d5fcc612432c8bc1ab71d1b8f65a13fea67b6a9a64d0eb73f3fb53b853","dweb:/ipfs/QmW5ggqCo9iThkw5ufDZkKJMcC14xrFeb516pQknsToubs"],"license":"AGPL-3.0-or-later"},"test/AdapterTest.sol":{"keccak256":"0x56850be2bb3898eee065c3d77aadb6d181ee789da32f30b1d415d5521397fa43","urls":["bzz-raw://8ca34143db16aa27c42ee3f8566ee466095d4aedcc4ea1c7726aa9c593f4fbd0","dweb:/ipfs/QmWBTLXZKbTuT5kVpAbyGCxKRdhsmzWRPZPiTqZMg9BXhd"],"license":"AGPL-3.0-or-later"},"test/UniswapV2SwapAdapter.t.sol":{"keccak256":"0xad67284d4c7573a891576e43100cc51dbff212064ee40875b21f551e39ffa9b9","urls":["bzz-raw://7bca31a31253ee67e50b36fbfb4b21744f5e7e7607c24ee96b6ab642d52d2ad0","dweb:/ipfs/QmVHCgxAiWPz1s2NoGnVRGNTc6wDsbTSJHmtPnhPGEDioZ"],"license":"AGPL-3.0-or-later"}},"version":1},"id":77} \ No newline at end of file diff --git a/evm/out/Vm.sol/Vm.json b/evm/out/Vm.sol/Vm.json deleted file mode 100644 index fea7abe..0000000 --- a/evm/out/Vm.sol/Vm.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopExpectSafeMemory","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prevrandao(bytes32)":"3b925549","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptSecret(string)":"1e279d41","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory revm state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"revertTo(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top of the test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopExpectSafeMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"revertTo(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"revertToAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top of the test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopExpectSafeMemory()":{"notice":"Stops all safe memory expectation in the current subcontext."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":13} \ No newline at end of file diff --git a/evm/out/Vm.sol/VmSafe.json b/evm/out/Vm.sol/VmSafe.json deleted file mode 100644 index be00b62..0000000 --- a/evm/out/Vm.sol/VmSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptSecret(string)":"1e279d41","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resumeGasMetering()":"2bcd50e0","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"}},"version":1},"id":13} \ No newline at end of file diff --git a/evm/out/_buildRuntime.s.sol/buildRuntime.json b/evm/out/_buildRuntime.s.sol/buildRuntime.json deleted file mode 100644 index 3e19e10..0000000 --- a/evm/out/_buildRuntime.s.sol/buildRuntime.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"run","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608080604052346026576201000162ff00ff19600c541617600c55610606908161002b8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c8063c0406226146100585763f8ccbf4714610030575f80fd5b34610055578060031936011261005557602060ff600c5460101c166040519015158152f35b80fd5b50346101ff575f3660031901126101ff5761007161031c565b60405163f877cb1960e01b815260206004820152601460248201527317d7d41493d4115313115497d0d3d395149050d560621b6044820152905f82606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f92610229575b5060405163f877cb1960e01b81526020600482015260146024820152735f5f50524f50454c4c45525f4f55545f46494c4560601b6044820152905f82606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f92610203575b5061014391926103ba565b90813b5f6101508261027b565b9361015e6040519586610245565b82855260208501903c737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101ff576101ac5f916101be6040519485938493623e43f960e71b85526040600486015260448501906102f8565b838103600319016024850152906102f8565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156101f4576101e6575080f35b6101f291505f90610245565b005b6040513d5f823e3d90fd5b5f80fd5b6101439250610223903d805f833e61021b8183610245565b810190610297565b91610138565b61023e9192503d805f833e61021b8183610245565b905f6100d4565b90601f8019910116810190811067ffffffffffffffff82111761026757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161026757601f01601f191660200190565b6020818303126101ff5780519067ffffffffffffffff82116101ff570181601f820112156101ff576020815191016102ce8261027b565b926102dc6040519485610245565b828452828201116101ff57815f926020928386015e8301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040516326bdd78360e11b815260206004820152601760248201527f5f5f50524f50454c4c45525f4445504c4f595f4152475300000000000000000060448201525f81606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa5f918161039e575b5061039b5750604051610395602082610245565b5f815290565b90565b6103b39192503d805f833e61021b8183610245565b905f610381565b908051155f146104a657505f6103ec9160405180938192638d1cc92560e01b83526020600484015260248301906102f8565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156101f4575f9161048c575b506020815191015ff06001600160a01b0381161561042e5790565b60405162461bcd60e51b815260206004820152603060248201527f537464436865617473206465706c6f79436f646528737472696e67293a20446560448201526f383637bcb6b2b73a103330b4b632b21760811b6064820152608490fd5b6104a091503d805f833e61021b8183610245565b5f610413565b5f6104cd9260405180948192638d1cc92560e01b83526020600484015260248301906102f8565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f926105ad575b50610533602091826040519384928180850197805191829101895e8401908282015f8152815193849201905e01015f815203601f198101835282610245565b51905ff06001600160a01b038116156105495790565b60405162461bcd60e51b815260206004820152603660248201527f537464436865617473206465706c6f79436f646528737472696e672c6279746560448201527539949d102232b83637bcb6b2b73a103330b4b632b21760511b6064820152608490fd5b60209192506105c8610533913d805f833e61021b8183610245565b9291506104f456fea26469706673582212202bc0bde0995ae906a53f3752e9a7ebc1a1a7004630211a84a89a027a56265d2364736f6c634300081b0033","sourceMap":"104:982:19:-:0;;;;;;;;;;3166:4:2;104:982:19;;;3166:4:2;104:982:19;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c8063c0406226146100585763f8ccbf4714610030575f80fd5b34610055578060031936011261005557602060ff600c5460101c166040519015158152f35b80fd5b50346101ff575f3660031901126101ff5761007161031c565b60405163f877cb1960e01b815260206004820152601460248201527317d7d41493d4115313115497d0d3d395149050d560621b6044820152905f82606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f92610229575b5060405163f877cb1960e01b81526020600482015260146024820152735f5f50524f50454c4c45525f4f55545f46494c4560601b6044820152905f82606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f92610203575b5061014391926103ba565b90813b5f6101508261027b565b9361015e6040519586610245565b82855260208501903c737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156101ff576101ac5f916101be6040519485938493623e43f960e71b85526040600486015260448501906102f8565b838103600319016024850152906102f8565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156101f4576101e6575080f35b6101f291505f90610245565b005b6040513d5f823e3d90fd5b5f80fd5b6101439250610223903d805f833e61021b8183610245565b810190610297565b91610138565b61023e9192503d805f833e61021b8183610245565b905f6100d4565b90601f8019910116810190811067ffffffffffffffff82111761026757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161026757601f01601f191660200190565b6020818303126101ff5780519067ffffffffffffffff82116101ff570181601f820112156101ff576020815191016102ce8261027b565b926102dc6040519485610245565b828452828201116101ff57815f926020928386015e8301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6040516326bdd78360e11b815260206004820152601760248201527f5f5f50524f50454c4c45525f4445504c4f595f4152475300000000000000000060448201525f81606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa5f918161039e575b5061039b5750604051610395602082610245565b5f815290565b90565b6103b39192503d805f833e61021b8183610245565b905f610381565b908051155f146104a657505f6103ec9160405180938192638d1cc92560e01b83526020600484015260248301906102f8565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156101f4575f9161048c575b506020815191015ff06001600160a01b0381161561042e5790565b60405162461bcd60e51b815260206004820152603060248201527f537464436865617473206465706c6f79436f646528737472696e67293a20446560448201526f383637bcb6b2b73a103330b4b632b21760811b6064820152608490fd5b6104a091503d805f833e61021b8183610245565b5f610413565b5f6104cd9260405180948192638d1cc92560e01b83526020600484015260248301906102f8565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9182156101f4575f926105ad575b50610533602091826040519384928180850197805191829101895e8401908282015f8152815193849201905e01015f815203601f198101835282610245565b51905ff06001600160a01b038116156105495790565b60405162461bcd60e51b815260206004820152603660248201527f537464436865617473206465706c6f79436f646528737472696e672c6279746560448201527539949d102232b83637bcb6b2b73a103330b4b632b21760511b6064820152608490fd5b60209192506105c8610533913d805f833e61021b8183610245565b9291506104f456fea26469706673582212202bc0bde0995ae906a53f3752e9a7ebc1a1a7004630211a84a89a027a56265d2364736f6c634300081b0033","sourceMap":"104:982:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;104:982:19;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;104:982:19;;;;202:15;;:::i;:::-;104:982;;-1:-1:-1;;;256:36:19;;1590:14:0;104:982:19;256:36;;1590:14:0;;;;;;-1:-1:-1;;;1590:14:0;;;;104:982:19;-1:-1:-1;104:982:19;256:36;104:982;;256:36;;;;;;;104:982;256:36;;;104:982;-1:-1:-1;104:982:19;;-1:-1:-1;;;330:36:19;;1590:14:0;104:982:19;330:36;;1590:14:0;;;;;;-1:-1:-1;;;1590:14:0;;;;104:982:19;-1:-1:-1;104:982:19;256:36;104:982;;330:36;;;;;;;104:982;330:36;;;104:982;404:40;;;;;:::i;:::-;1590:14:0;;;104:982:19;1590:14:0;;;:::i;:::-;104:982:19;1590:14:0;104:982:19;;1590:14:0;;;:::i;:::-;;;;;;;;;104:982:19;514:45;;;;1590:14:0;104:982:19;;1590:14:0;104:982:19;;1590:14:0;;;;;;;;514:45:19;;104:982;;514:45;;1590:14:0;;;;;;:::i;:::-;;;;-1:-1:-1;;1590:14:0;;;;;104:982:19;1590:14:0;:::i;:::-;514:45:19;;;104:982;514:45;;;;;;;;104:982;;;514:45;;;;104:982;514:45;;:::i;:::-;104:982;514:45;104:982;;1590:14:0;104:982:19;1590:14:0;;;;;514:45:19;104:982;;;330:36;404:40;330:36;;;;;;104:982;330:36;;;;;;:::i;:::-;;;;;:::i;:::-;;;;256;;;;;;;104:982;256:36;;;;;;:::i;:::-;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1590:14:0;;;;;-1:-1:-1;1590:14:0;;;;;;;;;-1:-1:-1;;1590:14:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;104:982:19;1590:14:0;104:982:19;;1590:14:0;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1590:14:0;;;;;;;;-1:-1:-1;;1590:14:0;;;;:::o;572:226:19:-;104:982;;-1:-1:-1;;;648:38:19;;104:982;648:38;;;104:982;;;;;1590:14:0;104:982:19;1590:14:0;;;104:982:19;-1:-1:-1;104:982:19;648:38;104:982;;648:38;;-1:-1:-1;;648:38:19;;;572:226;-1:-1:-1;644:148:19;;1590:14:0;104:982:19;;1590:14:0;104:982:19;1590:14:0;;:::i;:::-;-1:-1:-1;1590:14:0;;772:9:19;:::o;644:148::-;729:11;:::o;648:38::-;;;;;;;-1:-1:-1;648:38:19;;;;;;:::i;:::-;;;;;804:280;;1590:14:0;;936:16:19;932:146;936:11;;;104:982;;291:59:3;104:982:19;;;1590:14:0;;;;;;;18935:16:3;;291:59;18935:16;;;291:59;;;;;;:::i;:::-;18935:16;;104:982:19;18935:16:3;;;;;;;104:982:19;18935:16:3;;;932:146:19;19004:88:3;291:59;19004:88;;;;104:982:19;19004:88:3;-1:-1:-1;;;;;104:982:19;;19110:18:3;104:982:19;;968:31;:::o;104:982::-;;;-1:-1:-1;;;104:982:19;;291:59:3;18935:16;104:982:19;;;;291:59:3;104:982:19;;1590:14:0;104:982:19;1590:14:0;;;104:982:19;-1:-1:-1;;;104:982:19;;;;;;;18935:16:3;;;;;;104:982:19;18935:16:3;;;;;;:::i;:::-;;;;932:146:19;104:982;291:59:3;104:982:19;;;1590:14:0;;;;;;;18549:16:3;;291:59;18549:16;;;291:59;;;;;;:::i;:::-;18549:16;;104:982:19;18549:16:3;;;;;;;104:982:19;18549:16:3;;;932:146:19;104:982;18532:40:3;291:59;104:982:19;;;;18532:40:3;;;;;;;1590:14:0;;;291:59:3;;;;1590:14:0;;;;;;;;104:982:19;1590:14:0;;;;291:59:3;;;;1590:14:0;;;;104:982:19;1590:14:0;;18532:40:3;1590:14:0;;18532:40:3;;;;;;:::i;:::-;18625:88;;104:982:19;18625:88:3;-1:-1:-1;;;;;104:982:19;;18731:18:3;291:59;;1030:37:19;:::o;291:59:3:-;104:982:19;;-1:-1:-1;;;291:59:3;;;18549:16;291:59;;;;;;;1590:14:0;291:59:3;1590:14:0;;;291:59:3;-1:-1:-1;;;291:59:3;;;;;;;18549:16;291:59;18549:16;;;;18532:40;18549:16;;;104:982:19;18549:16:3;;;;;;:::i;:::-;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"run\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"scripts/_buildRuntime.s.sol\":\"buildRuntime\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"scripts/_buildRuntime.s.sol\":{\"keccak256\":\"0x0d2c139e8e126d7e192920d8821f5595a6db0e1afce1aa2c765781181589e818\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://633b74d6259c8da777e9409406a14e69689cbcb42ac8d6ba8afc6f0da873d8a2\",\"dweb:/ipfs/Qma8NQSG4heETeZSU8dz1EruwrjFku9c17QGYJdn9uwCSo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"run"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"scripts/_buildRuntime.s.sol":"buildRuntime"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"scripts/_buildRuntime.s.sol":{"keccak256":"0x0d2c139e8e126d7e192920d8821f5595a6db0e1afce1aa2c765781181589e818","urls":["bzz-raw://633b74d6259c8da777e9409406a14e69689cbcb42ac8d6ba8afc6f0da873d8a2","dweb:/ipfs/Qma8NQSG4heETeZSU8dz1EruwrjFku9c17QGYJdn9uwCSo"],"license":"AGPL-3.0-or-later"}},"version":1},"id":19} diff --git a/evm/out/build-info/1773b8b97607d36c.json b/evm/out/build-info/1773b8b97607d36c.json deleted file mode 100644 index f9e7135..0000000 --- a/evm/out/build-info/1773b8b97607d36c.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"1773b8b97607d36c","source_id_to_path":{"0":"lib/forge-std/src/Base.sol","1":"lib/forge-std/src/StdAssertions.sol","2":"lib/forge-std/src/StdChains.sol","3":"lib/forge-std/src/StdCheats.sol","4":"lib/forge-std/src/StdError.sol","5":"lib/forge-std/src/StdInvariant.sol","6":"lib/forge-std/src/StdJson.sol","7":"lib/forge-std/src/StdMath.sol","8":"lib/forge-std/src/StdStorage.sol","9":"lib/forge-std/src/StdStyle.sol","10":"lib/forge-std/src/StdToml.sol","11":"lib/forge-std/src/StdUtils.sol","12":"lib/forge-std/src/Test.sol","13":"lib/forge-std/src/Vm.sol","14":"lib/forge-std/src/console.sol","15":"lib/forge-std/src/console2.sol","16":"lib/forge-std/src/interfaces/IERC165.sol","17":"lib/forge-std/src/interfaces/IERC20.sol","18":"lib/forge-std/src/interfaces/IERC721.sol","19":"lib/forge-std/src/interfaces/IMulticall3.sol","20":"lib/forge-std/src/mocks/MockERC20.sol","21":"lib/forge-std/src/mocks/MockERC721.sol","22":"lib/forge-std/src/safeconsole.sol","23":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","24":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","25":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","26":"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol","27":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","28":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","29":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","30":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol","31":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","32":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","33":"lib/openzeppelin-contracts/contracts/utils/Address.sol","34":"lib/openzeppelin-contracts/contracts/utils/Context.sol","35":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","36":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","37":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","38":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","39":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","40":"src/angle/AngleAdapter.sol","41":"src/balancer-v2/BalancerV2SwapAdapter.sol","42":"src/balancer-v3/BalancerV3SwapAdapter.sol","43":"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol","44":"src/balancer-v3/lib/BalancerERC20Helpers.sol","45":"src/balancer-v3/lib/BalancerERC4626Helpers.sol","46":"src/balancer-v3/lib/BalancerInterfaces.sol","47":"src/balancer-v3/lib/BalancerStorage.sol","48":"src/balancer-v3/lib/BalancerSwapHelpers.sol","49":"src/balancer-v3/lib/BalancerV3Errors.sol","50":"src/curve/CurveAdapter.sol","51":"src/etherfi/EtherfiAdapter.sol","52":"src/integral/IntegralSwapAdapter.sol","53":"src/interfaces/ISwapAdapter.sol","54":"src/interfaces/ISwapAdapterTypes.sol","55":"src/interfaces/ISwapAdapterV2.sol","56":"src/interfaces/ISwapExecutor.sol","57":"src/libraries/CustomBytesAppend.sol","58":"src/libraries/EfficientERC20.sol","59":"src/libraries/FractionMath.sol","60":"src/maverick-v2/MaverickV2SwapAdapter.sol","61":"src/sfrax/FraxV3SFraxAdapter.sol","62":"src/sfraxeth/FraxV3FrxEthAdapter.sol","63":"src/template/TemplateSwapAdapter.sol","64":"src/uniswap-v2/UniswapV2SwapAdapter.sol","65":"test/AdapterTest.sol","66":"test/AngleAdapter.t.sol","67":"test/BalancerV2SwapAdapter.t.sol","68":"test/BalancerV3SwapAdapter.t.sol","69":"test/Constants.sol","70":"test/CurveAdapter.t.sol","71":"test/EtherfiAdapter.t.sol","72":"test/FraxV3FrxEthAdapter.t.sol","73":"test/FraxV3SFraxAdapter.t.sol","74":"test/IntegralSwapAdapter.t.sol","75":"test/MaverickV2SwapAdapter.t.sol","76":"test/TemplateSwapAdapter.t.sol","77":"test/UniswapV2SwapAdapter.t.sol","78":"test/interfaces/IBufferRouter.sol","79":"test/mocks/MockSETHx.sol","80":"test/mocks/MockSGOETH.sol","81":"test/mocks/MockSUSDC.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/evm/out/console.sol/console.json b/evm/out/console.sol/console.json deleted file mode 100644 index fabc573..0000000 --- a/evm/out/console.sol/console.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220b05549f2b923141f16aa323b0e07b92516e9266035b613b10b07e55cf476ea9c64736f6c634300081b0033","sourceMap":"66:66622:14:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220b05549f2b923141f16aa323b0e07b92516e9266035b613b10b07e55cf476ea9c64736f6c634300081b0033","sourceMap":"66:66622:14:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/console.sol":"console"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/evm/out/console2.sol/console2.json b/evm/out/console2.sol/console2.json deleted file mode 100644 index 426274f..0000000 --- a/evm/out/console2.sol/console2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122090dd5440fd8cc0419aa2089d3e5af5cc61e91e857ce520b70f5b3f3463cfc82964736f6c634300081b0033","sourceMap":"525:69152:15:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea264697066735822122090dd5440fd8cc0419aa2089d3e5af5cc61e91e857ce520b70f5b3f3463cfc82964736f6c634300081b0033","sourceMap":"525:69152:15:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"The original console.sol uses `int` and `uint` for computing function selectors, but it should use `int256` and `uint256`. This modified version fixes that. This version is recommended over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`. Reference: https://github.com/NomicFoundation/hardhat/issues/2178\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/console2.sol\":\"console2\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/console2.sol":"console2"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/evm/out/draft-IERC6093.sol/IERC1155Errors.json b/evm/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 03f012a..0000000 --- a/evm/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/evm/out/draft-IERC6093.sol/IERC20Errors.json b/evm/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index cc124bf..0000000 --- a/evm/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/evm/out/draft-IERC6093.sol/IERC721Errors.json b/evm/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index bf2450b..0000000 --- a/evm/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/evm/out/introspection/IERC165.sol/IERC165.json b/evm/out/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index 0e74799..0000000 --- a/evm/out/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file diff --git a/evm/out/safeconsole.sol/safeconsole.json b/evm/out/safeconsole.sol/safeconsole.json deleted file mode 100644 index d5b4346..0000000 --- a/evm/out/safeconsole.sol/safeconsole.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212200a1c278ca19b0486a71905e41cded0dbe774fc516b6a80a39f124354caa9403b64736f6c634300081b0033","sourceMap":"163:397734:22:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212200a1c278ca19b0486a71905e41cded0dbe774fc516b6a80a39f124354caa9403b64736f6c634300081b0033","sourceMap":"163:397734:22:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":22} \ No newline at end of file diff --git a/protocol-testing/run.Dockerfile b/protocol-testing/run.Dockerfile index 45cf55b..c991a1c 100644 --- a/protocol-testing/run.Dockerfile +++ b/protocol-testing/run.Dockerfile @@ -1,7 +1,13 @@ -# Install cargo-chef -FROM rust:1.89-bookworm AS cargo-chef -WORKDIR /app -RUN cargo install cargo-chef +# =========== Third Party =========== +# Stage 1: Get substreams CLI +FROM ghcr.io/streamingfast/substreams:v1.16.4 AS substreams-cli + +# Stage 2: Install Foundry (Forge) +FROM debian:bookworm AS foundry-builder +WORKDIR /build +RUN apt-get update && apt-get install -y curl git +RUN curl -L https://foundry.paradigm.xyz | bash +RUN /root/.foundry/bin/foundryup # =========== Tycho Indexer =========== # Stage 1: Build tycho-indexer @@ -21,21 +27,12 @@ WORKDIR /build/tycho-protocol-sdk/protocol-testing RUN cargo build --release WORKDIR /build/tycho-protocol-sdk/substreams -COPY ./substreams/target/wasm32-unknown-unknown/release/*.wasm ./target/wasm32-unknown-unknown/release/ +RUN cargo build --target wasm32-unknown-unknown --release WORKDIR /build/tycho-protocol-sdk/evm -COPY ./evm/out ./out - -# =========== Third Party =========== -# Stage 1: Get substreams CLI -FROM ghcr.io/streamingfast/substreams:v1.16.4 AS substreams-cli - -# Stage 2: Install Foundry (Forge) -FROM debian:bookworm AS foundry-builder -WORKDIR /build -RUN apt-get update && apt-get install -y curl git -RUN curl -L https://foundry.paradigm.xyz | bash -RUN /root/.foundry/bin/foundryup +COPY --from=foundry-builder /root/.foundry/bin/forge /usr/local/bin/forge +RUN chmod +x /usr/local/bin/forge +RUN forge build # =========== Final Image =========== FROM debian:bookworm diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_ambient.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_ambient.wasm deleted file mode 100755 index 4403f44766e0056a5f43aca4d7e30a202808ecbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372702 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
~W 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ⅅm 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μK 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 M!Rm?i^El7`AO7iL_y7O^ diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_balancer_v3.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_balancer_v3.wasm deleted file mode 100755 index 26d8e37d0872f92d852e61caaa633d9b77b697eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549787 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 t-Z}ZV7c^idijKHE9@rk&XX3#TAO{}0H^w`l+X diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_curve.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_curve.wasm deleted file mode 100755 index 6327221285786d64f876964f267c97d91b60919c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646494 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 z

5wG{KM)&1K5?4$LWY!hgObSb` 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 z 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

    TlaM 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 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_maverick_v2.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_maverick_v2.wasm deleted file mode 100755 index 05dc849c67f9699375ae5f09928d1d03c2500faa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511933 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

    NgG(?7~j`c&>`{I~i+x+=5G56UakM+cLr z&-dro__Ua+^rw{j%aeW?oeK5{l8J1R__LtQul0dPa<NU@t;0{B*_-D$D&D)VDTh z@Yf}hLAhU+_&FV*w`tWFWXdW6ziIDT$)<{AV&C#A4x10kTKIvNQZ1PvxGdpU`)M_n z2<~0v`QNVh5+C%JhF)1`;3a)_lbjHEj56u(5v2T&2NTCs`}=10sPz5mi6%xy7yT*z zn}K}5p{*Ie(VxTcgCNDY_YX4u9|SfZB+6#9pt1jy|FM*pV3f(JiKPEI+Q_B6;P~Vb zm9vs(`15L~G17{}Eb2}B2PdYa{LCRFrfDt*X34;BO$156;(yXlWX2h6-8|H!6R9`* zfJo?&NHVyZ;N*-3IbM)<_raCl(c?0{C+SxnUS%+1-@hh0<(2!v3w}j1>0eCyNzTWd zT4r-s79?ge1zs93`ET2uu2IK(%BY@M0RPmG?=k<)sZ?S-qb;lDAfAMmIxy||hbG?& zHZk^@!FVr~D9dDm^j^u2CcOE{*%`ma-#z8mQgfZvn(FYc;+=z&Uh);%Tb=fn4*n5B zPdi$j3F?>gF@DE)2cKu4kt{@V)p@?RXmPDKc_7Q|@z4EF{!deHKlv~BJvR8* z?|Ytq@VUoY|8in#6#m*VlURj;@Q|?SGayS7{r(mojW;g8#C3H^IRFsiT_bt5t81pM z4CXspaWqctn7O8VZT~b$@c!P_`Ki;2_4ZNEl#+T+r`%Xl-W;_P_hUKb(taFExuN9w z8p`6Kj~_nq;KV}{e{J#J!a*q zA9v-RyX5WPtlRRml@Ho-_Qf~u{qP5;Z+X_rn=U_j*3>0${oxT?p11N>zjN)47u|5$ zC)>7cvGTuP@P{{@-f-oAp0OplRqd@las8r8j(*@vmu{)D@;e^9d$_E~L?++e-AG+fDi$1dEuz$Pzm7A^HHLmuK7yp>~z~isn zZsl8M&B~v=&rRR^pI7d-@(pL7@$kJ*9r}r}TOY7;*?|Y_e|L7t(=)d|V&xxxxWDrg zQ>J|3=&g@gx#qjxrayi4eJ{6fecH;un^^bZj?AxbKWpo=R(|086MD-Zxc$OUY<=F! z)AM^gb;|g!eg9v#Zn3iF-18P)`QTOvJ^GjZ+#}CCvsIe0{w=%Vp5Lv%G2xB1(&qAy zzPNtDp&R!yjo$PAbzJ&8XFT}vJ6ntz5VK4E^Na^)pLNlR-gJ9@<=}6>cumU>eze+a zw({W(myh3fzvDlBzG<(>>X+_*WY%ZefBzZpF#G-b8}GlcCI8EtzTq8f<)7!jIPpW7 z`!+r5on+<9_dIR!|Lpm$yZ>aG7_n*pG3naro&WUVYQMvN|IZJunb`3M|7ZL8-Bv#4 z^ye=B#AjE3X0bnD<#W5K z3x3}Gtt&pa#lOMIOFn(sXZtR{_rG@!ZnpA+-~8=KC*JYc*JcH`TluM6!=J|gdCU37 z26tQebL*G<@QMe+2bKp9So!f2>(BV}J9ocqWAKQT7dGwv@yEV;)l*jlk6HQBfBn^x z6Tkn{>u(93w(>!TU3bk-&%ENLhl6LWoIUKC>yABk-PeB?Ja6TRS1!8cxetBug0jRG zD^K72j%%~e?fr0wY}Jivvo87Vudm5oaUe%itNh8TE3ba(itK-!oEYnVfBwK_KMkke zuqH9t%I7|G-Fx2smcs@wNKCQvj9=W4SoC!L9iK}~xAH|>4|{jxl`B4UXQJ84xmz#1 z@{{A|Jo2-|L010!q+i|q;h*pEsTUH5S^1}@KYm-!9hd&DHYpD2dA|>`##f~uOV5kT zpXXZqa$9^nJRo%3J3J_yIx9Trpm5$S*mvRmFGugk^;OWCVjSc0BFg0@WzFX3?bR<^ zYc^hf^_qbV5)p+u9-|Ju6W2Khd05&;H|5ecenolTlINcrR(>EVw~WskwS9e?eWFXJ zHoXhExNN_s{k-^jVVwHYH1mMt+K%h&Sw0eY8Vd#hX6_*ehpXGxbB+ESwRaZnONO<# z^tSb^xn1In0NW`J^4N=>+Qn{&@;mds%z%Vx8;|=Ip5tKwsmXK ze*;DjmdWY)j&>Yu7=}xaHw%B^!nHl8_qDB=I&Eo)CEpeJju{7Lm+~#WL;sS|=i^o?meInzgAXoF%F^!q@_{hy>s+yNU}co;AE0`leoq-sPG2ohdx4cblVk;&-`K@Qr+e>&y9E z!N<(UGb*N6Os&u&GB^+Dn7n0#0Sj9AHo%)T@@4dG2v6@ESSb@zkwx8k=idQ3cu&@K z_O9&*z)2yc1O>>%>o8~snYntEG(zIY!)2vyuX3v^4t9jPkS@UMipVcyJ!E9o@ zX3w5IXLj@KxwGfZoM+w z+dQv%esfFng1Jp|XU&~Gch21AxpU{vn>&AQ%iIO?n&!=#H+$ZkdCl|Y&YL%H{=AlX z3+6Y?pEZB>{5kWR=g*x#Z~pxGE%O(&G_}lXna%opbIaV8c`fr>T3Qw?poSsNj>a%V+rUBN z7)loO!$$kT#W0-eaATVAWT|&M^;J^eeSGiB_wV`6@cjbcbhFToY8c|+a<3QOpE4`! z?OyWy%@KWk8o524`>S?y^$Q2(^NY)ni+2DY58EC;N03UVgG{D8s7O@?HOVZ7`Iyvh zlgIkwg7Lu~)ss_uX7PGlU;6Sl<~}jzeeeI!r;^n*bz`Q@YF>Ew5l0_$-0>ax4_x@ci*C8=+jrml?>}C0 z%hx7NPG>4A$Bv)3VBz(jfApv2^Dn;S`gFyChb-^B=)-lrt#|z4xpyvme#_PqPrCey znT`8RJ^7PYUH#c>uDkxm+it(Rtg>p{o(m5>{H@ns_rUkAO7AhTVV^?|{f}p#+j`Hv z$?#44>^pT%%fh3MIrfATPk#F;?_BckrS19UUH$9dd-eye`NEfPy7S>LeYvOi7r*?- zyBp3(C6Y4|%M*U%%)xW^Ow6jCoSag=SL%S&Vab~P2ft7@B{?NIHPc*qT%x&Z4%fJbXc-JyYJad#XM$DdjI}Nxmi3n5;;brx%6$C9BHkB^IV8rju3a6ONugr+Q9$ zW~QQS-^8AoVDRC$WfSwKXZGKH;=Yr|jxRrsrVgv#BVAE;RA#^OwUvtx*}v?-R7Kfa z%luR}k*fUXOt9y&y^hLM3|{;0hQli>%Bpu;SXNOscJlP(_`!cWsN=+{qsl9eIDFDk znG>szPFD=x(oj=Tc0|RVi6f7mpQxeL1?h^7^Y%y|nAr1Vzjk)@rYn}OtsK1j1IM;k zZ*I!&UUAVCsdJ9J{NEOyckek1()%ZulK)~K48CvUk%@B`*N)qK!rotH8VXK9J2AGsy!1Gsh0HQvhwucUpJTG^Gl`5%7S!R zCS6`vF}ZS&s)^OvnyT7lHZf+*ZsoiCgC{-#Mbf~*KfGsgP&=7$0-+Fc=6<4)YQJ^*q64+yyIP;x z{J{@h^5M^a<+iWibMJS)`^%?)z12$^0nA@`;K4^9^RCSw;>VkB`})1#eej{Df9(~> z<3Q2JyF2omFS+8A-+Az%>bhwQ4?O(ncbvN9-K`z@4_@+lUb*Kxk3aqEKUUWreso8E zaPz<1{>?jn^pijS*QRqXxaQh#-f_=;5B==tM_u-f@7??0Lq{KX{5$^n-L3Ec&_!Rl zhEU z7m=KG_E+zD%VAV?WOz9Y`pHvU%TVJhko+-<=&!?U)FTd-VZ+XgGV0R zdff5vJT;xE&F9TZP#R;`z(kG`A$;lPviA*A$z-67NV*7k$ znO`$5bzFK<`W?8!$5)+@d~*WlaI&tfwrXK=&wX0M)yY-+4BnqQ=cdHOvU6Te{BwHu z@(JZayH$|L#Ik=*ACNktVtNwfNX)97o}5@#nHao*pBiTkKA$-#QJXjfpYZ{ybGFt^ z$TZf?NYvNX*A8BoJm>P=E61Jx(NrV;&Y)&O`QSGj2C4>sJaJ<-HTY!tpFWkCU%qk4 z*uh&fgTEMeV4|X|C38fks%)Tguf#i(|6D$}X~N`+-OG37!Q|jK6O$6P(gA;v&DxsH7vb&vKZ@Ph)9Va^qW&GP;+X~0 zk0IIIH1fw@Z55LTvQMGbTAb^X8N)ufFcv=U7g;10O)4pbU9|!gmNky~PPe&+?*{ti zo|Rm6bv(*_$bn2GueH-7Bg)4iUY}fkBrex?{l3MD$ zYqzVsG2_F%tHPywKQ}!*VE?A84(Pph>Ga_GC#LW9(i1bhSHgLp+PZY!%l?z|{EGVd zQ>vew|HYcN1&tG)T+lT6$z%S!*OSLBYQFkyd$m1z;vZMFopgNflP7)h_O_F~huYqr z|Nhl)_kLFY4)2MpPx;bQ_3wQ4=_gNp_?fmPq4$R+fAr6O7v@GAE3^5Yeys`0B#U=t zu!h_bt|pwYw7TcdRv|HvZMEV4Hr_w0QhH=&wfm%x&mC+Rl9Yr zgSZwR#N~H#Enh-hUN!7@`8Ot%{C@wi@>7)eD*634(eKChu5f$r48=OySZnTG)7jqt zWzDfJRL zTIh|I$xC|{b<#n-Rl~@y&$koy-$DO`*jBY8aQy{IsJe}*G;ctkX}EFsb*t4PJ2nuZ zv$|Dfd>m~(3`E^;wLmcjF+feM?5|@d2vJ%q@iOH5=seaFn`{<$t~k19;K;WAHyZ$5 zYj37AuB@N{1()etUF_|4UDdbl=i1qf(SOof5L=;%8aq2U`xh&)^(bp;pmVhbwt7tj zDR%!vbF++a0=lXFK>77_)&PS2mM5se?zZ=K_ACP*nfhg|nnW#?+jQsGtJ&80hxj)e zlJ!fbI6=Ipw{>Og)>$g)2hTZqp-d`inX z$|v_&7zw=0;)W!k*s}$%>F)=H_Uo5FZf!g6w%+gr?SaDq7>Zmn*gng6{}F^`J>Sr! zh#kK`Bm{&Q5P1i`#e30@#6Kw68voPvm3(-2plxPhcUdceEbvL0eJ-lSjCmUQOhwjW z9FE`}$*;Js3s*bYaLFOi%OCD3hb8Yke@ND1dmhbe@faR?sIx)ix{v3cVuFtE zfk#6OLN>gHq9TMRkm+B$W)1sxHLyjz+rYE?vX*)d-%I$&U;9ZuWBJI={uH0sr{Vmb z&QrM1pcs$y%Q!&~!aXTQ#2?pk@j0)tY%?aiBJJ)JrE?6;hC%iAYkeb)yT z-rbaZ={Ik=;M51(T26lG@rEDp$RHp4hnO9d&8vU9j)Ao!*T7{kv^VX~VDWPF`uV-^ z%)9-p#rf3Mx;cu=b;HUND9dh+f1fz4+%T*>WmtLou=31d<$1%(EyK!-hLu_79@3v< zhLw*UR(>00;b7eVlZKW5d06?>VdZ6%OUK_ath{R2^W9PT)3jN|C&}k3J|>QEPQNYR z4=;_K)2#%-#SZEoJl9>3f77+ufx=lPt#P)(-fJ9K&C>1}JgGpJAfLuaz}1_VFB z2uqhrBX=4)&T2GiF&Ol7r)`v|mFC5^aK?q+*%4Jnyiq!9U`Y$F;4_N0*1e(NEN-*<;XfPSD;7RFR|d>yQ8c z*n1B+JI?anUt0tTxtA#UC%H+uH+KOIHo;z|7gLfg@7gl9F_vuzfvl!Vi?)a@k_90& z(|ZfO6Cm{7!L-nOFG*+t0x3WOgb{O|wnN27D*oHOsd^VX;Q zp5G(NOS62*E_cDid8~@yl4Yg81LfVAd;I~gVsBeoSkn@3wNT<|Ikab;&!x_dU9Uhm zkzgY*c=a#9Zt)wDQ=8xX#_`8o_K_!CQ~l;SH<-HOvg{W>Gk!nYdddxc_piTp-Br*3 z_Lpw?1N1c6$5yzp%)jRRo_*)X`_8ZFJHIdIGXI+E@85U+(7yAB_nkkQa~aRg^^fCR z_JZd8Nt~b4I)4i1B2PEpKfmw$7xsPsM$X&ydvo9UyZX-G(|7(s&fD$t;re`|v)|Xc z3)0u5Z0II1G`_5m_dAp6@#Cf}o-_!T~`})5B zJm>BEf3ffUYklY6sL%J^{u9@J=i=E9{OHGTd9?j2m;dq94V)8Sf9io>xb4i7PkiBX zzjvrqO74W;b`Q;A0wRX<^0M#b+Y>QFAW)Tl-w(K%Ya_;|q9w?16py83*>fmUOQLZ6fDpI(!R* z+g7t@J%{pszbW6oX3zIIzai(%et3lU^1L_TkUfmY+k-f%pG(f4h+XDs953W}J;!w% z@8=lM3(mQ8uo44W0WvXrX-K)>MRq;JtMsqf*Ou6?MUId@m;Je0e!UL$XcrUb4z$m- z;Tza&8*kdrex1NQg5jz=ahZ41n5vzGwm{ zRm2mOzlYcT$ol%RwF_>2>tZDru7O)OL5+l_;_`$krRKA^_07$N=O14?zgx`tQp_69 zDD5hLce%s9J>ru;2qqB<8ExItUh#CTHdUn+lV<{NJasXc3>snL1m8E26g|Fmif7gl zVQ?>rry!Drw}O?|O*E%t8RY4(CSbC{V~b~>_fS?{FmaDd_UZA5jIxSOi34|u05O4K zxVGtI<^;cyb)?g@hCpkAa36s$?0FsEi~iGmf6oo<6szXz&+whhv6^(td?k}@edTDm zJdbrsUNUV-!nlJ4LA3gdH~^C90E$6Ev){SY_`#R(_sRMv^2WKX`(r#3`WC7nlH9SC zH63w2vFA#zll7qDRmS`s3j$3HkOh;ju@X1WQ0sz5S?0G-xv`14xCifLjcv|XcrUW| zRlmGX$6!2!_fnt9@qK%a^7?%aX`AN!r@WUnsJZ@OyuV57{L%IKdns>~_vdl^PY(Gb z;)|YZ5cF6m1*SuPwWGvu%J2Nkj11P4k?@(!vF7|D-pf6k^UM3r&u5^@n%jKu^qsqX z=TG2V_Oa&okMH~b+k7YEr}_Txc`t3$od1ybvJW@sKk7SwLEpKong6@>`)6>!{jKv? zaxQJwl=o)NWnFE~-&UVDeR2)o$rx?U@5_6sZ*zVv?`2JH&ZW;}95v_JsOi(@yx?4H zx6Szy=Q7@!^NMrXr<(Iu^j-f=&ZYj%_uuZj{wsagf0lExiHs57lJk1?n2`%UNF0}p z&*M~H+Gp>7-?!(Uy#AQMAY-y#L$pRi;6IM~?4(9t@!hqTo7k%md47@eJ9GRZ2Tix9 z`RpHgFa6M*e~S0=o96u2`7zsh=lnPN&VRe^hvxTp;#~H;=6r(lo3_qx%DJ>_^ZhjE zqGLAaci>$5xoNlWb1viR%e2b^ud>fdyEf;tW=Oj==aamber?V#=Kak%ns&`;SDEYb zH(nnv<#ic$Ju&i`_12i7WaSp@+UyPX>A0YZ-^u-&d4C(;%NUz6SiFW=Vj?pDnv@kd zmw+ce5TAr#>VVr}d7elof8mOKdf#l;97Q=Yznk;2KK~GQFBuOHq#gLT$Fgn9b}ZYq zY|pZN%ML6%wCu>TW6Mq~d&;t>EqlhYXDwS<_MGL|mg88CYdN0f_?8n`PG~ui<;0eg zSk9E?Ok2*3<;+@+vYa`~wJq1NT-S0v%k?ccu-wpcBg>5~H?iC)%bm8|8OxouTxGd) zmSCf7bGq<%I#if64@S@E2e*jD0LiEAaEmH1W?SV?Flk(I<&l32-shnDH5*v7p*0&>v#~XsShG{s?6fsI zW6jQ5v&x#Cvy^Qq$5O7PJWKhO3M>^`Dza2;sl-xKmYTNIjHPBRr7SgP&DqwRW6inN zoM+AX)?8rCh1OhT&BfMSV$DribJNz`j5RlF%_(bc?v=l_Psi;E68b{sLv#L2&P66| z&Y#7(tP8RyTwGrxx`xc5mvOwD;}smQ~$O$|F?a6?#`>jA@f{- z#pCShcjEmEIb^297s!yosZ!PsJCqe>CSGqXN<%^LM>$&w(1>eLK#7 ziK98cpzmCCj`sJm9?DwW{9fuIGDLHJjQ3*SYtC1BFKy7Ai##pudI2|TKKm2S+t)}x zh#b>=FKyN?-$IWUiP!*_i}z~j+xeH&*Xi;ao)MNzwPh-e)qQzkk2@pYp>ZZ5zo_hTm5!z;smkT2FCv1{$Sspg!?L9Wy~Mo^=7;t z<@Hy1ZR&S7>L+6?LtPP_LUe+7!3h^UcOmo_95;q6>0aeVyy1i!p1TqH8+-<;;9h0r zxmD=jbRM*2x4i2pPsUeM{_h~SiA>U*-<)%)M{~ZPa~VU;`9nCD`rUh>cBDaux1L^e zpL^q)+*lRfCcq0g`A`xGKQD{>{N6c$R&INHY{C~@aPNF^MX(gGdM@330!hrPwquKVnm7_hT zjhJ-kAXi;t9Gi1X>r(|WF{P;T@K95No> z#_@KJcW|V2z=OuTqJO0)Wi*Jn;LxGBfQS7>e$&{-WgLr`c8JeD)AyaG3l((@k{od| ze4p?4wXW^ztcUjOyPL7sH|5s4=$`ZV{Dxd3D!!35O~`|Jk4;280JTH7L1trDkT8t; z5+VLxZ+>_jbU3GwbF&!KC)`TB$@ST!z2`da*X#|lX1|l;T^!Ay^o{hPy5k%$VptQj zl|ddfr8n2shkU*~v69^b55c$@SjkaZU=J}xu4t3w3N2CX>e)qwT?$iAU^@i?g zTqAv@-Rw{^rJ#zS#hNo?9cXL>%opqg8sXLapyrZd9-%$yt`&>Z>dK;Cbc_+=+`DZE z@c(>yaprDWhtl*nmg!_M^E3vSX6QBd(sgEaY@R`W%X){YCT+|Zz>>6uWlayaiFRoc ze}QM`+{3u-i5`*`yVb4F$5D98MWQ%B1*F0|hWnhL8sY!KfGZZ93DY3!Q1fbt6(|6F zVx6rPWzQbGcA>Zi z2;t1seFR!m}&R@N0 zc`%^Xp)n#!Cs*ImrQfSA~MuJ^N$-Mn>vBfi|f?RqXVoLiM`mGjfF&7N0`vl7}Q z)F=Yx&@i4(eSX6IMNZi6UVrmnHJFXN&>qrX&H4Lye@^TCH~3y;qUQVO@?M_v-5erQ z%Xhk?t@FyJNRn}y&jjWb1!svL2b0*F)@k;01 z>Ks6Sb?6)%a-C~Lrtvw%zAAI5b`-bW!{?mSHbq`AvF9_Xv0;9n*I(vZcHRcKqC@Aj zL%Ol*YBTtrJ>U4XeVX$nulwK+?+zY-cFMW_6C6_S=KP1emv(E;#~9bQm8*A z&y+|BvgsSQv5EAtE;T0Cj=@Ku!Lo?*G#5}GGLOp!Cb z%qz{lN3x3i$J6)xjQ7`Y{N!f;g`E^l-G4^ipGMuM+ChSK*NLw}Z$_r;#MC7pnWjR- z+@g7g6-RUT7bhQeitCKwdFmtbFDnbmj0t1Yc?%|FT-|AHw(AC2z3n;a?QdHed;ev; zN?#kS-W`z%VQD&8-jjbidTkCj&H*D*U&UbW_)nGqy4_yza$NfY%8+&bWn*Stx{UWS zUYm2#+r&1=kk@~*?#S^Tj%(PL?!;@eFCF52BU8PX_kY15>)PNRa!gCbET;PPRufAL z%kyIY7ij99J%5D{?RUBERorO!9%Qa3(5tx~5ai(XZ{T`an|}kIubc7uNe-D4EUo&l zd6koiJ@@-+$1|t+m)qs*A4&*IdKe zxaV?wJO7Jo9?pc3*Y|VC+DujVe1PMF9DJq!5bPx5jSL9AO5ixuP#5Zh(8scaOtx&Y z#h@Bhf{pF@1SRGO1lVXlT5*!9ESKviR#uO;KWbf)5@~?eP>(<gm38%-ux5=MU+cDU9TzRQD_t6nDg-JZQztPDr`@y8 z$GRc3*O134&R-FvWQAl7eLCo85&Q&03VIZ`XR)xc)cOvP?=krSE1|wgSEW3+oIE@^ zv37C^VeROI{O*=OW)b(BmXcD?y_bu{j`XZi;KtKfqLwvste{y0>x`7Rv3>%yt_k^G zUg^|J@M_HE@~8|cMhx$?FHr6w@@>jyWzehouAL}!I>1CmWE*QIOAQ$BT!$%O?PNiN zNJHijp0B~RcpMzBh@aeOm7%c=;z|mGl;))VnC)E43%dQ}TkP;)<5A#5w_(*G{C#El zaJRFxc(b}8QPr)H-r5^$;aKWjhc=p2K@1xrcMr=DG8?ZJPJn46iXR5jd@q_ye>8FK z3SMH7Tqc_FpWMUfi%kqiEu_?9H)!^g6KM|qOmM@(oPRfdKf%n||4aL{jxKXu){pCu zFJ!JhokQ$Sx7}D~$emce{r9eWdtD~3?1c)oLxRAC3wh$m%F5BkWzk_r=6e}>ui`!; z7rl^mMdt8hIpjVf%OB!s*1!+(Uj7>W`@_8d1oL0)Y=?PBkz<-?{Q~Q-tR>wwNmc~& zHvu)$#Q77Q-`?fuzCB}n)%;e)J*xnDA<2ks|aOB(F_b zO%0xk&-WgDE;@wBbRXepp7Eo+{}{&+j^W-EwwCx9k^QuZ-I26-a!*XV z%HDM2Uotj2C8L7#2HPR+_^TWb9x*ba=m*l*nuU;cxE*^fOX2)+5nm0U8R1 z`i~dQ9>dxBGHF>F%>H;UQ^lp!EWBu;EW5JmGf-P2?^RqMbI&El)^T2&vGqB8ky6*j z_T4_eDW5mzjqSTRZ*0+Be2R{Uz-F;l9@aCnMsC)#O9af{UozwU5UMI zjK>QuuMw4X173qodxOsv$Bj9f^Ao%mn^vh)D?_EDM-wYhVXo2)oZ=a{T993|g5xffY;S70 z(63h>Sy){^dF6=}e%#^kdlL5$+y2KnKEWaK#HTnu%~7u-4S(S=f=DI~trDHVxLQ7Z zh`J-K@VlQ-R~ZLQ40^*g_K3E zzP`WaqfxV9G|NWcuQom1-tU{63@K)duZH}3=O1b8Hg*{aYtljj0bOfsX1@(K`+gMH ztQY!s0>eSk;%kk_F*dOEwH6Fc?C|R=Nc5`tkm>;4_B=INpo=rVYg6dpwODOu3=VNlXxBCawv;!Q>T8?7uG1W8C?Z^ zNu5xp9lfHoyl8&2)~U_fOr7@W;38?4IO<5Go+6vyn2T#EPmF(Z0b-Q~Gu4@QT1{2o zYyFz0{!OeK%`4GLxvnoyS0`|4KBz0-oa&CL%gVGIW3IbuS*WNNKy4RS9Yee-o9HQK zF03sp%K~?2E*F-HcR=&9~Q znAo;fD-8Y?xL4n#opm&e!@NF{b6MZzkGJ~xj6UniCNJUqnH*wo zkbPflOV7KJ(FtG7d$CQ)-%hSSU{>&p%4_IbgIvS%LI>rdN-4pkH&8FE-EE*So6Gp$hka6bAEN-xjd`rw9WT#?>ql2=fB?i zUe@?_`C@arHJ{bBpDt{AQY?AE_w9H2#!M`#y-@+=k=QI*tJ|bQ8iU zih>@SOPyn6fTIQW9V%zY%#$+lczQQ4Y zALjLa9AB!>-^S}FINr_iIgW2}G=FdA{YN>zf7QM{->yHuj@M6fe3RoA{7}Y$yf()l z|L(p$&*Qj`M5ZPM3liy1DB43JJ zBx6;6D|`KoIHWxJOnxhelqus~^o*Nu$Y=5!87ES%^pU)m-!*+E_qgORJjWbM9QWmT z49BxMUc>QTj!$xYh2w`DdyepI91|P?$1KMc93{siINrnYmmL4h@t+*Ou)vzdaWjsD z<3f(BI5Ljo9Dl;`RE`&MypiLh9AD@72ad6O(1sj0;kX6I4XCR;zqF4$zdWa$Z-yan z#*q9@#>w(3GC9X_jz8g$HjpyqdpR!Uv%7Ho5l3|fzTflYAB~NRR=wx9f2&Ck#OmIO zPn!hryfpHuAC7%v?;a1ZiDP#Y0Yt_}y%rHiyS%=*>_kVLD0h523#v5B$XJ}Kkqb7t zC=ltPjG?KUUqk@q+O%-WJSv^S@vA7$LN)4ca&3rWL2x_Q6u9$($mYT_^@F%nW3!uF zWA5if7@Fo6s(H*f^Tx_UDVdYnNfo3?3?o^Yd20N2TbE)ZbRg;Sag}?K>vDVFjuUl*BV6oDZVm6)`f6kst1HI{BAgdr zNV)%#EB6oWrb$vbO->%eFFrY`W9Zf zP62`VD|u9>C~@s8(i2yg`2mb|t8%j`eX)(vMt(+*QIMM!F%51zk!NRNR;gb&)>Gy9 z^r}3?j@yLl)m4up+SbVuSmAsxcPjOZ1$T_>d8wkV+2kY%N+u_%x_ory{uxvA{Tr^m zKV8!=(xj7<b`D9Q68XQceMaOf{xa|L6DKIFQf z;$fU9jl9%JOZxr4&v0Gbq(JGsaiZBeQA(%dLz6g#LaHhW;wtd6vqUAQ#cLtBy}iT0wH4RCY2Yf|0kmmGwG?FhoNjK|@9XwJ%gdb`mt_?>VN$vz4i1aLRsUnyHFSaJcCIPxFw7l0EMT5Y zOE*`)Ipi8PtfLFZ=5;hJ4;Yb!F(xk~3z}QzMWKFcXG78}>?-8SD)%9tECTi0yJ#T4 zgzeIa?KE*bJMltw6MwLQnt9QA+#t(br^>^aB`^#fU;WQv9V!_f>Gq~WS?@y{D5;7l z3PQ(L|7&N@o0LJ2vnv<0RZ_;b`W=~q9x1jwd>M{wtjv-cFkN))ZaP@kzJ!#42aR%Q z=7H=&*yw80rAz}S$Q(cPQX13q%cM~Mdl!uv1$mSL)VIsHWXPs!;wd9k(Q!PzOmxMS z`Od~^c7kKs>Q!rU@=}b_ zsPlR`cgzyj3^rEYEO)cW2@2PVd|%ykj+!N6*3tRTJa%2jW39MSTqJtWb;5d+pgKzY59}m~(lkjz*UNL)v(^5y zQQg?J9XqPBsHmzusZwQ~jk|c2AF(2ZcEVAxdEVk|+$CoM6qSg~9u}C)SLd9KyA&mK zyoYjwqpXN_ESftvFfYR*(k=o=Zes2r%|PDb=$!e)@(sTT}vxMEqNfI=J(pTqgw$iqCBfBg-mgveUOTP$hPn~}@ zS~s&@1k|kbE7vRHyik)nYu(Z>LnkXB8MTwlO+$6--Lx({3X(;Zc?p}g?{r1gRame(Iu$`nxEE&JC(St4l~njFI3d zEfz&>ZHb*nQc}X`uJyehNwvM(HBGsx(iA%tOO_M(ewZf(%3wG|jBaF^(9k!rrTKnV zl<?t;M0sp`rH|;Q;;Upi33ZF=V1vOnGsR;cU0A2_AT$%P z;^4-T+{1(2Pw(r2oq2XyhIyHgE?gyNq}b5OOE*YzmZ3DS3R_(;WTMrQf44`xG*8+6 zGm)jkFw4|!hAet!$?RTK*$}~VVHBdUg=MI2yRF_&(v$@xN}RyP7{LN^yJ7dz(th_| zw&$fOl3rwczGGLOy8X89#l8y3d=hxMi_R5=>h~TfBP}uF;rhw^$jW?oVZerhSg1c0 zLkeAX+?kwgIZ)aiy`?BvGnEOpm97qvcag*sUW+J5OZEH1`oswD-ADF=+)q%Ug4}a6 zHY7E58C7@fMow*8>Oy1oaeZx4TRB`itgutnzA$Q$CLVGqOK^~-eiWu^`h3a@DGu`y zd$p*#tD$+7pWA_(hZX8B)-jJ^KXYdp_OTxJ<{}zNlzm3Hc6GE{$4s`Nx;OTVz|XMi z*ba(G?5o*JD7dqx`|iM!KKyQ?QeZ+OuYetRE@lz<{?X*sp>}EE=B43WO_#LOl74T! z$AgnDX7OPoQ>D0z`8(tnws2TA52^JSQNP;4h1l;evlX=1a) zHoZTrjDeaHWVMX$HX|=`hd_V8eR9XGGOQuUP^s8kxsMkncaXMdo3%s2PYCu7jR((l zO{^O%`iDW|%xkm7d?xB^;<{OtI&SI5d6_$oxeMKj0X7A-~cmLg$$(FIh#${)5kXMmc zsXP6-79-rmjO~pe+i%t(Abyi%x;vSb^8^fGg+OzcGlMqnN&p*PwqH-)%l2;sg?Za! zK-K|hjr1U!yfL(5Za0}!W^1dm-HNqcU`YU@|4rHoGxn@z}^N`o+Fr*+kp z=M8pe&^RK})Ge?{DUI!@>}-pQ}Hdm4ake z$QIPtnq5cFn2xQPU|Lx`{du#6xN(pn|CUji1$kJy>TYqnlw__6T$W*92T-`lwUn%zwg5G<#B!{bx0cix4p{HcW&@E7Usa?H?mKoW8yfnn? z7?7PPSAVpVTU|Z7m1DS01F~A-oggY5}S3;OeiGO$w~eD$w`4N&B*d=e4{-(T(9OTXHbOI zsjE)i+9`>J+fGZ;dWG}>x4p+LnkJOV8R*yos)tyB$te#=_7yl)& zdq9iz9r4~su90s$=%lf%ag|-#YWeO`L!%%Kzi>cY)q?h&B?Lp-HPH<=&)sM={PkGa zg2a{^L^z~Z=1;SD$2R4I){`5=xlN)rj4;gG6bGC-)|mjh_jI-DDw%!2$L*i`Ss50% zu43C!_tY-g9ce*{_mnMu$K zR!+#Lw6L^yb09OVh)D)NjYk4Ij~zE=w~W+UcNO!H8=SCTZg6~Kb0UL*<}siU#Df&G z2u24#Pht}A2z&gl$1AoFjfI|m9wayN}4Eb}J>suI-}yXBMcDAwkH+8S^`9M`n9(ycr&^7TC$!vTE} zn#dvUB;(O1!ysy5h2hOs*L22ZyJnGi>7c@wegm!QqrQ{{wk1Fc>g1`ekc@;l)?%0C z1uKNB?j=@Ivu#LEhik&bjQg`!HmOGwKM)uRka@w8@M1KGMu(A^EX2~d@D@Y}N`uUe zvkaeqnnf|bwR^8|v)Gi4GnMt_e0zb@t`4PF5@W5s*qucUY@G^K3-~k!*6nEM%%MeAG4HNhVT+$d0GhY!}^yVQ^({ z76m#^7P~Aa`((uq=i0Wq-$*p@>{094B}tG5iez{TF{5VWsU-hp>Z|*2_e!8PS>j{F z6--*{73u*aGMIbY+ph0PFeTOWy{L@v@~4HDlztMb2abqwbYL#igpf(BlCuQYh&&!5 zgHL|Vf>jDvm#41Pw;H$(h@Vbr$t6K325UFR!4Tq+cGQDTS-a3p@~ZLz2M;O#_a-}Eif0FOpKZG(xSuFc4;%SC9-@Il_%eZgNw3m|LHH8q#U`*Q zivUOk41HM?_z^;Qm8gf0h#65zV7qI=Zs%9mfXbjiIni|U*&OD`a&Bqeb@Vs$;=K`S z1CaYd*Fo8tTj7L3DNPGM%S5 zm;1HkDC-F+Su4b`01+}!j~-d(`q+pPEs3?RgBHD-LI%yNJfqlfb#?h^U00dO%?80l-BLHFYu9cjuRqRFU=DdgD*q!JgiYxi2X2f=_+8DG+(NoG@`vF zdhhM6NQ~5_19Z8pNWew~08UVI-JlB9pN@0{8ky8xBZY^Jf(xPwPz@pw_Ay{s$Z1a= zxmp_a%xW04WcZYk(^504IIJ8uPf8m-07Jr4NAlC`{8K3cR62f|o*%v2j$3a#*~&HA zERj?d`+;A?1u(7xPu|lEGGw4A57jfb@jQ751{<3{cwAhKxu>2rqTPjNSwjj*qBARmh$*k03oWrDC=<_% zag9=Q2QZ3yw(ju;@w{_c+cayxX^<7sEwRf5Y#Zo*>N(q!8cNT#^E^uvBmq{%P(4>) z*E>>zMkpeBojiSFEJ&l&!}XF!F&a1!a`n9JT?ZyLXQ#@-0Jl>bxa#@ciQVq}j;10) zLFtt^r}6m$fmAQpWVCb@2#{o92<``QEe<0t`Lk1Ag8i4xkEG-_$>CT^)C=_h>$5!d z83jQd=TT15^BCFV;47%-=BQB{Vb;!?->C2|u{`{;}89;Ry`k5a%bRWutddbK=WI3tL_w~5nUF!_2 zDL`YG><;dDv{`l=_0qF=GXyjM>1sz*-e)S`ke1^6O#Q z50h84#3II3pp8I%`vrcbDs-aI4X}G*j#RH4(eB#be$u1zfTSV>VQchQw){;-oxY8X z?j92u!c&RQ78NC8qse0Rs;-1;#HSF?UVda%V0`jA54V^&YFTbjB@vlQ@m1rr1~Bq! zEt2#sQ(m9jqnUt4Nu)O3(wgWRcs4Oh6Ka%#ZpSjMUZb@+k=>Jy=$>>0b}=`@8zF)b zaTmD{pe6|DeB4~>wZpa{kkg%FxCp7dOnhQOu>Dm|Ua8mZzUoYWf);>(qrJH7ZR+)= zugs&G^|OXDbo8&5b=Aa8$V$<;Uk2NVj;7KH&}1hMa$+0898<4)!-(LWyC#((#xos5 zhVZAg5-ko>P=pYduz44Lfs%mG{l<|qXF$thJ zB-Y5rQ(M{rUcN}Zc|@G2HDna|5#p8knn8h|1Ce1T#N6SaTiAHN-(o~(Q>gx5bhniy zh;x8?&kI&(zQHAUP8Eo(izN!QX<4ebj_Amq*2ToF9TDl5yru$c5a=Fv%`#C;ur^{) zuW*E`w~a{TS^X&Hu5SNb@xGg@9W;LQcd(e?a0m@jZ`VV*eYF#FTZpXVD+Wqe5g zI0iQ=7|9O5HPoE^Q%cXKj z-Of1fHQGQ=ZpTg>R!27?h9~v_nZI+(+EZXt`;^d)%*~1rG!K@5M7>KdDedQW(cwCM zwLmJ@WdhP@8 z@WCOCUf-$R(IG&j9B&-P$T0IFPkl&l*F8_=)YsMh3tFAsf$89&Z-}||!&{Gy6=F!6 z28jsL0jJ>wAVWfeU)4vpUO(j8&P2u*hmy>K)TYIf9-8Xr0-S z`j|GN^*m_OnhkR2`hf|Y!)h3S%Z&31XNUUuu%0(0Av?ls-4J*y^0abYzXFLMgX}Y{wWzzIIetB0j(7Uq!P!f6q#c3+EQowopKY~% z>&l>WWv5ZtE@I;P9DF!zwjeS-x5-ThmIeuP^(*Y!K}sN_=c~_e$;Hc)@9TdiYg z4K&NI;{(jl?*#a}DrU3{tY$q`o>bJ+xfEHmD-sX&YzTpy>m;@Gv^Zxmyx1RH?6x9NbwU!>Y!{4jizG zh!n}agvtALJ?Zr$cOe~)XQ->XPy?)2VDMuR2vOvdTzx~2>;CJKp6fah))=t~_yL6i z{=&gjq5fuMmtd_dNk9@1MuLe1OGlu-IdT`-OxwG*)~cpz62u|!4gLL~1U0 zN8JSNE;62%sPB#l0>?}=3JGC+;3Wna?77zf{jlX~le12y1r|f#Ei_6<7&U03zw4^1 zQiuM_T z3yFY8x`N3?gpK+K?P=;f$v|@ihgTQYNTGp>hZ!Db4EVj~feAZ)ovP&IJd|_GqE*vZ z*yEBSwTbS>N~!*_J5}0E&Bi2LJZmDS(DF5;r7Uqq$2sO=+00X0eQ#s{@4i*oyS8Aq zl~EIYBZ@ksh3c`iS41phXbcGmCa`ES@S^W`*A`z^N8*v7n=RJd{s4QvGhPWpxlhG$ zHPReXav-J~DKf$dZWpoo!N}#!@QBb5BzVFBj;i0x3&W~Iv!=)3S3}{`u}F>sYwJ;n z&!H+49~uV7+y*uWp5D#@<*9$_j<}{sgfIL`qBS}$n`!q9g`4PNI3WnWLCOIZqW)R? zNpv?4ULG`1?GTq%0RY)!BQEl+P(K{`{pLY>_666h-)8NGm<+75V8x{^P&bJeCTt;z z{ld%DkMtI*@7#fx_v5*u3e6aWlLak2+A^ou%paM^)DkA zNtv|^NBVOURc62(NLwPj0R^cXCk#P3{AA>hD2jMCF5eb?|^c0;n2ao{MO;zxq>fc5V%d;6|RmANed1)*s(4+E;KD-CnMq{P(K@4IAeF}vqD1tfClOUv(;1jII49=(7v9nyA@Ydsd-XmW_G|!sLjU26m`=4DQL_3<3 zS}u~vDLtd+S7m|0&Iu7oMPyVIc<3PNexo{s*i^;TK*N2s&s9Ps0WVjQd~-dg55SM!#D{D40P4Cqg@Qbrn4e6Fl|~K>r-SWEWzLoodhf2gGRgf zhxYY}o>Z4WI2~ZjUKPNtgStlml$+o=0#6XC2aookPdYO)*4JK|9_w6Mz>k3Qh&@!0 z4_IU$GAe?39Zw3j8p4@-O2jQ;OhOmg!#~j;iG3X+s5vj-VJd3o;#+#?CXdspQnx88 zVC5d*0*T}W86K*KnNcCPlX2ZuS3nEtT@g`=JViCL3NOnGYXW#6YMDr&9HJq-D+P=p z58p{aZnvNaU{9LG33NLEwb^4HF{<5HLuzCoLGwC|(m;g@NGJl#xG==zSe**>$kEmo zA*rM`S>T$9-ksSHP(`q008%AbP2vC_HQEsY%+Ber0of0Yww|mBeUg08EbJ?!4p=3B z_QDGE{04!QVA69ufa`3;gweX{(WBx(*9(#|~Dt zU2r3??`uFsvtt*8NJTibkrUYclTtlq^!ORS&#)c31kMIZ3!W=twOl(>j~x{ha~;`d zMl(aHgW>BCYHqt%im*U3gFyqsuB>V5aig+v_pIq#$dtoFOxg=N5eW&4GLQ%X;b0?s z{HQ>`IydOf4Tp6PXGR?iQ=mGpu8S%zaC00ZaERauBDP;WVRUME39e(*|G_e#m?N|) zA*KuUPynk>?41vRPB;ah)Zz*vypg&W7=c3Xy2QxSLOpc}ZOFqgRm!S|*x{-tnfcJn zD^m`HYnzlqB11ASXoo)9A3mQv#J2^SmO=HWJ8JpikvHv@hh-v$BM1~cP-oZA)RRZM zvAwKHrmkCbZZn75n>AShTe~%JVhJm_ho;2BhG_H@Jw7{~D>_Y$2+{g) zq24>hz&K0XERK(>Idj!hM+bDCUC@1z0COuC=L=Nsw zIz5embcViqy1vPojjqFz1<2B|!CJ=Pzbf^NR-c2wIRo+BIgp?rKnl-XV7&# zqmRDcE0ah_-TV;^JB6Lx4{<<;ppZ*Q+)DNA(FaJ4k{YBU@ty+_F#~E=ZySJAT`coD zEaLzTsw0U+v8r`$X-ET3l?z#?lE}?%!g@V?OT?Yo>N%r=0_+*^hBF~faS}=sas>nnHc@Z@_E07RaO}_5M5g`qw%606xcbD&$wfd4;CFyR zlvOANu%KQr+6_GE*rZRzD~K&1Bc6jGTC~{0$<&{X-i*q6&@HpJX#)k(DMXf*7#jVY zSXV>0A{3tRu#tu2z>nihAdgD9$h2;ed(0Rv_i3X`@4w>mhTKPt!}#ZNjA}Wc5=Z^{s6={oZjI1QkT(Y5 z?ydVdMcU`Wi&xH;i|eU8B;5}?3FcJHb`YDOOjPP6r|1*S7-t|gP0Yzo`UEICb|(Z1 zry#Hw%8Zwu?fbD`xG_2btF8~D*2~WB{V;UE)&XjkSr9?>s9t_{?^i%l3RD>~+^|S^ zPW1{seS61vKh>Y7#|(~p$(bUH0Pa*=Q*27mWZ{sF)hmb0l>SnhLEk0}6oVo@f1h{@ zur6MzUbV}Dh>!|w9~M`tggK{FuO5{ssm{2EOS6C64^FgUj5>J9p z40@VGO~yDFUbD+;#~=vp0!kVa(uuDsWG{PH!f?{i@fl!3pX3 zCRZO^(@jJ;)++p`(5JA{18=m|>vvLI6L!5?$|B8pNfHPfD<(1Cj~J#P^#*N7>8)M= zc!>z#s3|ZYr>LXL87YMX#Y!*;-R!70j!Kx5?q^@$&C!eEMclYtjpdV?%2r5?kOTu% zBq7C3)tg4YEwVyqh=4;G7$b7MX23*>Kzl6@Z;&OLs1134p}d!st@Wd3C(?~<)C2YQ?LHR_O8|1c7(FQ=m_1eRIL(UqCF?(ix)`O1 zP3OApRs=#B@YzI&22vZG)9)PBm?m&AE#_)pY)2iYU6`bEv8z^StTrAF^{(AWa0!O# zI24OXAy|t_y?a-sAWj1I^q|EBYE0z(dv;SwloH4Tp(PtB8cGnU_i6#$5IHxLeo@VT z+m$adu;auet~e(c2zoE|7o!)jAoTG+<2!0IYd0P-m*p{oSIJMr)mB#OeWTCmT~6F! zU^y}BxM4LqqkNA#3C~6NV&Dkut^=%-5Y@07#33eoI5gkCo7M$innG3+#>_bfmx21g zZc3@ZIslCZ7#P5>$-@1?-IM}581cO&8W-`$ z8#XAkPmgNEckjm3tj&(oOG23zC@6jm#woQa$yJ{jm0(sQTz@Dh>gBHOY!F_>gc9GTxWTqX|8{~iu!u+=W8Cz(F5QuCh7|)1^ z4)DPWTIw&gl`PQSPi%V8)eCD2m`Rf3@=9>9Q0V!tU8Jaqpk83Y$8-EwMj~l03N#=C zoQ%olW~_YT@xa{-M<@{W*ab(S{(AKO+Ma1lUbR9{TPRuJFbZYs0P%$|kcT|bqA9!s zrlhMmbY7f657icCFj!@Bri~!OVt9>8^_3k}V){xdRIh5guY{L-ggI6qcZnwuR=KbK z94b+yz9(sRm}kU*Am)E<^p4FkBsq^zM*EEl!+he5CWb_bu$aLug(!wSADLnjG>G$c ztqAuUI(NmxdOJYQ-RDE+hb;bCLkt)E|Po4%I@LM|?0cU0|5T_5LJNz2~aX2n^>Ti!; zt0$zvBehMXl3$XEs4b=!mg|>GrcqgMw0XEa0k^oQ`+LSr+)6oywH30`kPv7x@vxk# zza8DH2g7%|;)@=UgXZ0O(ZF*}{v1O#)%9GPp-HSPOFp`wCn55Hk-w|Gqcxyx%K`@0 zQSEEgKoVJJYoHM@E3kuTAtXKl80M>X=#&R8`|zBZ=FfpBI(asT3bZ;KxJp3 zb_wT!;avUWZZsu?TNnU{eT9NNkW6IX+f6AsS|d2TIQB`mLX@xi{%%SsZ2~HMv8O{( zl#+4a2cu^$OcLLKm_5NLp?MVe0RO2AZ)&L>@rL9u2b>x$99tGuLzY9IUe>g;Q56vy zul{+okMcyT7@bR#du}Y`N9E$~JBmR+Y1pw|?kJV4~mg)N4Rj)U_QJ~r214W$ax7Nx>nj zf8FiWW`z*vXe7Z_#IJekr@Ji)Br#|qADIyUREeDSZ@VoC{|{L>Xl`IBAf9~nv(bCA z+;lDDj$;UXG@7r@DA$2^h|pS_r?mhm;%lGib+97?%39wpj4p@#4{pV9NPSl9cCH8vFv1B(X$E277h{Ov-EDLwcS`4 zrzD7$$^aZ@#lwH$!>~+k&cv$nlBEoIT{YIDV8^>R|uwx&uCL($1s?uS&<}I%tDa5V**Xwoci5~ zxpt8F-Dg^3@J0i|5*R?ha{sX#GvZnaxgRjLLy|FsY9iZ7RDx%K^hK_E;Fxf&;pZQ+ zZASF?#$ve^Y^*OVu7w%{vF3#MO)M)%TFOQro>^Hs2HgPO>H0y4qQ=aET@^DiA>5GQ zbst0oWl!f)?ZH6|uto47wx3`wj6u?p_>9e3J$&rfW!w|03N9Af%qC~aBgS^kZi?%c zsATw8J#-Bs-qa(l4(X?f!%~O&#aXRant0JeeBq;$*{rtxxT`1mB?2@ zBGw)^rs?9eQM9pz4*IEpf|CR-Ai)llmI-Uka#*-2r}b)yUAq?5c_>|_Txv`j?w{d#$9KHI?3D>^&NkfdKlJV;>&0DQ@|@RYIl z$P&@TE|BxFe+)OmnTT&~XQM#P`upb8!pbmU+AzFKJsnKPHo&xcQMO$m8*pPljz_#V zWdm_U0XBO7(MKY?gSJ{-c{ z77k_I`L7Z~Xa686^)JId96XytNs>kpX5>&!6pFXB}G+XK9d-Lu% z4(q2OgVD)$JXmfpra0iIQO6*Tc*dA0ySo|*ULA#L#sUKYCR+l42>k_vC!vw*nPb<7 z0WV8q0GKf8x;}Cwq}9(F`@sJR<8Kn=NAm3JrwKu(f!p^PU73f@r=BymHJEh}r!_dB zx3J=4-jy885Hp8udW7ne^EH=r=&KoZDZQmpK+ACutj&38S!-t`pxO6w`J|1CtJpVW(6(s_H9jKjK)rEHc!)cy56+i<&8K4rYy52U$K9%_Mx&*!2wKs#6X?J6W-PK{Qmch(X2r=CK#`%G>x?`k(sepx4oG zWYfa02dkgptWccPTgG+~4@M3pwk^S{V{OA3rrx@nQox5}kt)HcIwf>3fqL6%jXb1u zVkrPj*g3q*EU|Att>Q@QjBD3{_Xj}=kxsp1Oemu}134P(((NtGy(+gcjLiCP1?II_%JJwhHIPf{!aM^2DvMU@@CVsBkNQ0BHbIbi#}h3N-b;)3BSPE5fnrkV*#79BiWRA8RGM)<7)7 zOmY>gDkgBD_HOynj4))-Bm)dcr1kJ&yMR3_K&r=!^Z{+otLg2!ATQhpPy%vOhkQn?5nb&4EMIx8QO`*L&I8xQFx(X z!zcYnue){lHmgSnBe-6b^a#P?yI|~bjkk38wL1UyG0dgnF%@qP>`t6b6~!e@EzGnN zXjEnl?@*r+p32x_62j7m!I)OX_XIWVSuh)uV4mDKP`qLuAxn9rK05ZTQ#T~e3Y}!F z)s_Z8*72kdZ;z%C&R|%k zC~=DtLy@VEkA3WvE#$AA05|IzR{rb1Q4VtV%?B216}uj(Hb|lo0R~o|7~7}Oel7R+ zC$+`MtjCy{H%lT!79f%cnbb+$G(ssc0i=;6g&>O~@N4y{G08C1-LD1%6Suct4Y)_^ zO$!DZ(t)x9!7GkDQm9XlNrow%BtSE}9TmTWV@P532Xrj33<7`%=EJLnTNF_K*gO}7 z263%12=#I(rgh*51FK?t$?ao=B7hB=Klwv}MxRCg_MPanV?Sqt37$3)213ZW;Zk%R z^|`Sp$Y90>uh+tQD?by6Z1EILPBz|&Ca?ieH=p+>v(3R$mLive)P~5sQlB^5ldcX; zXecZMARcIZxQFx64cd0D9%MGTJ5I_zQ)?g4(ZcUROkG4!B#v_Rg|5Z61IvPtUL-LRU$#mjY*b61^_%(DFFU4p?)J}-p0~A^r{QX z>k%&-ypqs^tiTIq%cad(A+;Y0Sd%bN<`C;e07)x|oJl26sJ|W)63gwBBn9IuI6}5% z+@Sbfm>ME8sITbC>;g4T+$uaJD7lhw1mmFk>X-lphgBwqsg;NZp2ro=R(3F!JCi5` za28Svj%6Q#5T56+Y3$FiLZAaD_===~rm0~4UlbNuu&n^_$bl_M=`kItukWA)7FWPx z2xld9qUgakjPi;4#@MAi$hMkJ@@Lff*+7aCz0suw=MwF5!ugScFN)5nBEz22=4(EgHxA z9-yQpbkz9=6J6uMqk!h2Y8k#maIZu>6;K!Yek?j@C^8;U$p(AQd zr@y)5{MCC9is#_-*R~!slSpuNmM@phWeK8(U@257)-FiG4h!?(O4?Bn6KPh6pTv8maG( zZE(}b4DQ}q53Dnrv|mpX%dqojorI=0+~bUY`*Q2pS)gbd{ht~^Ro z$dt*wK?b*f+Ib)JBREgl2e7zB07gj_PKaedSld5e4>yg0&3lfI)g|;;w{!JFjUTJi zizV|y)qNam0YOGJtGWhpN(y195=qWLWKD`6?MGvGW4we0ce7J@e_(CEzCw}|7=#1D zFu*>lACJ9Oi`GL#Ec{AXAhaxEaJ-$>wQ*@-DM(jIG(0(pu|U>e0eyF6HR2?V1fsz~ zSFvZxI;sbCvr(Vw$6^d&G?M`t#tj!%c=DP^JnO%Vy;N7*Gydgzzt0|`oHVL}CM}!`cghgVZ;K+h%>|e)(GkKVp*;8`~H4zaJ$|tB~q1LOwvH;&z zKRx4*eyTCkGr+bpA_-rYM=uC#hKLRd|Cpp=Bvkyjv0L%z-2`=pe^3~?ZCW0!5#*8S>^=s`@V9%A1kaJ9i*3Dqij zD#%1uss9*zME|&xJQG~lncOu(;}mmSOt{UQ9nz!}*Z}}CC+b-XCm7LuC{z{NwC8z)x(?2TWCKJ_DXaeDar0PE=FK28*N2Op0fA=F(i8jVh~KK z>i*+G1wL$AbXpddInk>q+$s6fK~s{|0#8|xst1f~#v8pDd8}E3i4O&5ZRjFPf`!=dyfGrIbhbT)DkU%5tscXj{vPoBT>L2x4ONX!e z?QZCsnZri~timvGLOnzl*Am8Q^`P;`^;cyxEx%6xzQtg@bi?p~B$oOW{x@R7px&!;?(J889=1}I@Y!BoJgBmvi@1!0&{+i9&s%LYn&39Y0 zl+CiL zB}7(#4_g93wB5u=NuQgkaSfbV&UoF*Bs;1D%}U z-;3~-s7H)TY|OBAqEnhJ80sNq5j+uT&HxrYa8-eNpw`JxDNPj?*U0k-}30qjE zYQ%%VUJ4OG0H3mCD0|fSE)zNcgT@q22pbtqu|vRyKi=j1-@*aliXlh>LF$}o0D@5j z2$mwi2z~_E?sd~|>j8Zt3Qo+YOT_Wk?1&-R3IQx+DS?!DM-%nf@iP}_O?WU7nglE5 zV7^L>N{>68s*<5dAPPQ-DFn`5smG6N=`JLqF&FH=#s-TUf{1Y>-TCHo2~MOd2{r-Y z2VNMZ9Q$9Wo-i&x6Vq_U03G&O>uQnPB&&f=cjb;J$iLh(fBRAvNH8Q>;f*DLIA6i_ z!Yfp!q~1|a92ZjG#3&?9?V4KSxHQk9mW9n&-=qgkYGnBBnfq}-lvq!QQo$}?fT()X z_^b4SG1yrBE;O@L41~mPTHRUAbvK|K^)=nh$_c$VN`i-txRc>QE^8uMNjxEhKiCSv z>H#ZIf4bYLM#u+yAM7%5H1>^j(eC?AZ~}c! zE23Aa7uIc|nfH;1p1RwbiL({^FOgcrys@#Wr;T?}Bw!RYxBt*+=N27CTmCt9wlOmP zgiqgXees3*B$&*A*<^MFDE%3`FUf-y$8$3Lex%ze)H8Qok`t2SCa`s)Wzra^XX$;% z-%Z}Yq=Yihk3o>*n&Pc`_V^Sd#qmureo-zFzqeSr$L;8H4En53j;9lz>E!4v?y^F~ zKIFL>Y0(Lq!HlAwvsoFnY1{E(hGe56?H}u1C;~glZoyK*oe1M$EE%_-J1$WiL+a6( z#}_1tJy!~YRLnLUkU}HPJWoAuT!_HyHL>?GpdqnwG|H8O3)LnFnIscREW02g37jY1 z;OFZNa7fKMEflRCT{w139F4lEWNnvqoJ1fbL@WXI;%O!FV_e5uZPC)?yrz*F&MZQV zF{GKzW3sincN7LsR!6qrDB*w(d}Ju;oYV0fiAA`ZzRd%!fpG zsu!CrbJJ_d5YQe>I>3fF5&}7d|H)T>J}$17AzeniZMsI@cmboyC@ezOC(>{g7G1=gruHZEx| zx2Q$}O;09S0Y%F7;A9IE#w*;&*EAWzmTac_hpRkb=d`9x!SpJ^Cu6k`IoE zPMyM5$INT@HERVf)EN69REsw0(S7ymoj+QI+mvu!I3H1KNbjv)v)MduRyzk1^8E5b z25E(G$`fS|ph2+X5bn81!mk~dY;Qx_#<2mHTvlJ`iUJEH_AOXRsadko0OWw7Lo8nYDNGSF6IikPx85w-|O{8J=&tcy65%qmxQA9 zpTIZ-50Jna1I+`de~|w|hW3VCOa-6VJc8p(l087Q!+d(* zD8vZ@GBe~5D7h7co27d5xWx2oGgfF?5?*Ey5ywg)bFWi-#H34eg!8%-_)!+Cw=_l| zvs)Xn)yT+eD;sD882GiuSrN-D_@cRGkw8y}GPOp#g!rfOgj6Ktl}}vQao;+w!^PS} zlJsC>bqD>sIwY6zcEtHQ|FyPkLvD)|FNLHF+9mb2aS53Zj4B~U&4wiB%FXuUzP$yF zL?ElgE<&4Ip-sJgT)X6rZ%-lvbSU=r#9G)z+15!C&DiolRjPN4i{od=Ozf;Gtu6VK zJ}~lLd&De3NR9ao6qCAc7sHMXiC|G8tVy1Ok2Y8D9KT}gI(l^-kEQEJU}QU)mE;X3 z|D5LjS;%FgR~S^0LNhX8kwuLJFz?beGwy1}fG@r5x(9*!th4!-tIP26GYT))icf={ z0>}ihE5ceuygm!zyT|V=om(e*)g*yhrrOe#-q*hw>C`||g8wFoH3X6(J9yrE#s#%! zsz;H5PITIzdK3y$wtE*mJOo@fTT?2|2U} z-GD9bj3*LJT9VpbzQXps*(~llMOocUlD3tjb1SRcxORA>CjnfQm_wi}mfXF$`r!Br z|BKYKZ(NdL7!j19Z!#s34>?dD8rNu2gR4BPwya4fVP}#MSkhHz0USV;`mkQc0@Gu) zMT1$59@4>OZEu0ZQT+``pq7DHDls`Z%l~?jl2h)6xL9Gtr*Rwv zdSd)Prf1qN+NLuO`};R%!GW6*-Lp!uc*}|vg&#lVOmjgh5Wh?qo^VCNx%-Ln*U1Pr zhP@%!R)1O2nLEj4yj)RMG8608YQbPTJjwE7VM|^;Drj3Fs+-y0U}3j?S!eARd)KiI zo#F=O(Ttqo1=-32GSS)Ulj9opeu{d#(QfKJD{$T2)cg`4t#@2)*B|6G12PAU zKW!Uh#PR=Yj*<3M-^n;p1sU6AXTpTUW-QsWWxQaMjKG@0-G^D;@5R*``va)}jHU)rr#1z%ZAh%JgNk`@3Ero2NJ9Ty3S}()uLwb5VYyj`cpBAdG8C#VoEgDikNM)$i zK^=x5(z^zy>&*$Z0^lv-dQHsE&MIIApAa!3F-U3clIx23&qV3gA?pzgs`f$xmKjHtis z0)z(Fjzp(G(`gBuTHsnw7sOpa<{^(D1>kl*F>i#t{JnOI42~)6((tEr%Wb3LJB^+*(kQDQ0+W@wl~OjbY{ z5GCsSdTrnIV#gFE`JLutR@T1=)T&l?+2NuZnjMaUH}}uKrn9QV$>kzBdb1@5I>& zeg{k$$`HxgQ{Xp0)B}02l8s-lZswKMf*`7HJ;;KUg*KT&y#gxHgj5%2=waJEB23YR z4K*Ny5YX({>c^++SwZ{9XA4U(B+R(nD)ldVG!H)hHv7nJ6srFA0h)*x*T;nhV>y@z z^^@^K3AqtU04pF{J2E72^WF4c5;o(Px(;^ zN`Vb)eqMY4AOjg$M_Ao7*hYUxIk1){z{FVUuz)kE)z8K+r~S6zG&rTFil7Kc!GO6C zHcev3QvJJu{26})6@*kQ#iuE330N3Qq8V^S^8x6;^yK17sw0s$p_AX8gX1Aol2uP=4n%jH(}rD3{OFDfKz^`T6UA-#vT184q!j^AdW z9b8+tq%LUw1m24IBP%OM<-Wv*lVTMxaE=iZIL`g{p3Bv3)(^k_X@*OrBv2VBGs|xr zs{8LfXa0)Ij?b(`UNu!5Ts?fpi!Ygv=1s4Wma==x2kaHFY|U>!#K%eCAc0)VCuIOf z0z#Qz5Q}7m*&VlWh>e^y-eI90xOZD26I2v~GP?zGi--82uHCy!*e{`iSU@6#WP)XK z@K_Jpd*%SPMTJZ(#6T>Nm5&Jc;Ju49Q=N2054X-_m|w*qzIJjcTanD@_%HO^%hIJG zP*bx$3`i(BP{RVlp96d`BZsqk$lex0Oy91m7A7ZG^vJ@8P?xY>IUkwL4oX}+wgcK4 z{M$qKw!Pfbm+#oi?XtQ%Hhl=Gz68yvhwT-ouS{`3n9Vvt(-_c<6HPat%@I0X&f#RN zp7dsqJpdX{%&1on->c&-%)*N!$054B-;<;LeKP+$cSYB2ZnkZ2 z-xge1wR!{0ocL70BEa|p05a+kdc2vswe$1rhW88o4ua{SKG2Kwz!uZo12l{d+BGfIY$O8>r3;a5sk>!p>A>tZkdTp168j}P zs7-L0dfeXoiPJ5q1M4^6>AKZ8xK2itoNDZ{4qlc=#0-+T7$goX(dzMgA9%ghp}T$h z0h}Ung%E-K2!265VRw6#Ln0qce1zZnDE8#Md*WV^?N7(UT4N=c6D(Vajo?L&8=G7i zMcN+?H6+7n=|6{w^T8DNa`$Nn?+N>Gkz8pd5j6AJ9f@vl6wa_98q!7^RVNpk7e*eCc`6E7x92@}}Q z!%RJM?+t7B^0W5diIUoKWPhrUQ?8btuuYL2jq$|bk7M=hy@C++jX2&TMrsAwU~yE# z{n%B8$cRu7c7+`hi2~58dX8?*sAucZIE&K)S>%#I1TL+-f~gx3Lp^t|XmoWFKb`ak z@|C3}NhCv#!KtDkDwsCbQi=nm{yYK3@)6U^j>`~wCkHqvnlmJo z&)<8`&KN?RiUw2EZja0kq86FdH5Z~`VXeg^78>F#2#F@F2iT9JUa(ik6nEw{Lg)|~ z?()WO&a<{rK-2v-V)odp!3KJRN`^u z*f+yymPCnzC=%a-@6b{x`@Zk{zVF*7;dg9@rkz4FH;RDA(MTu0UhZ=K8x0sF3ATmU zSdeOy;BZAAl$XdEXUqdxXC6X;#SFaS0)~-~ASaZwme)?q4N@bT%s#4P-g9|y?bjaR zg@8W}$7k9k0lNHime-CqRZ*ah;gEr1o`c0hYrl4upTejjn#Bm)h+H1Fymo*HPKNNy z;nIhA0LppGLMhgXxtdX{(-G}wdBn0%Kp&j`rAJ>m!whdIk5;SpWxlIZRSahJO*L5_ zestJXzE3}*1+Vc_fy!s!%U>dj)0hI{4(Z;4;Ag|dzs~*qFU?YH$0O&i8DX-gC zV!{PeB+SOcY&DWMtSb=&Nd%~Ynh{~S=F6MTx%&NSL_SNuKNmKc3;Xk$;JpC+aJX6F z#TulSz9jA`Pjpm}J zWxv4NE=p;;()YB&Z7c{BBbmFv&6>o zq3u(Hegy9&Bt#T)01N~9$hMMdO0Zkbxs~wV0hKV;ia6V68YL`9L8!a;s^sdHOUU9wVUOk zxog=c&1Mq4hzE<7Rh$%Z`Nno&Y)aKp1fmkGC7gccTj$>i7bCiTh-W{?3H-AOl$P(- z()|Qc;$#gq%O|`X*9rOFxqq<_m>v#cYAAb)-OA-2_k}$Y`=F*L7y!~^bBIgY2L>kSfS`%r$YaLc3C4g98VIod^q zJP#}22OzJ+&~#vi6ZOMcR(^6UD4Mv|V5~DhFc*`*i`CiBHdQcH;p7Q{e8|Kf0dD+K zgS7P)Y|*2yazwec3f}%lqU0rAY+%|xgd~s{91j8UW z#!cZ4PPZN9z~ndin@PIqoxC}K914&Tnv=+$d#;zbUUWwZ79ga&KShs`KjF|vR7*}~W)9!})t-0pj@=vn}Y4-pC diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_pancakeswap_v3.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_pancakeswap_v3.wasm deleted file mode 100755 index 4a21d86a1a248b667ff80add1a1ddd75fddcd86b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507000 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

    1wj1cG(PbQ!eS*bUpPXNPf_>X_ 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

    -8T_#MtB*^{grtwyY`^2J!=K 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 z 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 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_template_factory.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_template_factory.wasm deleted file mode 100755 index 6338fb909fb9ccece412679e2c73fc110d5f3375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402665 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 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_template_singleton.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_template_singleton.wasm deleted file mode 100755 index 405059748ab3b3ee30b50711b650195d710e8b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458908 zcmeFa4Y*y^S?@bP*Z104Np?tJr(~|xc--6@PIK?WljNb?b24)Z1;JD9Jzg*Op56zr z(`3Me3ubiRks3Gq__>P3RDj@2Uj&+ z_Wu3*gR9!Us4mvRExzVk^cd|gn&Bblg>e5>$$l!~N;h~vK0u;6qsm&t%E+M{#i9es z5BQ%_hEmb4B);bQeYG2YaPN&jxHpK?oAzG4_nP>oYxV{;ci+1DwXePM`@a8m-+w(x zDm%63n%8~*O?$7|bLEX!U;q8D3F`5&^u1{uCt)Ls(ZKZKD z*1sU7U=W5;6gI;!Oxj@@HsY9suoFeidfJV{l*c&eMrlB)IHb;I6h!e<*j*KOqc9B8 zD5jN&N}`}inQj>N;%2?sY{tzb4AY3aB;-f`b(8X2Z-!}$x5Kc`d(mpDOxM(-FiEC> zA&Sx#%|(rF6eU3;N;+#>QIEE0VtSokI77eyT#{D*k+D7sH>A;-QE(=mOT$>%)>n$_ zCQYLTT})KH{)JY+e(4xR(ohIV(&VftC7(C!m$uSakF+|ok(%h3)l3hYblVq-<7Ns_ zahLz#E$-6iX800{Q#T3J(u~uy0Y2)6>%%q`IRN>k*FlmRn!-AmVUWP3s_8No-Fhta zgDCfp8qy>YKvA3|$tGX}>?G!o0;B+~%Ibd_Q6IqYM=E%whYVYnv1EMJtB`Twx5>yy zkWfACQIgxJl?Fy7&n8}|Hg6s-S&t8cvW#yvOez2P-CTzBPb zZuo&4Z@B)N>-XLi{7ba%roA`pxn`KT_lEgvuD>a`Ek0ZC?78N;tM`8YzH5f>T={)h zUw8HOuel~T7;kW|memzmHwABur$<}7_Uh|jcg;<~+vD`=>#n=uHNh8?`fIOowb+NAdCm2&jl=epS6+J!Eq~wDH(e7)&A*SrAP?Ig37eg-CMV)CX zl6*2b9{yJNNcidS6X8FHUk|?&e=2$;`h576@Nn|c@XPV^>s{sg?_d;gCs{?Gq?@AW_ULk~wc|EC{*&0E8Fg+Ceo=kT8J-QnTzZQ*ZSqTh=? zA3YxZQS^t=6VVrOOp8P@bndGy{qsix!k0nneUr2r` zd{6k(;m?FW8~#FiU)uVukDc+}^g|H-fh?SjI{hfxS^Oy>nTmoiYG+K#Jm`mc*pK)h zcVdz*?1t?u$im+33kwUusx}4UXs6x^1`)3gc;(`5ka6#GxQ31 z!z`huZb<*_ZJ*gDm-qAFyJqrmZ@&iMG+N6KTtK3_$5c_!{>pbm4W#c7YwnI(|319LjU4xnJoh7)c2jQJ zbByoJyZb;q8{K)5Q4@lbd{aLG;2?kIx##MaYV7hF!`j&Qx;KJ5pcq^)tErkKiW%wMuEPj&-9Z;-xnMyWG2T-T7+ zGe$1z1Z{>^9X@0oPV=5&B7ZhkzuK3~45B>VHwgC)f;`?0y%`|{`GK3%^AM8CNL~Ptl+YOl8 zppmv(dFTK_`btWq`7~HD#0E1qm^I@afu=mkbTNZEJD}J1POr@I)0@kJ8Jmvvej}@a zCX$)Z{HWC$c|5B2T2V3cv!NNoHG%jXFluGvuu}tI4!|m8!sG=sVK@;C(-{g}r_Q^2 zVknuLHRiIOKqwW8-z3|j4ZKUGy#aHX3;_-hDz?GX5E)dWjA@@C^0G0xdADehA=R*6 zqHctgOz8xCMg(p|MGH*oy?MkBJ*SoVJ-e?RG(;~*en&5wNke*}_Qs&D-qh7_hx+Ry z^wOx%izbkx7w(`#z!6lQVrY6!b$}$1hY`&Hiq~-7yxTVq`zP;i5tI`X!->$ynPO1> z-a)!s6sGwEDcUT_U~bT`7-^%Qauw^=eB;uAj*Zlf;Wb3)bitb77Jv*AMqLCA1E76l zHB1H#vifJw%t{;kFz;#hQ@8IdcXI>UC}xKGNrP6C>t!8|%p4!~5;k7+5_C9(xaqE5 zGJ)x3z364V>}9QAS1%#9Mjw(g>S!=B5Q(RCUHkw6A!uOQmSB#}VK?c)P=O18Hh7^o zLx#~yZI7|E8dQ^%RFlQK2heUjKC}Cho|4(INDcTr#{@;jDlZu%GksK97$_4B-kI^- zP&>vDMfglZjUZAptIxniLyB=D_6pLGmgE`J6AB%Ap*D?3NR!e0tE4f2p&{qsL7bx| z&QWu7+c=Dy;OUTa2(JU?i^C?;QG8LaK(}L@BOT`)>5y}zMa83>!`LJJqLnJ=fX1qv z!+3LrbHFPqoCCxdeBcS}S2zciB2XOX0B|^v=Nx2AD}$kuyr1?N=m(CR-R}r4k!Ow~ z?=k@dQjxKUL8vKz-$F9SjPC8*8GwNU7ooq1VfL7m7j}`As_2Mb)6~M4xMeqkH)ueG z+sbq+bg$K|Aqy{^*%sO35SDvfF8#@${(^WxAcB$rb2K%m!^|&2VvMf!OC|S+%RT0EePK%__db{VfY0@XEtTBkF84v7>kC^d zxgT)35BXeQ*iy+o;c_4GxxTQalKZgBeaz?j!j?+zqb~OepX&=-D!Grl+$VjmFKnsg zo^-ii^|`*VrIP!U%YDY@`ofkps^Pwp4PTb-4%K6fO!|s+-2fK86Jsin*R& zVT{Q5ni!#%*xb$Kv*@|Jf}MgGyiad*8d4-usrQH>*%>ew>@?YB6+WYivh)&|m@yb0 zvF>UG-*P;y;9e+E7oiH2Tq{DFxk_PDp3_A;#(Ffi&ly#X8NL=L7VDoJln&(Df!$PTP$&Fv9-akeA_ zrF>&r?ijh13y@>BNRfZQKP56`6uphlE0YXye5jD>0FjXfI zcJhTn=J)>a;DQ@0C?hNt$(k^)VJgh1ke8%a1x~MG)GB&aQ0i3x!e~o-L^MegFbhc+ zdeM+3Z^8uFZAchw!8z0h>oR>EMj;+kz~=kX4gtmJ@*-sMP|LkY7KQZI1hE?L&O>P_ z8W-%$TJMC+X5fkDR0ZCHfl6ZhTM>sM#d!Ak}7?n=MYHlK~MUEH%M|=ppEZ z=>X;QWg`h;&JZw2U7hA3fuKZEUTxK_>45^vSHhhUv4Je$W7B%TofrhL34ftMe_hLqz`XYMLS6=NIUeTEt0H~b~H-bAewxUc38}PVcuDe z5yS>*%Q4c|)sZ%2;7A+H$)*xRFc#qmr=T;~@+h6jTxiU-rvuipnZ^}zi>)X%}zB6BI^@wVs|ik$o~^JiOh zbC&FiwnqoCqw-r-$+qaV!`oM5Iwbky0VKOX3GScL{Z)4Rv~I5;?GXq*$)648dIwcQ zzQMZ@WyjGrRl*8)3B(i51DGY}M3-$BT4Wg|`D5l!gYC#2!Q9wJ-xGVGw>{p$ZMZ$& z$|cwy&ki#(m$AWR^oAJ?mjXTnlzDasY41&fP0p2@bEE_u0Vv{y5PJXvDj5X#e=mG9 z#-oZ|ndCd>@a`n}mbreDOE%YUahaa$3qIJ3MznTxz8}X!EW2v5*yMZ`ztY+e!xI%^ zc^F^ry;)#jY2*)Ubd7I=hKGaegouX&=RX$OLa>W?L`pZ+sCqKqiJHd2bz*yL1D@4( zJ;%RQ>Px~y{kB1OdwgTo-BtS@1_NH^M*o=)m7^c}(SL&g+ZJ7JW6O}1LvG`I8Sg>| z4iM){uZ}Zfb(wL#qB71W%W<|Yd06gU0W3y-qp&QZIi}Q#U}-QKLKQfxc1hJtoBJ*Q z`UeeL_}+{tLDa&+0hE_2RZG|F9_aa@5hvDidq6yCVOH0(s+0=|MiamZ=W;TfcTfV;4|!>$Bn0YCNFK#@T+NCPg_s-=DNWzpXt2R|`PuIw25LocthY~>?? z^m%*E#h zP2RvRmO!lU1<2=u-FvXOTdelM_<Hr|odZ^>%+@7i(4E%?owLwdLM-WN2e5Pb?Z z@~EF^HOKB_?(xqiN>8|#GGqhjAR#p+6{l@_f0p_P<|x`pX6N(Wgo z@97{*popM-Rah#OEKi469R=ftAt&Rjm-`;}X%o0s%QqGlsMN$FyC z>lWPrAANjtvuZ~Xrk|f zr>1$548SaSRhQWq%RdE8C<}1hz|(mqkBEj5g1Po?HL}$RkppryLK$^7<;{3N4Kj5e zw1z(@qGI~frC`v(A;3*CXwDD1xCRER)LUUiktU)S(HX*nwz8%Hq9*YI_7<$kR_};i zJHDB6u^KG#D97tq8Y)m?SHLONbS)snF3q;6pH)QU2RR~PR^W}>9_JDZ>5p^PW>{q!re3ZS0A9DG9xAE2GqgVOv}pB zOX(jVfI(BsV4CD;P;iQgwo(m(xF~ZTt?D@quH^ta1sYPk;;gkztWKUc#SciL1~z(O zHu9pVaWkEkZ&}n4W}#+;r$P-!pLyrv1RSYusoDA=ia~|9D(+S&#V& zR-i!&q7%W~W~(YgjiEajR=wLaABa|Z;3LB4OY_Hd?G>}GQUWmXr7>4?IdK)6Tvo&;d9Qb`iZdJviK;Nn5r!=~%%xxmCIaPxIE4VTv2y+Qx8wb9mHlsXCjr=5xd7}` z1mN@>v^%i?gbF19x5tugqUUjvcv~ZpilF~K^iFt59Mx3iP8L^`c6dyf1^Ies&phND z6sNXl()KO_N2)b4eum?zT2xB{LVg7vTCs5`i#3dQqJU=LYv`QHB<0Zir%=Me!l5)Y!jAl{Mhy?5O`PAX(2$f zIt>ua|CIoNQ#lmPq`Mm5qd?@(*xZCFCS z!4cQ7Nr=nbWe|#VsX>)mx^>2OS3>L()Md1!A{BB%4vCUnaFgqxsZo`#h|*UAOe!hN zx|G2p-6is_Q^Hj(Y_w8$K;0|g=}@RmV$~!?Ch14J0)lyH5MA}?0GW;m<32$Bf^(@1 zO+XloJd_O*kTM0gHBW)L7ph#Ly>G}PVZs$wkOih92OzRDNBA&$3F?A#-^bVWm5%FI zikW0E6H^Tk7$hdj9sWD>=qkJSo0>%$lG6IQdkN?L!npJPD&D|gxuP=ZE2c^!Q{_5} zcvIzCW-X@5UQ#@J{+{72UQ!+&7IIh;;1>67;od!|+lxuNKoc6L>PkHK7gT2SL#0Qz z@Z2x$r%$%Wr}WbUf+MJki~HJ&pZ>;W-1J+&L2mlo8L{uMQH*xxJ1V~V9p}dt1-P@&{vsO zo!JQGVzBHYYoYKq!KE**jOnB0m>Szbi4`DTP@EnRBePLJOn0gRBJQ~oK)zWn`np{7 zwHMh(&z!~An;-d$6Oya2E7Sm6+!^}l@6t$#k5G^15FS$zP2VTCJ7vQ5u z?yH#xCTXVh(Z93kO)_b3(8JZtL2auLeV(c}rH{UBCZ4nz3_dmUvy=1&+J~#ZNIv@I z$L7BaA3d@UQMR;?eglRxSsQylu2I)55u!N~bm+#Ui8y`W?|c#;hVzh_5LvqT!a3_TN-2qDQM1kxZc(W+Kw|EUz|KB(2#*Tgdj3cGfus zv3?3kd)e^z6;ec`VweHM?O7&Wl{mxQPOcke6wNLnW>IC9;)L-z(Z-S`$5`IzIq(jt zB(cg*0}uFK=us%zNo2LzUD0se3MM0*@Pps1SX1G3pm9c}c>>&$^d~iP7L()nlCl!u z>RhML1VF()gKat2CSKZN>rP>EAu#-ynHB#3RU`D@I3;umBlJA!idr+k;FBXATqYXP z;m8Qv#I@nBVMkY}81?pZT?_U|&3g5=>;DV&#q-1r_;<4znnu)mWPRNQ^c2y7qwD#Ea(Er_ZXmRPj;$3PajWTwjk$d5i>@Yi zw#Qdxok~2%|F0$%-0{Uz6FXy(98iejIJ!*FDI6<`;}G588W^(NiFLQdVH{njB7W+( zP5*&Ez|WnEXfAKbS2sz-uq{ApGZVtijcB7FX<-!Cd+!o0N{>t<<20uaDZwKxmFT_0 zc!K3&kyBive0B^LnS2hGcvi49M`1};2+L1Q0!yg{{$$bRiM2qlI{)Y}Qe*ipJ1tO> z@5Kq$SiU7w1iOa0Z{J{zLJ@==qvs99m!pe~geZv)Y%$ohLcE!U?qLcf9?h{5TSiJe z54CXX^HK}{scvpz&MPR~!cq47jQ?#ld=!E z*5ZcZyo?)i5Nh~cXj}zi3u>T$xW&pKOaqCY$U6y01a=C~OL(}O3jJ(W#GTOYy&^(8 zUXfRj@&<=?2-EOs5v1G+!yT@ynHq*iT_V~FzAT0}NdNX2&I$>`3c0z?1%&sAoE``b zcom3IcZkR5(!;zY5Y7QR8nEbVv4F*R7_fMnQE47^5dzNjJwWInU{LEd=pn=9LKL;! z$Jh{bEqTJlLRo7?h$0EXqCymd+${MZ|K-Ax4|3Qo^C|zQuby!35B6nxGoyx&)j|$f zek^0uEiG`0*2~(2TJDm@p+l{PP<4DqK8>_sCUjmGXEz@ci z_;oR5GG?W=Sjci}v0XG9(yTaV5mZ*EZVw0!NrjcU{4%VJ1$h@XX4$dN9!7Wh{DjRw z#%>5J!=b3KGJB6e0JX;|H))n)xfcCJ+q6zPM`tLC4srC{zx>PoISZev-QwzL=tzu^ z*s;|5sUnpUIm>(s$tG~HnMVquXpw;Ut^-CMabF*<^)P-cNVw>~Xc+zHhEl*gW?30p zYQh$`x?<|Wt#0>P;(?MK(iQzBU|G$xg&%rBY+aekc?fb8sBcxc>)I8~U}Y(bCyIlh z`x-1+{xxU3+7cy>jKT%ezPD{g=*WCIIW8$t3MDCb2)FKUk*vIoB7UB*>>ycLS*ef- z=;z56 zOiY}Qg))ns?!4(Xe<~jRi!0*v@?{n#HaKe&qn;3r=VxE`?twg(^2=;AzYI#i@H`c* zOqI`^MIphu4KBFU z;ChMdG@Xs*h}t-!5}^k10}Lx!rkE{#ViN5o$D<-vDFlX>$)^WHgf#-is8E(GepzZ- z5{ehk_H0#bPj7d&Wp~E1J7r%ncYE&^ZOGC~#Lt{$mTO4{;?kQ3yet1>4}GNYv19vb zVd8@>h4+vn&gwMlY9!o#V(ZGg@;^CAGiF^W+`cs8qDgz>jkwQF(u|o_VtwDvaqyRU zA3MW~@E%%4dhF<@;>VRnbF$>pL3^^WqK&1cv`kphvVptzbG#cGQ?hKFt$dzHfL6i( zjdN7&rEgY-=4M}9b%mu@Dc}2zCe!0KBqi-&yX zgFf?tYUVMYd9TmBre4;flb#sznSls?tT0@@SgC_eI8|Jsx8Y8y|1V0AF=ZcggmU6GkZ5@_7ZmAE1y`L}2iNnlB$5n22SWe7nHaZdZ zjuz!UU?~rdwfnH8J`(osE6P1&DG#e0`>IL+AGPGil$;Gy#iwSYlOz3~HTE9`HVI;bfhHi(2j0rX#1dcPq>dX-Y-|pcZ z)!m zC|SfyuEGs+)kt7SxS1vxX*xESp}zni1k!+EJ#WSK&Hth96kBNv6_?-wCsw4cxuJ&e z{Ok)whP8U5*=l#XQ>%JG5Uid#D>!q*`rwRU-SpZu82dV;1&-=B?4tQADUkO= z3RKW@K~K1q&Soy5$2A6~=oxd53XiPRL|&3dHg+D_coc(lN&FnJbE2zk^Y=$)E|mpg85t_Nv=SNQl+bjQmDn4@U7HVps@1i z#ql-P+8fc2IEMGa?z%}^W6@c2@{cBI?F`r2V`|MinP_Ty(x%v{sHVO)NmJ`wQ-8gv zV{0dEZIx^7laoxyY1i5_i>An$Nn5k%(K!FFleD(hwMLZV*o0g?X=|SNzc5K_Yg}tz zEm|u{q&I16o4n=HT7^k*zK6fR36(zHlY z5X(~@qCx1_nK_Z?Db%Hly5yb{KdrNVWbX{LVWovmWM}=b-vd*FZJLr=NfkHb0Pl=H6q(*ZrHfmt(H8COMj5K@ zI`hz=z3aK)wq3Wr;ozaeM@}q+`}-XgLgB*L>hga|;J81)i094;f&qJNZy(fl9k^Y4 z2maeX|KneO@x#yUzvZ@F3q>^tZX47t?*`Tre8lKgwf|(6Lp+zYcF*St6id1~BI->%0#2vQJY49)RFx8a zL6x9ECD;<`!(Af~rEPCP2R;?5c%+s`i|fcX4I5SKqIK-zeRelj%$K+@cnI8uHcGpu zGp)V5Y)p@{F4YgZ8Y#@}sy`0?OI(l(xQK=U7m<;^RN}>Jh@9!+ro*C{(9KvLb#nnH zh$u|dR2&(_DR$abNQmL%VG(1<*=HQ8su|~vb?ghgM%$xjlm>-M(R-46o=yt+PrLia zb$?Q29%fz|IAcpabd1w!G`Tql-+EIlZiB>!X+gut>UNqx8u|h17&|Bc^2Yjv04V}z z44#96zO;fpqE`fuj%N|laXHV~x;<^zg^jd#dm3VK zd)i3f>PGr8ji|qW#EmrLJ38vvuO&4+tnvcWQNUu1L;sqYOJn`PDiu6bQh}{*^Tu&1 zH^M>HyifPIH;<^naZ#Yoid{Q#5a?lCAc$u}zc6|e3@vK8k4N0~LjmD&RuL2AA|ybj zn9oxor?_)HX=iXYdWV=Dj2$V=kI4A17z`lFK^r3?XygcIH?mk8o72|L4{>QM=(;pv zM;Lx8?4S!SGq1sS(Irh@>+g~i8v^jb!xK&H6JV1z8NhOgZIYV^KE=ddx9pHEGqG8u z8v=BSiM<3s#%aa?T102lD+S0&vqdvo^{ixObKL82W}Z?rb=T4X0xKE$|J|(eEFv6t>aX! z(t{BV-HfoJHK5Pjj1x*S9R}MMvlAENi1sRzmGCepI;YYW=W3mb$%<>pVW#@H5yRlD z_o_c_1oaeO+M}}CnH|R_QI-+y8i*a<4k)qTnH2lp>iFa&78M5vsIjf%jhO~EiLc0; z0dJh7X9R<(v8N@0P=0!)(b1Z;Yu;FVaFVWl+sZGUdLj6!H)j#MBuGnmIl5> z0s^@tNJg0{YguV+qtD=uU zCQQj{Gsy~@DR-lssu=>AWT1vVkO^TGPuh%k^On0&PSuPFaw0`u6d}Gm(n=vdwTuv# z;C-=#I2)Iqw-BF9Tzd)nSCa@eqZf_>l~BVia!59he65X1htqp@4^HCRGO7vk6!HFZ%YG^FIhcL0ZIs5AvIa~C~gs+HxI4C8=V}z!iy1UDusK{ zc+=@^!h5S?G|iu8-J`S#sTCkhi~_+#V)U4|5%2Y4^i3v4qn-II8m>%5)Y2%Q#Zi^& z#Fl*4Z6K9Il{SAYbS{vmjCs24G-V&Y-HgB$dw0IkMxgv?ODk&22qvu_AhxZ>p4urOh+3O!N}IB6^o^=0%l>%Qtgc znTQ7PqRB+~%k!3rFavnrNYu@!nZK-A>y5wTlZY-u2j8pmqU$FL(KRvA`lY*{{P;%- z|HbmltpsR&dx|c?2A`kkQcUFKPBL9QlvOw-m9fKRY#nCIx|Hns3$Z&9V#K3r#fudH zeX+xAK*CB)c-h$qDGS>D(o&3fI(raZWI1=|U0#&kX`-yh5(oNsZ}iM81lnN7(V^4`ifvR;db8R6>T`dBWpnlE~ubJPyx0iXKPysh2iU7>qw1Q0heR3 z0hOFop%v+ERH=_}3?hrK2njCOa9zG>PT%WeKX#Lt&7!Y-qJf4R{xH$@?V-?7oFheV z)Qk>};#z4&yPRB(?fD$Zv4aeF#|{)5$=TxHv2B$jIeZE$0Lb!Ss&CQxsc#F32KN28 z9`rTFLH=3~xQ)jUa7qR))`h?gk(ixIq7@4po?$^Pjs*EFs%5O?2wD~M$Z4Y^n0R?H z9^{purL>wvz@uY=ZZ-1m8!Fwgek?zn8=w_8pmu?+$!AU z3QNqmyPT9QI29Kk^TII=1nfIC&h1HZQ7~e0(G~^4*ty$rexA^!fF$ChRF71tU{LJG z!LwB!^8#-yk9kRKGg2sDl5JOf(p3M@{8(sB`PX??B$$?kP;c_PxGLa@)nbCuLPb(w zGK92;Z4fFDy}yd9Mykh^1JqV?IYy~9TtC2dEmuVc>w8CpZ1mT0eTM59T;ccq^~&dY z1J^rwK9g%U*FTF36Ksad6Xdcv+jdU9B*qYN^5E?3B?RUnI+Bdri@L)zX}}?D-l-AE zFht7l8`JE!&$U(1t21c~iR1WV6eU~iOd1y-RoTo$^oHW2HfbB#CbyRp%EW#YW zk><*~9`fD{OG!w1v{;f-Sr?6Qj+$ZHtv4iSW-w_pE!WJ)|LTNunw+YcSv5mY2qNt^M#`Nc_k^RLuQtJ=(_Nt>}~jWB=1B+Yz> znnBVJk)~}n6On)|{Dk?>IRo|7NZYJti1-~gqy04#HRF-?{z;m7sZ^UTgzNMl#r(2e z%i_4gT}*au?tKc&B;k`jQT``^KRytO+_*w;7A65_pq8fSwKF(rMmujN>a{JBhWWjd z%rB%@!sm!8&1lQbM9rArIm{0iHq5CAA2LZY;=zZ#(O#R0n(_1NXD6Y^O&UWSaP0DS zgNM-7N*4qsUm@lST)L{pAeSP{7z6^|jcqNb@mUSRl zd#AIZ29RVK8UX3pMcuQi67%d8N`JNsEeXZ?Zv*MSX<39WE&bVG@QslELg`AR|Cypx z`%=n?E~9EzBK;W|q(5xe{dvhP&-GM<fy3gdIM9^*EOe&?3vHhX9)(=?FB*z#~<@ z9C){%PTRt-(b<5%Hp$iig>$5ms6BckJqGXs3etyAc;WZKNf;;FJ(Fy0wHfWso2VJj zpMQ0dX4vPMWYbkKplx{*HREymJCiiS2G1m0SMAO8q|I26NSMEK64`l{=I|MdHHNR_ zrScjBn*jvN8DkoQ_Uuj6Yx5I^`5#T9TpCMRzZe{jgDAj>7hnlVwtfs8ZR%SIIPaKb z5D;BSwxK!*+Re9;X8vT7X4Y#E&K&9WnY~|>app9DyNce+PjIJk#BZ$zfS_IpFCaMA30A~P%#iUJW|7*{coG9b=KTd29N3lQZ zn{WTGUlyTDYXEHb`bKB~Lg`90fT^W509CUR4SgGqeA?2gEE0V6Dqeqtnl;m&u44GLmY0?+(sCyAT zWM{1qjPBAiMAfWhhQKPvW=LiyH%nzM?Z3h-l$tCBSwZ^Wo+ja#K%fuKnJp@oIt(ou z;;Qpwv)tO0+{_M2!stO-qm zr=&9X?l&n*Mz8KZIQ#J=PV{o=6a;Eji%$cd1v+rOMvMWitH4hhc@%#Iu za8PVz8m~kqb%)!Vcw5Jl+V-YoxV`CAepB(9W%^Cdiux@?F7CQ<1=IdA)U7X#YxbSW z?ks8bE9^W07P3#4Fd6s+Cj$l>+aQBUUCg-P{V;{>EJS$eQPL3v6Dec_EXZT~`AHPA zb-wx8qWP_^d2_MORGXigw0T?h5A(m9L<^o4Vm8uDX)tvsZDx(@ChiEN%bLxL zLB&NZv-wSbV}AAJLDh$YRx%@ppiVkqo-F@v60+p8-xXe?gA~89uzBz3n-&f65{n#s zcNmrkMakq(Mi~S6T@j=fxKa+e0`C0+Zqj~D7%L<|i|wq!Km-0vIh+RCOs@?8Ro18< zAQw~+GPH9vJFo&**X=y-Gsylr49n%|Y<>{A&Vjzz zd%&!BXl9(FmnAbg4WEA@@=oWk@u@xizjS6$gJ+ZZESWkT(sY3YjzwhO96j!%hayOM zB~q*cM^)tbIW`bGNB#H+bet*DQ%av5d!c+pfW6-PMV2V332aKw06~(FL@6Ud-S==6 zvGzvILG(>aWwvK{?ZLKclP4(i!^Zb_%ad6-dd~OPz_p`H`vST6{;mPZN{K*II-*yr z-x(@3J+!8D=A47g1B!RLEvKnz#=E%P!nSqYVBQzr^wabjOn=qsE(^?LPgMwzAe?PF1G8O z7~n9)CKxWZJ9sq*-C}zM{&KN>96&Hqni7U}9LS>XRVa64*5l(gnxX+UbhK($e_0Z?AZKS3dv~pVp8V2f}>-W(dSV&6JXPdwi|{h@}?V zeJy521jB{)(~L^{XrFmh{qrVwOAhy9wa56lv@l?GbxYj=XHgvN~C}`4> zF)n(Q0I{2rz=^-bi3z8okfG?+LZc#9oOH^9_LrN{+L1FvW1l775bw>SJ)8%Rbcyqp z7*=bJadroj3q1ZOAOxMhF-QfM4jBpeye{8#Q{KET{{$P~YWwtx1QMls9Nh)W;-h1O zx*Qq3UluXKw@BIufe^to8)bu5CC}cQ9duY|CvOYi?&G@|y8B<;-LB4L8syMK!m#vx0kQ8g@vUPKVUdG1*mO?I#GUYfO zi({uaZ)+~&{HdwAjKHKGA9K3D&yor42KhqxD!O<^f4!QO@X~o{aN0ADlEpwP1V7Gs zKk;YJp8*>Wz8BeX#;*FI!Fpo9knQMJakl<~fNd032|ry=6SQJvK+n-<*cI@A#z~l~ z3%MF|EbN-(e-Q8Fd$&Gf(>Mdge^tdvRE!|=pP(F6A2S`tdN3p$I{ZJM9}sL|J-46gtmq79 z#g5a?3Qz;GE*|*)Elt6=1dOOajU%dhg{ZKVT_u+dx<*trjc#`tq9Vo&UOuOD*;dVE zwYfp3Adk*Cd8`^I4{a)na|mmUJUT=2=nTmN1$C*Ul|gLr(9Tat&m4>`bT zh6wj0!;p2L6~?+8G8d+sbu?tIMGY@1G-Kl5w^ki1YySrqam;!Pda5He6G*XroFRak zquvva@?d0WrodSQsuQlq=87yTw(n9_a<2U!(S9k$cpx`(K9~#vLDf1XHJHyk*Y^q0 z5vfVHCD>haFk7_c}<2(2=?H~e-?)6qRI)2^_6eDz8{OkKnhI=Rv#d3$H#|M zwIq`;HYlj%Hj8|uG~a}iR#02|6;n{G1FqaMGzGb(>L9K)W-WYYac#_6vsXkC-a^Zg z_D93fFFasJ#BR(e)>>|gWg&-9JEHd_tFLMqN1HNPQv>Z-Kc1TQ zTV$3@t}FmP9B+DXYWkF9aV0kl7(*JcZS+@!J#B)~X@fRgOdGK)=>p47o60`ic|t*J&ymDpEGOTpLK@3dVA0T`n_hme0wK=CY${ zkP!5Q=z>A^e#2%Z)K<>84~LOF9Z-vxw@IXYa#r95(htiCnv6`)Dub`!{6-V)>Z%u#vF+)?nW$50wqIaA14_i{xZokmBfj5YWXLWjWNtqo6LinxH)RCx*2j2c$iwvU z1Mbda+3DkzjyeW}|yl z+eMrlY){rKi)PegVEZ~$8!!%vRzfKWY6yG{fvv))2nebe2d{ilTGm2z3GI^9`@@4E z)lCi6cU&+@yPyfXXV{@^Wj*@^vfMmmCdHskWJDb%8^y+Q0rlJ_`?+++SHLim%r|VT zW}0Gg-q5H{vA}Nk)Z(zHk*M^G;_^rt-rcRCNnN0x`}FQ0`EFJkd9nrsA5Z5ZuEPvf8lvArJ=Bo z3r}u7D0~;6;9~v?BDrFk@^L%vHo@H`VH6_}7 zbgnjs`Rf;-sV}tivc1v{aW}KNW?_nUhTEtv;93H%ts2PW*g@FAZZVU(4HAb0&Z|K? z*KdAM$32|20sq1-78q}!-?J*Qdk?N2^YCYEUBwe)sg}Zt-I+tm zr=WdzA9?OaIP=2mVt^tm6snQ z5*c|$B=dqN&xj)H6ypWMk~Cx3_!Qq9ANC3_v0gVElcOJ)gs^_K4HuWoyxL9N>SD<- zeM1D86cQc6EQLJRYl9ZJRNE>ffjvvxTT~-ecqZ&vuVe*~yIBd0%mAjm;fPyb9~z4s zYrC_^4HK>uMC?dKAU)=PsA;IKsQ9q3?}uyB-i39G6Z`HM$JLBudU(E}e9t%F49iyO zP_sN%)H%l}UFR+ptBO5+`>o+|eoM{==|sj6lsUs--n?6=U|KRGOvpkIS?sNFCuFm* zj~lqTGFiKHM`%a5mgUSGaA+`~xdjbIWHzMis@EQL=8c;xnh2ng$?iz5ZWBwME@+ND z=V)?@XyMpSl8OO=SVfJH6W@o_f}hb6XDNz8X@TkJ>8<9dON)JSF3<`LO#ch4KxiH- zMlps$Q&;NCt1I=aQPowlXk{2YlAs^athlu`$^a*jy(uWMS5Qck*F!=Upn-87Er3L$ zEh#8AiG~UaWantDN{?#9qk`c9%{nffy2dmVhk3O;#uTWlY*X5av=xTMzpt8Xe)}fW zBWneYKZI1;NdX+wKvg*HWC&aNqNu>}w1CP(r=Rc=k^DocYB*B^PO5@8@+DP;KapFe z!FN(Ma?=@HA=uTp1SkZ+r9%t0l0iczRe6=Bp%Y{CvL+{STpx+ju+rLNTER-tXDT8NA2<0>7#uQi=@vB|FVB*qv<|tJ)ec zReh(lHLB)zqpG&&_92jmn$e^+P!AUWCxE&4Ku{;-gq|*@(i1VGSGR8;NWV9 zCiFgP;7HsL9>XUPW~^Vhj3q?`6%Mx(?5i#&`mgm(V>Bc ztxYlP5M5q{iHj~rCmn_qo z_%FTzklbLahJG^0YX%WAf^uuXRN>c25R!N>5yERu zI7wv0_?aXl;tRzfej$qEs;3lJM$Mtc!yxpbQ%6iu=qaL3T{Na*bU9GW@4jEMNV5QI zV=qQ;jINIXmE!=h=)%VR`v*-g+M7oSv=H7gz2+}fWDDJsU0(B{h7t7}=rt{o%Z5Rk zZQvrGlawJWnCm1Mfs7vT9+FDuJE(%*!@>qNGBGUNkbGtpRHB*UR6Dy9?g(Kt@&q54 z|3JjIJv7_B5Cvzdy^vWiRxIb!3KT9>6)3gzy1#npP{LoGdg4sgJ%LGgSpxrr?;i#m z1mVDT`W`8r{GNA1^kwDgu=3vs(T*1>10c$#Zme;Wr6n= z_xd@Z_cR}LEh2L@4}hN9+&mD0@^FV5W;m%$h6T!3Bm(RfO{80k(}t;kMg0tb;KtR4m$hc_`)E+6GOUal{4B^^Qs|1nnK5E5WEj5X5M;0@l!Xix;0PqU)1dkJNoiYEL2vP%$8w}ViWv?# zBGnZbLOD{#W?Yc2Oc1y!myU&E!(NZP4@{JUW;sCQG+pB`n(pOnIhYP3lebpx>0xHi2Hq_j0?uT@Tn=K4|IiAoRT+DG2CaTOM4#vC8GZZP-5T%Hr zP^iHNA1%k$pg{&i-_ip&ine5;>x(*|R9=%91>Xq&QGw(zz}yo)QeCD^d9jo9G6b-A zPv|^EFc~xLshsKBs)CXZ^w_KtY_=HGI4o}PSQL<%*032`kY=RA&1PtZ3uNh5V`bT*W!B8%#!b(4*CHo1{;lGkw)4CVZz0CKD7hIjT?hm&79z#X8xWOolF^M>M zlFjE`49)^Uw(`#8$Bi;Sqw&%?l?s%0v$_4Q1S^BVkn9-9C^R|MhXRBaaEI;1%AUwh z>{SNDpmqW|1|?yJ+5(`X$?;z#!{filgwQJ}DN}I}M%s%ex%h6uqYhs(BUO0kzwauN zmH384k*Z4+LD#P3N2p~gj4S^lGyfJvb zcR2ngz8rT#5aAXv|BF&PT1*2FiKmcu*aru|S{;;0BE*{YMSjo^V$mE*t9hPm35VGU z%=)Qors7tus>~2CEG=}SDs77{d0)n;&EiW@w*np|9W?J!e33T8bYdtJ6fOZ(153jJ z$NZ>|0BG!B2%xc&WdKaXW#!drIh-+KtlJ2TmxY1N6VuRJdUWwGGQ!+Jq+sl2VbX6w zx%$h(kyj#n#RyQZ80v&%y`m%evh?Ml0+?EozQT^3Wy+{ilV0cv*LuM`Z7Knlmp~qr z=8@N6PH=)|okeH2#OatnekI=2a*&}!IAa2r6|34)jGzg0(R`_%;SYIhI8-H01Qq>H zl9JPQMUM?GC`Wv`STd`JAArk7E{{BbWsk{K4(@w%_aC&A;d4`q zd}_l|IVheI+USsR<+EE!q1p@}9ii))-=OXsDYb|qQMBw(RZ}62K%@_X=dd_*_HtLi zDJ~*y)V50aqmze9o+$h=584kzSd3PYUk1Rzt7SQ8UN(a$CST|&A+m%VK4zezG*9oguUk{>`l4=d0WsZSlbi`V*11> zNNArB_hD(Z2>;KCOxOvhaiolCP!!f}iPTbqlH*z^HaW`VSV_*!7J7T<)&>1AiY#RH=VOK@4viMc|&!Vth zNY|ltB}_#-GZfq26bpJm2o;YTTu;0ovJtPV7+m?2N-Q{&^~csF4R`?q&b6sPnu1QM zU{fQmV`!{jr#YF>qPK?hzk0rzoolhcP#A;Ko6d?5ff33;3f`lzchZn(#q5-BiWv>o z-5Jn*0u)>Xw49S!lb74LIm^ zk+N|k2AS+mQBydyv-S+lJL8=aYkUY0= zCEa-gTgp_qA+i#b`(ytqZs0eXF2?xe(0vD}Sapv0Ad%I#36cC?pc9gtn+M3SE$$vG zZyQOBM)8-0=LR^4Y+Vuyj>@2?yF#vy9y1}QFM{ZF+Iy5{+eWuV*QvIguV}GyNHX`@ zHFvGC8Dlx5@R>}se)xJe2QXI`8~f3?d7%+XiVd=nppLN z@AKwZP3-b{WxobtYAr*olU8NXELFDS_QN*N%OK%x(Pdmf(#5>O*c?$$3oP6xXjr!< zO%92>Lk3P@R=fFSAsd3^?el}Z)CCU|ir7>M>_qv#4ATP>tt#} zHorpZpZL~18?J*l;&7ji250Yr+ibt(+VZ1bob_2HdO?m?W##_wexn5-+vX?pcR zHOK#jz-im?033#x*;E-YSj7<{ z66PsFf`U8YSpBB>g`VXZj|#Vj5KZXo(~8?1w6;eYk0f8eZ@{>|mU}KYyWTR&`EfTv z7+W4}pfuWk{H~*qDg9{456kRtvGS@|t|shJ0H{?)Q#_&LZ|fZ1Ek?MNOg&@`+V_O-KP5 z>ZhLg1QB19COjl$neh=@E~xeXOyyk*?hOeI3O!=XXf}EnO;gVgv23a9iO|j62Qa9# z#_T%Z!Gwdq(2bz?lxk!eSYN<~1EBZkN>&Yg8<(jAxqHIPQjDZCLzEZ>@0{o{c-L zQoIJY51IL6LQC&21gijYBkjtwjHk00SszTJopcVp4FtH_sfju4oG68MhW+crPuVa|s>^yWA&E@;3lwoRTY{_)pSnH6)MfM-C ztYJ^2Lz3J>Yi;|CP?htLKUqbUqoAdKWh#RF{Jyt=+iVREvtze|U&);{FAIYF5AT5* z;MU@S^=!>7NniZXpZ{(0$}SoUJSYJ_wLEx(RJ%7s(Q(R#b(+ppww`~4J*kUz46 zu*l60NBQiBDB2!_A zY^1OwvSdhPRtn;3*i5Fq-&UXzbJk=AAFMG7MBz1MHO(*Qi!B7j@f^qEW=a{XV|lY1 z=$RB#v>Vwpguqjy(qpWIYLDfm^F3bYdaM&meUHyj@7Adk4cB8zuTvVYxE|}=(bP?= zb=eud#|_uxN@3UIGlo3||E^P-jOw{&iTPAnAhhngb7?iE&ixeMzpJ%>U{VNP+&YRB zV3RSUbP12vQ?P&PzS6`B`bz1^`&ucysIP`T8(q5QdTm{5bA)SSp6$)-^n&PF(`;+z zWoyo5;{L9}xRA5-$maGJ-KSeMtH7P+6+Bdff@c;CF_-;ouw|QO5)L-~D8`86nWh;0 z+PFiKFWfc4L$vk4=Cpsy*o)qJy?d*e;|KNHaE?2smTCFT|!VX%f`fk*iB_Oe+etdI-J3Uy4pe0aCfHhO2b#|)M4Yibi!#PLGLdm zdSJE)vBP{sUT1D_i^xX9dRg$!FzX7G3&%mIp0^GBd$gB5+ zd}Jh2(?`_iTEZ7~MWUMNz@o6hQm8c2i3%tvHwFd0TMi250!tGQ33>VdLU+DMMGx51 z!FLMzk2#ro`Vt^RYk6E?a3&=U$sHZpRtoLQIOk0H(4nRFbtd#$$A{J%5842uJrjn@ zd4c_zYz^N?sr6rirhc}jEc1zNLpq(Ok*$X@=l`1FYq&v;n2t0apU83P2NK05z1P8; zVXPdzE~blo{bDGBD0q$du8DBiN9mv`RREijrBE05iSwr|zP?~TdcTnBMd?LTaR;wqmp|V(mxX2Mxp#Sr)yodWwDK{U@O54f&liMSEW> zb;Aqh^0%m9zNYtAHfwEpDauKIRu)XY&ZR4S70W~HUJ~gpn+~OlIU8Le!;a3vWC_X; zQ8MkW>ca!h4PGtH&BVOan9zDF{ejYMB}KjzzjT}>t8W(^sz%DSMY)%GdMdt-#@n4d zab9ap2ikizX@wsf%x;xs#Ff4j%aM!$>iGqnFcfKin6Kct`3lUxIqoY6REl!cy+eCH zg8Y|NSkLF>y;22~l8wQ0gie<>|6}7e|I!ve+LLrM0o(g)>$BZk3)XD!X{Gl5M!%Kn zmvR8u$Lp7JtZ1oVv17$N4zzD3zuMaB`ZeMXTOwJ4LlB=VgRxR=)pBTp4jc)XD*%#U zmYMAZ5!fg}4n_s2!Ipm2K%?({evTX%g~0i=2nVc^L*9X)$W6Rk5Mt!1B#1PFGx%kU z{Fp6)YzIy;@ssi-*aLLRExU@$2PMHrK>4m)Ap)HN z-l11_E6PAF*C^+NjtC0xef%Ia60o$ctlkMqJNu7f3h|MTm&>6Cix*vRj9$&}(p)cm zwF)9C;K1krat(J8C8F4KQG2Dzhkx^QRo>gM-N`Sd1B`>tVXJSpdohCqD}al(z7a9b zanv>JBGgs zM(0MQeDe1fwiQp;<2Hke_oRPI%R*lEi8zi`^qhIBT^GTrCA# z*V=TEl!bQJaQ&7lt3h{*r5AHYFV5rQ5dfvg7kvR$I4WRR$u;NO4#%anP5?tTGGGSE z=oU(C2|7Qa>6Mp@*<-_CVUXYK-n{~N@6{C6DR@itR~VSIzw#svJA1ci7DL11YOJ%N zBnHe)qa60JEZExxPs2fpfqwQ{0Nma^GB=tphhrD1auh}*{Vk~SwoyHtzv)>k| zwP2Y`;{C8JO+>||+M%Oxs{EGSglU;y*G%w&-Uxby=MHKL1qv<(3VCb^Jcruw2w+LX z5Tznx@qK6w$(C~VRuC38u%&kRHMG6_B zyBuN`;XB?HPz&s>(`@V3WwnZ|CPwIz$@RrB(1BX%@~cTBBTiolW#C55#Uuq$<)6Ny z({kZP7oo>tiMA}|UnK=DYvib_0^Rn@Y1B-5B#1Ms*C3{U76)s6~*+7_*`Q&h9oCL9_7i?8?U-$@Wl zcgj%%Z2y+4T9#z-mTdE)=n39)Z!yG1rdfRd!K`_3yR>ml9BnVg)|N8_RA^YagLa`w zypNu!7y=Pp2;tkn%U>rdQYi?E8)#YLI&f>gl&0qPpEu*Cg>o|;v)&zStbm|cEk=FE13v+hRoI!w+pEYMPmMfw87M0SFrjWoAn9O=thk90m z$xJgau>zI{Q<0rRFmcxiGvi>w>#JbOnNlXUIXqFHrkU$P{C#uIGF-R+Vgb$z)gnkSFwIZiXQPM40w1| zx49%{8%6;5S|n~6Nmi2PU1P=QHyC|~QjMNqs4@D|-3zqp@Wt9igN8<*GFih$pSgo( zV&>=={CGhbcMt!nrQwGdJp6SJzq2UD3E0Cg%2?&#=ad3N)~VsIuLOQz(T;2WUpm7X z2!=@ZL1~mhi6%tHs_Wwxv!u2SIy5pj9CxOI0Bk!0J<%p7Y!``PjFfHB4leM6^SHob zwsPSJ(^)QjR&uk;%V0k+2@ZnKT2i-}XVMzk#v^qV+g~3AEIAYy%%A=J6KL^2?-l>W zDP77uZe@P4EYr@PvXl?|6uE+3N>N6KpdWg?TC?^X+&z*qL7BgZV{L2WSTId_tr$Se zSVYqUm;ua5G-(lQy+Lap(jsdk(}GJw-y_y1-C0`H%T|F7YikPMhjxXxT`r{~ly8C! zoF*3bal3>kn5_NQ#6~57c||WINvvBPFnh! zOoww6Eoc}hTvLjTkcO5-Mnn5k;L?bCJblb(n_h;kKuHsUfDzYs(ss~W9Lf4>H7;)Z zXtiQLctgwIEPc*HC-!!4FlAWayVd8!4F;RHHxE{`*bClP%av>a9{A&4*)<6SNImLq z7(E?z2Nb}?)!{ZEt-+0fB-6d9Y6_&Q2ny{D=tLOhf{Ri0si)G)6t#}tro{zm-iJmOH>-`(ECoQG)u-175fu#lnz*^l zo#uy6)7vRf` z3F#-j*HK$(ag0{^0~L4yHCaZt#b ziMd_duRbuz1 zS|q?mmt$Ume{ zp~eYQrIFvK`?_|_SYujSgGe;cBMr)3&*BEi^ow!uKmM{tB7%{BJ{YiR%smrBb~|5}KQY1Lq7g@# z_{I<)KzZV`b$kbo8%C&}%q2nj#t>f>7P{N>%Ti0xU$0#PK@wcpmCHaJ?brux zJ{9$qfN0G_5xjnO78Oa`9V4cakAarw&Bx4gGd@NG1v22`4#q0oOUIHANpjiTY(ekO z#X$U=ai_8R7mvQ9+BqC~gmxISNf_`({%Ps+V?+Pt5d?C2p7HWB(m{3jp@JV9bU$Bh zLTX9){Wj@s`t`wY&*jUu131yb_6E^)-5^f4p#`igwV{)U^N1XZU8S5MzDkTU zWQFg&nh8OBZWx6>ve_BML_5(?exxt*g!xsh9kBISYX_VQIb1{G-YqrE@>ZNHie3A( zb+S~kqUQA)8ZSSI(f&-0ZLTi`uk@PsL#NfKGxjMfF#9fOkDGGmdJyJca0}8I%=!s;yAf>AOH>0}StRIMx*+N z)L{;3!I2CghCaZVW2d+gY#?Sc2j9`+ra@@hmD~d|^kg(9t}$=|&Y(alWtAuB{jvHj zO+M2>Qo5PO_s#_!PMs!j(z1!@7so<|&7;~1Ioji8CCL&f3iM=uc$S>&b`}ANq_cfw zMt~^d72N41wo0MXi%gwEHtqe9z|iszkV*l~gMI)woL`~y6mjUXN?;+fa2s1RBQ8A3 z!@l${YCZB9$iLWLPqOSKpf#_+7FXvi7qGdR#Lal;T#M@HEEX1*&9?N-%@!BsApF3s zOZ-d^3=ci+_kk8XC9Q8~wo>JD=j6dS);gdL44aK^Y2( za@5Qw@IeT^2I&bL4lE`}v%;d2neR)yepsSjlvw5CRdvjiy`R^2%hsz~xHD2B)l+Tc zDX}MGh)MoKb2+h-bScjqn@3gCW<|9Lxa{)Thta#qLbrsLG(Q7R1?dat`URX+Zz^M} zqQ%KLiNLT03a9Kn^${pjs^QRh9M9ksM2Adfma~v-(!w?UcQAxF$AWYuLV?!MmOb25 z3`?`mEG&3sL#N9*GW9c}pb~W9e~o#Ps>$h05os!HLPw2*~lC+;{pmY%ew*dVHjkbD@kEe$z>VK}ameojOw^%@P4WHHHve!3(w zVPK+>|A)P|fwJqm>OAkqd#_&AdsTWWeOjg1_g$Brav~+7Tai7G0o@u%;!XmFR%g7j zSTmVknIWsB$wH1=B#dmABgs+H3K3u!0d7#hiIk27ZrTt-98#i1x048P21ArafCz5d zG$Iil1M0!V^ZV~}?#KHm>6K%5GreLj)w}oH^Rdr9`|PvN-uvu>;YAIx4;O9bJ7pYF z*-m4UQ4Wi=Wg@?+x1^Dmvb!cA=z5%$k+mX5VBD5I^bUDsEf^bWi)v&oHsGwAVsc=j zVIi)d9v52+20(YMKaB(fLDGaBSI+-HU)s$pli^$6dt4CE5yCjFwr=FG9Tly}4CaGR zU9}O#=M5yBY9&Q3I{-gW$z&E&2JS=|l(?`DcL=HihN9@xPrPAKyZ&6nWl+)E483tAnWK zou(j8u{);v1}!83Xo$0=px5h4AF@+VQg?>giX3l?FX zQSL{6+d6!nBAj4-H*F*WskS4wHzQKKHfB*3bel~T!0n8Q0j{HY!VJO{vXHt6=oFO- zL#H~}spw!y(E9F@)e(`PWOeM3G?PKxH3Qu$Q|`N(1f~VBVe9;{2@L-;EkrxToT%Sb zYRn-nW1g6JVfSDe-(ZKQ0-9jt)D{dH7`XOrq{x83E1d_G$*rA@3F51}&zb>-(3g)4 z_?hJ=22JNHQre!;MMRthBv%j%mU;2~8CthU*UN?1_=48kh)hvUetI0#zzmcv*Y zaD;OWHCSh;X$8gs$I2dgl<6+jMWnzus0MR(v!#5TrBuYQN_)YRTql&EEn>ni{BudQ znyV; ze#wBPWaquAA!vOvw8o;Hgnn=;16|&wJ%I|MsZeK8DkSl4=Co>IJEHA0W-R7X^g1G& zlZBSq!H7v#z;VEUFx4Vpm@5JX(6qVFfuXVDXarrNxvS+~g*7P${-3B_g9QW_&ksRR zHzZZ6A3z0HdC(A#2^&N~%5FZ~4d~XSy?h#sd`bWq6dg5%Wa-z*x7mSA%co6)uHhTEsH+i3m zG#F;*hYa9^?l{bPW(0zR*2mQiudze$syPBT*n3c>Zr(#UW(~CQOtoO_1qVi#>L{P> zKUpXCe;?|<3}+Y)H_a%tyyE&3eU2UN`vndo%S^1xR7H){>7K;x{fKlv;J~f~`}p@E z>X2xssY3XHN3>HWvc}XPjid{JH*jd%47=hi{jw8;y*Af{ zi6j^y%|b?pUA2%V?vA31BSv+#U4Jrv~JFgepU{3x0~ccxS+GH^ESOwsD5 zohMOH<>x+x%G`Io39^KFwG7-6T?(#zBTNcdLRt|1Q)E38`9MGOQu24$dWGg=@l|6@ z)I@x*q00}7-Zansg!x}e2G4-_6@=1Z66}UAK;BZiWv7nOx$Ko76er;)#i6rBG0^-> zPQtLUmH(txW-=AfzOQ%Yg>L4NTjT;+OZjj1bjZvGKR;RK!i!ob^vTy;IXNaFDQ^bN zRSsZS0(h(nU`GI+dEk+KWzLn2vebJV^?+hY_8!)tVIxgdA7jk(4 zOU6fgN4$0wUi;sa&AwdS?wupaun7X;1hzqE)O&~fk`s4=mcMSIwjAGZ_lH#YhSZ?g z9EL1|z+`+w!d3rr?PLYxbFE{-vKHoHZ9*i&Sy@h59Na4Ed6e;1@hF0@ zYtb9zt*shZYO&V#&7zKk0Ky{iCR(PqdoOk={BEpOKwMD04e6 z;nYbSC5v`epJAwmf0(eUswHuF`NPg3U{MQ@DNfiTZt_PlAQkzeNR#|wd9^BfBB_qn zPH`5S>p0>V&l5Tr4=s11K}gIzPn^7NOjH-<_(QU-*1uaJDjWr@Nce(R?KULH+=QED zrJohT@cqmRO6U`Roc_mi$3Ys(d7K-_{LSO;mtV^0_^6CbaGgo94O_(g701aJN)Rqw zoIy+vnj-_D@(~7*OT^iFL*;)&q{N^Th0cpPJiR!f^8ah!V(^|w*9?^ga4$4~R>ob@ zr0oi0w=2Z^^tYDWt}u4HLa&6<8Bhd7j_lkT%l^(Ib3ktiZ?WGZ+E%u(#@|+L8F3}d z#R=qU*?iP8*3N|8r$l)ooqzriXoo2UpguxeR!|~l8)L+LuPU1mlCscwWQv*CPDntJ zt!gQ09jOt>m?ku3P4&Yik14wYUBzmKDjB#Mv_=~=rI(mdPXY{2GX2|yFvt~M7=<({ zur5={DCh)G)leq!jbb6iXr?H}vnyr}_;u4y5$1Y7=3pdZ%wA4ugQnE@6&ksa7M664 zoWUmBezdPEt!W5&AX~<_1~#Y5V>B5lJ!y0UnnlX8P>rs^yLXS*oa7C5=$kI&PXtR*ZWfc}?uh}4W z_tpxh!IeL~>NN1Q?`Oi*r$ONl^RSpouu@2l|Hl^%k~a+7JurB-02m{H+e)c(MNEK4 zqW!zaD7)}Uk~%-{y71MgI<+rj7ijpojfO>&ni(XC#I!K-+ehT)LUr*NLaSs)e%rdF zTh);2@h%ek#Z3=a9&Mep?T&qtoHT$aPjY+mI3Yjm{CoMi?CQFc%dZLf_;ykbYe6=C zg&QZ;X>{%Y2EFBHl^dCPTG`2VHLW~5`EH6NpSsafZ=+-*yN#X2+xR8iBfcg6URvIf z9t6bWB@prQK)j&`h!r>2AG5X^GO{JBza$gMMeG*sM71S)frVu63h?_;tOcRCp!ZlM zI;rNJ4gkfa9M@#a3PN=W8WWEvu0VrjgGmTSrXsWy|5{YREY$z-1lCOb$!|cDu_e1N zG+w0w3Gwo|xhOtaxw@$5#-IS1i}@YTuX+o@O*~&a0&l6giC($8$XA6w?tSot;`$<% z{cE*Wy(sDHYYg#05fk%;t@V|t#*Jd2m+KZ0ZxhrH5P3NN%-Ak17`iTvIU)JgtPOY@ zU{PS9fH=qIxxZ~Ot?B2UyHBR$X5Y_rj~j-qeQB%bN;3`zw0f>YgPo!v=Ts>r_LP^n z_1*ra7-y^@J-5G!j{?!yye@Hj3+Gt4P*C9?Y@w^okKZZC0hCcmY9|rMnk8g?SH|_V zMk#sz5RSU9$>wRcQ=+jX)V=k!JLDmw+&E~EyLOTe54pq*igVW(IDoY4_)sIN-5c8_ zZjNSEXXXz5pazo{T3u7%gj|zu;YcUnS;Qe_7}SYSj+$b0T6`qZ*ouS-ZC`dt{LYTA zNBd8A8}k@V5~LQm1PbuiFw+|MBx48C=C|@Fg}D4n2p>wWVqKysf2du9kH?~}JVk4F zQu1aj@c@yZCj$gYv;t<-3uYn-haiJFShNov<$z0a5a2Hoj7U+#VKgY{Mt1Q(fSZm# zx5#^*@=>=ssH@k?;|5DZW!mpb*BK$#c|;sD5xQ8jCF zIgqjk9;ci5+W(TewaI-;{I>_~Tio+)Dexap*~fa%$K0)KRxtKU#80QX z7;;Vin>^iJ#ei~>MUDU@;~+pyVKyfK+SsYv(D{L6LbGkvJqOa&nro{y$@ruOXig1; zFgeJSPCuaeN8&=-R^`kW%F~~uV^guAvzFtu$hmJKrzCBT7>;v< zQ2rCTKQSlfoV>PbPA#Qe}TvB0twW73VIUjD?%|$j@ z7cI&{h?PYisn!M0Oe9vu5+xjCm)KzooeXGu=(1UGa7YZ|jS7)dcCoDJ)+my;`OLrZz^7o>GkH~l>mmd?B&HPQ8Xdu;+1fRuv=as@V*J6 ze7#eKx!RYKeL$Pk>}5XRr?l_UG?KIfjXTj3BcnUEDK!`AND?+lOx6OnH!@2&a?0d0 zrUkucEIMrH_RB?v#Ta?UGHJstp2@yTk7DdnTG#ub8ibrWY*ru|Ij>zjzvWWx<{)k~ zcD_KY4qX5MB;kIG8I;8PFwhDxCZENMF!_*GidmEy$hed8{5M=)Y8Y{(Ku$OQ_heJ3}qxEe0!$Ts5I~2WU)`+THi#0 zXeaDXdhKkR3yH!HDKtYB3TNBLMJ| zJ@`4uGZzybi!)7~F-rKl@;uy=M=3{pQfTK}LQ$tTZJ=E!>u4Q{8D{I5xe0~B%C?2{HVb8C=g6Ucqc2MP*dY6;|0f z9Vk=t_Ca7#kH7+GihD4i7(qfs^gxZsoWj(!&v_j=q|kshE<+anU~=U#*k|Qys`*4Q zR0pOF*9}FV6>sTgkK1r~-jbcuTXsWsshawkikm=1o8WLS;ZJ9)avg#_l{y4X-*WXMq z{jl@6b{gNoqiOz-lI*})>?j;HVYYUEc0{fP3rsY5H7l*QA3aVrnMf!kqXOr@t^SVO>mU&+7`aG~i$xWqoZv&ZhWLGD7cRmM0$oX2COyN=wSgTxEpk0= zNj(KGSdu&}i(HRclA?lSi`wahm2bag?bvW|fQ0i+oOVa{WSlym(r}PD#`zMxO=UC) zEIlw9*IC-YXuQml2S$Tag48fD8Uz?2d0;d)84P^6#%Qb`91TFf+GwmVN8^T`(P(88 zj-MH03N$0-Z10ay6{tNc^eLu1OS`|*_?v@CMw&pdEQVR`k=ptXas(z1`Lflt^b3y= zuLFOiC~MwjKPXq8cn0n!oln+cd%&NRXoxs(VSV9}41W6a`0e6d@YMn&i|?DQV;huxrCxX%BqraX{nZziWr$BpgkA2%>PIYan18fWHDYdA z(4r5*Wz5kuvxAlaTvu%Rk{on2^JVz4HB*HE-W!2<-rM?02)6=v2_k~*a`y7PoZh^> zE)anu!r6z#Mbp&b=VMXHFaGAl>nZy+d->_h6R(#6Yw3so*+TY%x9joAFYQ~%?y|>Y zr+D0JkBi56{KGx&d6DOz-e=E`eDPfi+5hE|zxMit?2+HtWiOWx-gf(5Sq!sB|2;j* zwq!?tU%yYn887JJPvg$7Y3f;?U%#lNx$H;&Sie6TWsm-e9zMq9^2*ctGaZLaLSaG* zl7#+!E#3?JbBYq)71(_uXV%~nJ)XAs1UB6ogfK2`y!9NUp(4G2ehl8yp`e72S_FYn zM?P7$*=lpcB0q%4LlBU)EsS?kI-*ohb{!Dch?+T$s;P>}D^&>^V%xTAx=36=-H|;c zJaqENWK{1{^2lWL;d$((M68nOQb$W7`eAzj>sV6XBIw;Y-ih29VIpDUNpCU*oaX`p z1;@V&2oP!5n`o7Nz}j6B9$A{hIvxBS!fYLKqBsju;VL-ruj;wr_n$j4%|J_iO5iks@dI zRH7qBma8~o6zI56evC;+j3kRGmpfwQz^#CxBSuzcN#~w)#7H6sJz}8_oCQiLlHzg% zwWdWRU;RyugaYmq+8GUD5tBwfFT7QTIGr@9Sv-2OLvTT_gXj=)||6cWze~TCZG=&_{Y9F8t zu7~Xu54ndlWBE04CA`(MW6Ek9j-)9IYlQT#r{=AA%E)tkl^iPdWLpu9W9Q#$?$H*( z>m0O23dR{p)KwUjPtHTXU@$SCIj-J|814*)UVx{buw7C>oH}DRYduVY)*scvHr!Q= z40)a&v4+`sRQl#>N;s8=S(Yzg5=AH3tTOi zyl8EKCM1xc{geuyIR=0zSK3lYC?cPTid}Cn$w>s#L_kCzYrT#AmLn|q7Gsfzy~6D6 zfr^XMYqDwg9y*guLlc}Wc%A7$0D(+ZhCb|mVNC|aduOBn4fbm}Gr~tIa-+n2)~jaTDTir8v-Emm!JMbl?iGJ1 z>2~&IU!$Tw_&mV5?Hxmn%)tN9j^*Y0m!#MxOI1_w@VIqmti02fZq$4?@N5P8C`)y` zrjs@*{7WLBjeckpLo@m5G_x=zBBHR%6oO=1k~;XV{FX50RA8JQz0b$v`Y?-Rm`q7; zs~_!gMaFPO)cH0=k*54zl4Ifp5U({qDcOaqqom6+>x+WYOJ>tqIqB9c1mP5ks4c-F z4;F&3rPvcw+`3081R9w>XqPmKxJZOkmf6A*C_b?w5h^okKFiDsEK5vY#>FLUm2n9H z%6Y(1G1^bLP<1{j?n||`t!#4m)Aqy9WboY~Mx~Rk?_sgo*y+ zE+gWXGV%lFw8(3ogB#r7xZuv#d`j}Yx!X>nrBgj~!53i;V(fqVcc7yD3N6F308S^f z`>YLYEKIeehZ+nvK3K2P7Ga+idb!#LK+qqM;x0AU7)k@}(mL8p^@nmUpT||36|_TrwQhj|6v-U}|+EQ5gqlK4P*}F>9hWAh?lvwmLFQ z`(g^$Tff!Bm7?$zl~Y&UufwK&%ypweAW(y4bBlN=az^fB>kjS!Aiib=nd3ZYqi_n!O zPEV?Htf)F=0Kl&du<%3F-WPp_6vDBT1E$=S+7o5!c785>k-8KWx;~HF)@w;A{J#{j zoBJ^&{ohGBz2%-{_3ZtUzf9P~`eAwAK%RPjwFSXq;HbH@>G8#W4R8b((@nrhhwiv} zYV5t)JB@`;N@Acu=8WhKFAiDH5)y0jR;PgD;9x+wv7q=67Bu)SZ* z1eV8<6QEq^9jKSw>xm5@i)PRtd7j zDg`WzGGwuWDYEmks5$gb%$0xv46JV7WXu)AXKUbiW(Y7odaFtn(OdIej!Ux98MwTZ ziD9UlrMy@KE0=4smS53hRWCYDVXh^{Cdh4}TMhMS)}arL3zF{^h7`$Hl=5&%DfQ(k z$0VsEYik@CDjAO$bNCI6y8(!~jzPO+XaQ z8L7L=eE`F99szM1_nV<0k?WQD}@t6IIF6m5UAzqAb> zB?k8?2sk9>1vGOb9WNOsCo#sRWwBAD&AbK@1h%Pg|25TSulsYP?TM^yUfp~;-=GgFTp_L{B& z;fgld%Xy@wH0p1BH~6w&(teYL4q*GlTGTmO8`Mi5EpTWio7(KN1QhzZvr&oG(%?W} zYJ#A$7eMfR8M!48CTS5zA1K{OX&*A_U>E7Gk$y zjmr%yz8QYQYEQOdm5SAESb4HtKM8C|qsm}tC8%yldFkJf+JRhp(^F1HGe+2LQ)}9$ z##v>X`UkZVi|8wQrC*0d&q8@=&~bk1PTc?o(y=N+Eoc)6g-2Hr%1hsXE54pZb(DyW zX;TQbA~`|_i%h!wt}D8QJK$0?F}hlgS`41an4xyoJ%L(0QOGb$MszPc$>vhUDY{~I zM!7yfFP+|7+IIOtmQzgp^!SGNgx2 z&~rV+Mbd)omZV!^T66%uI-fV5WOHZb=m7CnjX?J`VXzi5a*f9zGMERVYEyvfB%6U) z)q>PTUbQ0N9$Jtuw6I;23ae<=)FY0f^1sI4rW!#=1Zx6X(*m-Ch^v;JGDS_JV2*9} zVOE3vL6hMQR2Y`RDk;hc@DUf<6p^x0L?SI`%MLBdTxi}6wd`Mc9Zye2g;mi`(G*T> zNo8V2$d|7Mj?<0+h&+*Sw%g{g>@jW*^Q1YfeAtJrDaFC8PF`O6ChsJ8w8iDZr_U@h zU#-i%vZc4`GXKX2G!ugL_{($R+<5e54+7&3!B8g}HF8+Lvs#||(pgB`fwi-H|% zigCOacCZOt8#~4#3fg(hu!96X96Kz&Bcla6)5!q-z(zVtIeGwU8T7y@zE1QM?HLhS zlXAPb1`$ap6_>dx5!s~y1)7!&O^7VR(ZsqwGMXT`0&Ia{b#^{0Hl?`+aLb@en*b)5 zrV|s4qqjNom_wRO+-y@+EPS~6=W50g&XPRa@;Y54mun-!*60EeXAKcJ6AVX0xB^5V zXBF@cK?J}pg9v*2!Vw`31a5i}fdqPOL?C@xrq3A)aCZg;{k%s~S0OjVt)G%8STgp| zF?L4I5lkt6HMEZsH-~mdlkboti-sb!lx(eCtYL3LIjej8f9+)h{JKQ*s9yXVNg@Hl>9@2bZ`mHL4hGo*J;6m-eBC)si*S$S$jnq?A(dsE9 zs-7Yqs;4a(npidy`saFz1cR<9nehEam+AV=&$9iN_xDTD?^a*GKP#VzlKkog`I#Y1 zKroU0NT=A7+Ua;z3Sh_>q;h5E`DGkg!)Ug~kd&qNlue zVz^^FLBg~=!m(nPkyr>4b=?9!+(-yRIN7I5$V3Nr~EcBs}HkXyDva<*k&RS7I(9V-gR+ zYt;FoX4U9tOW7aEJLVBNyohe&p@+R!V*dV8We%|gid~m-3SlYN%!UTo_~^oA99Og% zh_eTN*FYeWyFifgrcg{Ifz)sE1UrW8=@f1;8y2MkGU-kBBncRRx=_|RiwZU;MvX0_ ztN+QeeoVzf>c3h|s%P6mK02-Uhh;pZ#q!uB8U*JpC~rbeHdg%-tFD6P3W7Xd+i%J- zvuWaUk6KXdxpJ~`h*zT4=f&bwMBMslJ=QV9V*0|MqbkZ@9k%n^dIFnZN!a-VNbIqX-@zDEs_- z_GXXpi-#1liDJ!hOLCB*l$16T5ad~cg+F0q&aoR8@=u&*42_6dX?EH3W$iurtw;u5 zh{xVk97LgE&Wxxi?zKwOB_PYy`f{})D_$kfpe#j@&(LpW9I)i7CJTiqUH!PTtwk9Q zHCWX2NfmL^rna9rykPLp@HF>FBEgOnsxFkX`oO)OF&$!oEo@5lO2Fs{h!oJ0x^Ptwb#-p zI}^ynrLh%}aO{A3gY2Q-fdyqtTArZP#lZe}g`C_yqimIeqQHCTZPb?;b#)d!0Tdwt}eJunv-TV+l;N_S{tv{I?cPGqi_e^ljbR9l5k&77@rwa905`M}BZ_7um`kRD5 z@$G^Aclq9b%FK-&@9~!qFD_nrJ~)`VTjCim-oBgtZ+#w*M*TN-Fm29j82PVxi1hIO zdAths->QSWZa;D|dw$j4l)Ea&xz-XZ?AUzpJ*eE8+;E9YvsU*8tei6u^tX}y<`2kc zV&bH{(pvMN96p%WpCnXqKYv_vi_Py&CpkYjAI*me56!$-_PHO(&iw#M=0hhJk$dh+ zTha!BJ&g+I1(9*GPyLuw7hn4vGzp}^Kc+UHruvd-rc2;qzI@w}lX~e;QLKMN&g0Iq z82t}5a^!4BbXNC}KCg;)L`!<+z{2C0xVu~qn>~&*N5ov$KC$6;m3fi(p6e@;X9pP> z2EM!|4>w(4>Q3#5&Z!Ojai6fZeEa@9gtc#Nnt8A~)a7%w5B}Ufldi@Ia3)#3hXWf+ ze`f&`$LAT~FgtN?f)C_-()vl9cXprQQu968BPThU{#%{@lNtJX@@flG+n-Kn>$t;H zYs_wzp?i|}3`VM%GhL|}r4!C-`>6f+r|Ibe5fA2>1WEn=`Ji+9@Zw@HA7(od=^NPz z%K$T3V1308?sPhFf4Xk|-UI1+LQ%vWMnS(D52SU-@eXLPk^O95raKw!OzO$Rk&|i5 zrYyXtl`S3mA8*$M$2>0n`WIfUWvQ9rn~*I&@aGre+o8$s2K(X?bU|tZyLHycxGOnZ zJpHAb&qGD_>T<|)iSMjmRH(I#3uniC&Zh&O^K2R3QG6VKW4b{#qwYDZ@y>3_9@cN} zNSQtIDWz`CF6bago(keVPk6!4DCwgTCxVtOs;%tA2OGXMn3LYDy;iaTMM?X2+Z4XVuuFTWgsJ zI!3oaKOvQ}Kx*VCZpW{PpLar~cFH)rWZ-|o!Rj(LvOUQ(*3#rUn$)0nH#4W}ti1JP z^ARxuYGjrwc$rk70MZ~r!~DcO?1val4@{i|_OWBh`h!Rjn`jmztuaN)oPdp5$u)eT zt7PMr(#~Uo!_77(<%yuK(^Rh z6pp~Dz-DS8ayjpCs@dJ7q=%Z_X?R&V1xI;esx%KI<2qDLu<&n<9>y^d@fGh2`~TiOh5h@diJ1CerjCF4_dM+-4Q*hYWTg3 zJMrm%Lv{Bac+cJQzy6bFo~hk4zxd(bJn?9BKux5LGu=&so;zL@XO2=2GX`yAt^N$X zq}N*Zq}oW@yU+Mk>wNngg0$dBPg&|vtI`z^-Ap_KJbTwyT<%`6AP zu-@;v8^UW)cZx9yfn<`KZkQyvq#zLEj+DoVK+2J881f1WeA#+zc%mq?%|v=4^8f|# z(+dZ2blT!cARXpVF_1Y_u*$`BOc0Gj*L9%bBIO(!*AOeHBPG3_8&6sFn6q5on{LeJ z05jPLI}f@WCA5>`kFb8+vlK-Ou#u2pVoOyc+1PCZ3~Yr?rObPNbQqHLY%hJ6A^>J{ zI}D|i(53zfBCUU}_pU;7>4bmq2C3N_=dl?W95iuD&@m(X;{P@lUO&l(W0RWR z#6i*QIb*y#vO`)&3dY+QK+?%S<$E^MclviQ-{9Hefjm&-j8Vf3K*5;KnJUK3AVo^n zDFs2zj4Ftgks!Su&{xvJJJ_QH(1JtK@8 z%Rs4S=LenStbIfJvdK0abnR{}6eR4nwSrrg@dDM{(*yvpXD0?{A8DD7p3%J? zAY9JlST7w9DCa3@g!!;I8{Hdvib5+f8n;-!w_=_eQ#N zotpt&P%CQct~RQf5f_NT29%^u8#UP%n1GfvhkSOQCeRouL-7!AE4h)G#6Re9R<(>J zvz{IYs1a~0)Ck1=)ELq9O_FgF*CQAZjawoUb2?e`Myj7qIE%kpKWKr!gC|?quG7ij zh7K36mOV`qmIiFX8kr=sgA-Oqj9%EBm9ctOgqbzFH&HbtlY$2R4WeP_#Oy@{Bi@gS zFq!GjiXGiRPedg`1@uayx#`Wi9ijTk*O#iF960nHO>W}US@)(^(oJUdkAB{);T}(J zF4)fy2GrY6=D=V-XS+A6pV!k9%^TNGC0ajkF8j&XN*c4GwPAa9lnq$nwu=KKO#zvcp29i!E~ z%j0U%3>S>olGP>xuZHLGk2&JRNH2;&Oi+tfCIripDQFWTX^ADJf3gq-hLr^I>5ckx zJNI1Dp^O8veN*Q3>=CtsBlm`Tr=p-{7tc;78z$?dnpnk_L_VrU&y9tx0V3yKu0==f zrOnEtRmuTZIgWE07{EGB_2p4RT8VrcFyBeSWFXXO)zq42Y7_(xaD`+cQBT5GvS7ft zC>b6)`OX@Iemlv|Kf z)i?-&!&j4wb;-+^@bp3Rp8ctGZgzl1cQhzHJ6oL>uD2BEPK$#jkW`-UscJqz*>py` zYBdY9Xs|?YN|0K$5O;n>vb1Cl(4?Ox$~$cJ75xq6o#u%?%DQIzEK?eNS~@7NG_pnA zc6_-Uu+Q-Q@V3b9?_OUFIXIC%=rw3%)*(MyER1lF5 z@g}lJ-ikzx5l8B|#;x&Vvg|dI)$d7b_oKL}9Z4r{jgMh^Oj_R(E}@rA8sCFAQ2t6m zUj~iC{I?xU8~3MVIijj4#lGfyxJM2RB$SK#u{m7*DAN$$|E6DzO8sKWz{0p|_vac$ zvPrE(Dw=1fbR-GQq>?7`B=nFvx)W9PkfwzMwrRTACDz6*aWemH??bW4lk}0@b$Z&^ zT~D!66$vhGiRZc-H0N)LZ$lf$&o;8B*BwYV&4&lHLr04;nJX$MouU$*4O{H0qLMeK zs6_d^xvHq-Jz|VZQAs9KR9c=wQE55GwVX_5rJ{1u6qT0KDJp$7Q&dW+k#1JaY@1{4 z(v7Y>gBn64%~qkge9Y98pAy4BqRF?_r>gqQ>v5cm4(rHSqySb)R9hORS%|YC$*Cp!@bYGTi=A4xlwCmC5ZMZv`IiNAR zL0Kl4H)a&7vM-jwIQv|H?M5f3qIafKkYSpz(kK^u8cvQT(H>5-o=za1Zc;mtj=hDI zgLZWIRY7RGDLe%$S~AwXAxRbRO{XQ7jG z=3rVQ78b4?bm?Vx-@}?ab^!Y1+uh0ZF6^k<%#nC^x@H%y!6-jm>p)4`bP^eeja@9} zsvw=9>)jivZbCDA&0CqY(@A5O=B|fMs^g~A1P6pGDnF2P58OQ;9bnhJi7KcUl!Ds> zAUC=0?quWLWav(#cXLKS=Jx@B2c94yBZ}8#`oLRF(u))$wwWXnD}+yA0(V^i06vPm z6}MEtp*A&qHzPO!HuQb6(Ux+~I_HdZUB*Dl=_r{(SZHNOdX&@E-b_;G%cNY{#Gkv9 z8}1QJOeE8HcV}P_wYwFko^b^ejH81a{m20W-of3J1O_PxZW}HpxZs}N1*$0WRz?@d zsfqEf0r2#$$+`f}R`dVy9v$--H(}D+jmd<9oT1ba^E?1K+{gebSxCR}Zul?D(|jbh zJON!CIPeyH)JY?vu*p-@fhJsa*os4zwM1_vkecKR6b-6!?JmfXT&i*{RfawnVbql8 zhWR`1NhS_Z27Vyzvt5pvRg}-V*6q0v+Q^m9N_bn8>z-p+PpNw*8$4xE4kY}ZKr<>` zwDeY_EE065R#8Y>p0ipq+TR*IL|%7wT=o!tAC-JX`V%Bp(p?)*h-_)=nR?Pfp}l%p zg?96d)K*m1I^#6ja3JPl%QV`l*H6_hDjVK~ua+Zj3X*fqJx0<9)r;cw4P} zzTRoPso3efi;9a^S8=Hkw~8U}p&D^xm(&5s=;80gqqVLG+CNz7=NRyc*FnQ|DGXUbtrlN{|$Hs1~l zoJ2XSNoZPO9|YA+ZE-BkO0_5joa+DrbFLgl%ViQ10s{m#p@9+f&(wh)jJbVDjzv*g zQkS(uXbf4s*`~57BAqa}U~1A4fapeMffSif$m6{mIp!y%c|9&{tx*YQ-H;xaYe)sV zd|wbvBxQBPBPWHUhV~k!#kF(Os0!i)MZD%7+RxZQgFe{;;mYD6iyWAip3CV36V2>0 zCuxNq`{p926J9DgOX^wv2`DI+E4b5_OP!t0c`}gw7Z2VmCp#ZsF~U`Ds3teduyS1|AS2PRArkK(q{&ujFOvFh!mbOSA?fxek; zXnfUE_)(t*TAk!;rIWLR-0y{V5^>DPm}#6!15H0~fjje$er`1elWZNmpHS~$KWDpJ zHKI4s6H&bDrxI;2x0Zv+*GfOPzL@>Qu`5ot8oNrRfu^6YOt$KuQ8tWJ?%XBaUSm9S z&R+0xjptUkhPj2({dIlShknAPhDu+DtY|NMOtrzbRZC+kp}m!Ck$gYN07$;yf{5?E z8XW6>6_m|CFkx%j1ld*WYD-)1B!9?C)ET~>6QAIqqcoDoaRLJb&3ngs}T~khD%!bPD#!tHN@@BVxyB`DB@MjJV77|<-HrNR9fkU;8ji% zdX*sP6pQk!G&H%`BH5opTTN~fC!%G^3F37*Brixr$T1!9E0BrS)h>Zoy zs{R=RnsYIe2IOCDoi?~}%EbaU0bUN}7co%e(##1=(yq9eFM^Gr=~!7unk6?$2L)8( z!XxpqO5Q%XvAv-++++f6_Y3F4O*M48Plz9$Z=kcwv>Of7H&>*1;|*QvZ&Ul)b8@a& z-jGF^yp*qJFlDf2P|Hm9f8k}5P5E(*QWbJ^A7TbdNvQ43GYG(7TL9w}HwfSNvaF=u ztu9hHGq3K^Z4*)sxV#l(i7OlF6Y&QStjt<6nQT!w5AEE2?RY?JOPVgeI7ygC-e_}Z z3-g$%q#u&c!Nj*ETgawWhvN=REwocor8p6oRIR^~2+%rZ7pg;~bxJVP+4_FZLy85%RSWSkf=1hR5}bsR2E)3L`gqQ-ct)*jn(W zhN$&{l^^@)2}k{6p8NRDh+`iIl29)2QO0(RKvi)PyfQ|U1P_6Dz$aw>+Bk#Uo0};H6m>fIncsdR5{QRwBEOJNUCRRUOYhFKO!K@ zUSF1j;;t{_=+==g8auJml^*hWd(Y|6C?`k}K4(3GG)RcW{?F3*T}iwfbgnPrsFTj! zi8t)WD-%5H)PYV=7)=q7B6F*lg&rMw&8qaG2Q4qBRWQck-|tihInhxF}|}kSdAB2%&`q|W^(>no>OdLCrphAbT2OS z{D7a#EttU@xQ!$1hG@_%7L-n$*m+K|E57U?!Vd2{qT3v7+g%H?+^7+L85oIu*05ty zBo_y*=)x^g!exUr0=O{%yG(%T`l22<9=kOd?}nPx0(iTfpUa-I-YBzmhtk^-pOs;k zdPLCXq&CyJpn+E6Z3wpkVzv+dkrd6+t|IE`yPJ0Rc+H+dr%{s7!*QwnL zkWuC0yVWzfu0YA1A66q`+6=wR30i8rN$i#U6qvr~$l?+wGNJxByBK(~Gj0@RCw}V; zi}CwZPtZCXb5*M?A22r#>zEv7A=G&9bU7SEKaKA}6hb~e4$bbAVN;?|uEfQA z_Hq!51nxwUQq2Pc1a^721Iwa{h|OH=1qS5T2tUZ^D;yC=$shxcfZEu7a}Y9U(Dq(P zr1gF99BPL)!H6&qYK<&Jf4tYy9G}e;*Jnh5Bz&i22#pRWih|c8td}(5RECWIDy}O$ zq~Z3i`1jX_9Sj2uW)Hilyj;!31s`VSp@1|^cFhsEI)dP!bB1Se5Qu@e{2wu~is8x?2MEpJlB0JFhV#%Q!(w>59Zm$5QsWtXc~CJW zWB{pb7F3Mc$INP{&=MJ0kaY~Kxf{{m`ho=R`(oKN>g3?OIN=79F`%R#fc6yb9v=(B~7s8&$quz=446@)V00O~CfM+xByj#V)RcFIze zDMswLIdhttAt6ouY8#v%1PZ{ikkDcTAVMd1+u}hV)pAS!SkUG)#JX6x8^RaE&ZYZc z42%JZe3Yn)TfrQ4J#o)M=P&dziCI=P1Z03^sC<+Woz_T{G)Z1bY?3E4RD`82u%>C& z;iVJr&&Kxf*t{JRku|doQVx7*DbnHU?xpp!VHDmYNY$DaM!UI^Had>1+>-!l`l~~h zP%kqt$lH~`tXmKe)x!Bju4X=R?8MUIy$93k+jmPupaU-K4ZKvb8OqFuMTSg4>_tg< z@YYye<@E{MW8t2K)|&$X2S`vK%-R?^?RLH_Tv3>7Y&%~uyb(f)CFHVyzQXfg z`sd@}LgznQ{%-)vB-35O|15iMsdjUM|K zgFRG)bBI=dIL|}&P$Gk*@Asef>9^<0Blj+Jo;A!gSP43RWsh|YbDa)=5AD%J=V0lN z!Q7v5?!mYrC=upP2y-;8?&O&JqgqXvtMl*w7q}bCaW^)IyRqzHhu5(TRP|zSEPEX6 z=tu}l+D?7!{J3a`x5xZor~pTWow!2!8;bmI>dF7@db86dJ=yP&Qg$rcwUCbUU8?|Z zcPg)4kp-h_bpG0p-e$S!PiVX*G?!fgT&x(&Zp)045CZqrIasWw@3oq=R{05wH9mWr z5-T(^mc7G40hLvtFp?S>3fV-f&CC09c>=S;N&N&y9G9HHzWm}(%@e4mUi_)~TAP`E za2fnw%xcCtyzCnIVnYMQ`bVR|Xt*+a2Flp%rp&whz6_tvOy1Y-$^H%ck$3M+Syihm zS5n)pMI*=eCnAgYkh8+JXQ{w}5Ci*TH5kJFVq<@C&ieX+CNQeZpQG*kXj+_TK0Bd$dKCe#j(s9 zu@|Ve=gV=Js&C#kI-h@Jlc~P1EyYubhN%VBuWxv}y0j){KCLSC|N6e=2)c$r4C{l9Nht z|nFW>=*5~&KFaHWS{WwrXTwe2_T)P#FE68 ziw#l|wAMOO6zw70cm7ag*!n+~YgWu1*~Pd0*oW2jcy`8qCC!5iQqH+_8fq_OKe~L| zAB@7f7o?@t0|cV4Bq1?=h=Z|kOMtefvIvB>X5i)^e^6u+Nj76zXyiYQWB<@HcZlO6 z*1&*mW#IUU%SjY+lrQMkSTmfQUTMp+0so?V~m7h3;fa;#|*vO7CaM7mo- zKN-0lZK+J4Pb!?E+GSH^J@oj4tw?zj?}v-Al|%$bEd{XqO{GLm;fsG*-*5xf?(+os3+_2b&UH9$m3!XMcLc}-63f0^S0ih)7^q_ z%FkTNB@PWpg1s{lb8m^Z>8cx)Mo1JU$w_f!hc#vToxri{ThXfWL}UsnRxuYUS{B*> z>0YCGg(+AhTvmr9Vyx-z4S)ZJ)25A!5+;R{07ql+j8p&A5cz|ss<*^VVwCU`bUBzW z@?lRi<=s~&a>>M#mI4K)4OLX3k94B)W&%ky;jnW}B_sj<^_^rDv@qd_k2^x99aT_a zXYsvEmXj&>G}Q)(eN9g6Yaw>LPPLm{t1hlZb%Cy8XqlYY$CEX#JuHBh6JmFyKHk?6 z%ciZP{Frgwr)~w|g3?VntCOWrc5|;&))s`U00?OFwZq3eJe@xmguN!2Py`#h(7CRC zN33aN1E(>@X_kqT&@&DlaTf|>rnzkVLN^4Hragu9ADrUXkFF(3+gS&VpX5A_;M^zV zSs){o9)q+Li;v4H(e~+vVyIdpN~#8r0b?6Jc4R*1C*eW5{QTGc?r;C*D}VIq=YvBB zq`lBs14wZ)UyP&9^igGKa*0A61Y8b@21*~S4NB;no6q&hNc1EP6%R(fQqM!O*`r@u z(($D>lx&fujWs^5#5``ED{>n@6xmW1LA#_P90Jo^>n&oWyvC8T&aK!rHJTZ8TxYDB z-8PWoNp6V^Niv=5Xfs9G!mFd6iQuk zQOBVkDW10-0eTKt6hB1IW2+&;6a%Kbc#!eTB84Dn3$!2@P_No@VT*-JW7)bo5UvZ9P_1TXK~Qd0E=^M zT=WgpZ7pZqGz_PGx9&5EWT|osPtt7tQ5fs^S~WUsT&_wI!y5w$&#-UvU+6m7R=RG3|1(HSEL^g<+Xp&;}YuEu02rlC26-AxlhUQB)tvEaJc zlTxzvO$gYW@=C_hcFP%mycLGjkaX8|+$E)8rLHVDJhr|Ph4DSgb9nx%pZ)yjP9FW@ zFFqR_mS8gf$4~#*SAXx)7azYA9M*w=c)s&~KFqIsKTBya|5u;=&4XWf`1e2Y)!;D7 z(7*V@AO7l(pS$phrzy(;nP5J7|A90{3F!Z89wvrL=lu!FK7lkpNmWI@nm$r(-9D|> zCz^<8)zuTJSqdZ0TG6CzWd8Y(Z1G`+fC^CfS6VD08~q=ah0(T$^b$S&<$0?Gi`)mgvZ0JHx+tzF2@i%4Ml}`5$K2hL8-{t7{D0M z-FvwdOu~a@6tO1pZq=QuBYtPHDe0-^PhN^ty#@L2yZp5Azk>L5T*No3_#{@_r?vKC z)2e)}abgqKn!O}q6G9XII90K!zB^;Tg+|8|T<~1e#B>fi5o+}?afqW-sMujHYhdG? z0h0)|Mk~CDIm1P$Xz zu=FnLqpo#wf(G5xhJru&ds6pLg*xdQqSZ?%T1`80Uz>%ai&m3bu>DweS;8b)ZQSEy z>>$J=LyRS>kxx7+H+xB$-9XcPU&k;=E-PPYt)GId37w(iGm7zzI)99JuuSUVgc$Nwl)b~mtEucANLL~7 zGc79871AO1m3rxlR<9*pnPg;*UrRF5dP37zm&4Snd=ic^36TwonW)_$@5M}H)97cS z7rNdd`}m74bA2JkxvrKkWKW_9sCjv;CfN*G!D1zIEdJK`Hi-nc#@qB$6<}_S6HBVd zCAY?ei%KXnr=O~Hqu|y`s)#g-Y;BB)9b4xi)A13*lVSZXmt4z!8*@RJf70$6@lWTy zk@Psng>c8)ZS1r8NsvbQ>3}Q(;gr%PxNpqgcK@NYaX1~5T*5YmW2A=(nusxasz!$iqT<@DPm`kn#29L zDyq1=QV||0z(0%`VYbTYl@wFm8#6)~Gb)yhu(V{D1_;rW`f3QTDe*_?d;Yi2N;;lp@d;MAYX{i{l!ka zKCu1h*@@S+6X%bh!%l#vYaHF+U>Ua)Z^8-V=3w;Nq;-&8 z5ltu}Ubzz&=+r@?cIIZLc$e=J)25Mhv4Xlf9G>AG50PPe; z4KN;>5*Xr)u~x8^lTl-WG+8rd?IpcY0}p&eQWp&eQv^m0 zkkfC}Xbl)OH2%omO({ebGeIMZp~I$%G|QpumosXZWln?x;0!4yS-&t!~R`%fE*l54MVq;itqy3{% z>B}NRfR{oT{otE}3HUZYutfcz*r`Zy*;vs6S+lc?y0o=8`~{oO(0?d}BUkz3b}CVX zz5F=X1W!7O6=yA;bTEtsz%Bzjq_WvYZ{#9!wj6n=3`K<5YL)^!(jXzDeXGn^*;96P(_44u+@AUCSaNB~Fk6n1QfOGo+PvJWjm?t^c*e32sH< ztV9wfp$IInX^t0K6F@)Xn_)3);`d{QL380xNNHz_i%ZzA{b4DJ=jSd)tUq~)>z{kU z_5bACYyZGZorMkQ#CU~tbRYsFpq(mXL{7nxO#>&wVW1vklG=E7ZjB$&Gm5qo{Oa3< z{F{t1Pw9n|Xy;s}=xp`l<9dngS~*p4#pR7JyS(u;mAvsqUc@(^)9J!R>|`uTdb~~U z3}zZ6fWQrS!CY5$nSOf&aZ-p zJ;Cn`zfY21lTcMWO0_TZ&)}OFgmLyb`EKxO=SWLcq9CS z<6yFoN|+!SGSKj&r#&ihJTeBc7~`mBTx~8o6mv9)5WaATBXRdN2z_)z@$*HxfP950 zVyxSQciw&)W$MB1YeeQW;0QiqbrmDxG~ISq?!5^Rg+Qc(f@1_FTf`xEM}MElYWJAz zQ0~a*o>Feh?mmZ!eUAO-b@sXPJxX?vUnNch6BX4QBH|K|dOskp=9;Uyu}s5t_jzo& zh8x*b_9eGw&j)+&>fV}7bho!kSm!t2pS>yIm0=?K$R| zy^cNCc*d8@4V`P6+;vj%NZN6_NNJG55LQygNMUuUq%_qJ#y;7O*d%5bCEGRjN_@?& z@$vEGH5OBNl?6d0ZGP-vdfTn>=zwtunuyR*Xr_*v2@4*isvT`mqv~)&p={#c5#znFm zEG+?gXhi@W7jS(5^)BU%Ww=s+Y$FENhb z=r|tQ5w2oe7jPF_tv)t3)@V)eSO1MS%{A|pFpZxSmUW74jmTYV{&xKYk}smp59uq~ z2Y3=RU*q~ov@7zq3A4{!TGC+35@<)W!|d2ugPn5Z71L;ndZXkY(#!|*W~N7NhLeYC z=Eq#6S8ryWnt|7LK9o1Z^(LeB23JEh^Ux^GtW`72i?W%{sLlA^{HIZnwnp1^xOH7T^EJ0BF=SNvw>(#}7B%JU-*+!8Owxwj+!1hM7S{nKu)@ld28 zYufx{?e}RW%*bmBmM67l zL3B+=dj+XHi_JVI8}9xyarhL!IVqgbGh}jHzmSRIqUYa^_-~8;+ZFnef4i(_k(Yi& zUX^d>ecED~7Cr3hh#qxyMvwEG!?mb^0I%ot&5>wy*5!|%qz-*MU&()z{5c#?`h3TI zo2PvKrz>?`7>jmhHcf14>!C1)d@d5e+=|ALPBQ z)f$Arx#(zL>I0T~yf0M)!99GHRH%}aXU5?8LW&*ZW>U>XmnxZzQvuIlt}E4CDyAWr ziyo;Y>-{lHeY`JK=%0(8sH8e*776yy2hAZY0(qyIS#yzwWG;GYpzP6}vSc~dl-#P! z53uM-Sl(g&DbnJyBG`4#ouAj7;|;~1q(1bi+oc_&&{4ddr4-v?=X4)ZK1;t~?O&|4 zUtNd@cG#AKO?Eu`4jl~?8A^D!4bO3t#63>WM)*Y1&f}4m;&1Bw(0kPa09&cKXi4JG z@d$5xtAahQ3#fO4 z01A=~1!J@iPpKBT*5$nRvc>qKp7|zDqr%2nd~csn8ft-K>LCq?V;Q6<6yhtsfY@CQ z$&!bpU{wP9kP_Wa(Nswyu0`bI*AWQc_J%1NKW#pv({CXtdxQ|VTN7eAA#-@TuLA2F zRLf44sQys<`61MPzDn&+dTM{dsC`@KLw(eax+J2Og4%sy(YI0ilTrI7(aF&Mp*YBU z2ohOunMK7;hAGI4+sLrPS;m>&yF(cbLu*(#7?oD-MqqP{@~9?!0^k}%xtxpnNgd8 zNoXKHI?6!atY&VkHnVAk&3t5(X5hgz#v8*A>Dvmz*B8u1js--}QB)!o;P=>iYXefr%BwcGIlfwwu=KzOvo43f?D% zIaD!e%jXgDkgL=Qvf}eTbT>^1*sF-Rm$Cd5ipne4yPc754ZVx{pU0*QL;-1T#qxAPW z>+daW{+&5sowNf%vJU;cHUfIe^|0$I>IPtvuKt{G0|P&+Uzqme`qj4%N)d;*=wa|S zu!z!?6)B}(tB=~u8rRI}lASHz z4Eogw*U(CDYNIyed-JcHenebz`DXCG5HdX8d0FXGUqpB+!W}k&N6MFJOK4KaC(tm;{PnTuF-)qxQzr;`_?ku)HqK z{3CF?D;buy$s>)8pW;_WL7MqT;MG?)(;T%KkF@_XN^eZ~#c8l?1`F$Gz40vM6Qd~m zFx2bj-%2whbNNBvmF33%!_1T`NcOJ;IExByxE7_j(*`BI*K9bYGIhSo)S=j}j>telgD$jM^<$5A0v)NtQ zfOe@~62a3hTTTFwN_Jv=VU}9(x;g8@p2zp<3=9qu*#rz}fkQ=fadQ|0viN$pU##w%f1b!_h5 zH{o&wMdFsOO$3vQQvi%fQsbnEMi6K4s~9g8`FL_ZYw-T6CmQ1DKjJ^J1X8S(mdrM;s!?faFsuQ%<0(iWk> zf(CiV1C+l<`%)jU)Z=}rCoJ`$N~*v^k_mhH2uYVJnKT$AJv*4|N;Q}AJZvpIQb|@S z-mUz7yf5{vr9M$fb?q!h1JE3b%1(n{yxy$rQ-IdfIv>|8}YG zo2W(cl_&{|66Z3fO&vJozBa+Y;5#k|&1BE!^>FV_&quy3hQ9qn_D~i~g3ix6ipq`= ziNSaJ0n63-IsfITD{b8_*XJO6uq<)Hm2kW~$hhuD{q-esjvi#E$`TK|5+C(#Jk(QS z&NKHQd$cU^m@DCAh9G;Sr$jC_1l$Kz^y926;nt2Id%UMav4RjX)_oxAxji5_Bn1FZ z<=@V`Zw1al>(gaZ&)C<_$9#7#x>6niUaq6W71n?rQdz2n4KYzsq_oo(3BB`T)!2>|tLC*Ct%I zugybtO>tR)wF%?p6ywkujz%o=jIW!9oHyjmsO|`|D^la^0e9=M;)yVbHPOGq3iIo| zj*%Y~zY+m}U>@>1c7+A^(Wr|AsH>wSWExvBXkhYj=4h#e6Y>z<$rn@1=I0xI%*Kr~ z#CB+~8-bt(q<)6tfG^vyB{6$&XxnH1A{mdCA$&JF5KQYP`dZDiu6E z*mE~+_;$JPo55y>d%VC!#2ZjU&MgDz+wQ;IHt^*vQ3pMzf5O%ZzYl|Vx;12g(-Xsh zX8MW7txe@vYZZE~9GFGJmKVv5^$Ap8cP^M)kCujF`|J>GA7RdU(2<6yuUMMhY#v;j zb=0?qn1OXXaxsV!9nKAT5BC#58e7QiX>A4xo;kUjGuhf$MFg@S z?6%^XMEuX8uC{_<6Yzw`=9}3tG@0}XkuDS@Nl|X>zOJ;z)2_5VLkGy(#P~Fkv}aP& z0dr5I%)rfTb4IjFLIM=!YH8cbP0gt1I1x87Cru<%Gm28QS=DGqLSq@%45;YZqG&T+ zWkowyG-W5C=o_mj-I+;I9svSSn!C}uWkW*aklLO_L7a3rqJ6RwF#a;*ZG3G47i)!_P# z1B?gWb$6l|mesIaw>%r!D*H5LV;pKkpz@!L|@gtiXb?C(U zV57Gy1&!cOkWDjgyaAbz3dUTMjvO3qsgX9Hc%wt`r4I(EZ;B965f21gxql?<-q5I?-%r>Y#z>5jx#sT9hwv>R?#GL#y2^cqrzcq zmBphMB$J7rg_J33HEMJ{oFG|f80UkY)w?!z+9Csq?1W2Qghxu&d`U-=>QO$1jw5DloB;08n)hHtY!e=S8nORE4LqPZE-VrOToI< z_HZFbfvYJCaWEIQSfL~XUt(Q3i`|&I>9*G9k9dy|s#s-fjl)1Z@QRwFP&dFXtHmX1 zL8RpKrTj!DOq3f(H%LCaW5VOg4kuCt3xi`GVsKjZ>R)lsIDFstxq#*N&R;yZMt5fm1A^8=|XkQ~FR@X=M)&((Yp zgC#Q^6#sHUhe<$&mGwp|9_1pf^^7wpC!f#)X;C+$y0N-+c)}IRwWvV2P$D!XqyxAS zt_H`Wr9$VTM6!D<(oe}eTe3N~sBbV}Dl)(Z5YuKrg%pTI11kAKL+RIQPqu9`Ofjn= zTQ@YKa{6oXlnF?VXH=+sm7{WcsPO_lbQJpWD9yztxu+4Jn5z=OA8Bc9xmNz zWQbRnccpv)#iG|Wbe19AvJSPO5MyTy2mE%0B9&U*Jfc7xnQ*lR2C=9uC18 zEy1OJu}(4yYOqfZnbKf>6?h(XRu&lmjFVxuv5|7|P`U;n~Rnle){jiK1Y< z^W$b+scDOm1g~Qk(U5VW3-nSgj1d=+cWr#ovL7I9q=H3pA)8`EMJ#f*X8}5*N+!Cz z3v{M*#6Ml6GT6{nAPD&mP|knfBjAV4F}o06Hg z@~Zi?F}d!owr|p1Ol`k|ilq~Y1-K#>%KV~jmqk1h^AM2SgJdF(nzQ%s@@2uYtIsgQ zaR@$-Q;VL|`_zJNvhhrs?nE`Z)No-|iW~x|b-p0eMu2VOmqT}xp=>)z_+1K6OBr1$ z<kK{oH{L5nkp3JTPZ_4*Jvk-AWB$-Ti_;tl+|SOk&#C(sr$@>iZ4z(?l>lT|yMfAU9;K zcMFfX0>ASUHVt$KJ;s9Bcd>^-2M@)fI17d&oxM^*AA^qL3w`SM>(#(-} zvER($E;%1CbL81K7jPwl#Cru1`lt$5ekFR4%`S9)?l6;!;R@KeP@-RfWGbqj0eP)2 z1Nm!Adb{=BdRV(Rk49Zmxil~Cf3wB9Sc)Nn5%U!T*IEKQ>9d|Urnva9Ptc?$C~3wR zi+`i6y(8D{!Zu_^uUjx(%rB^OAwOhi-F1;O5L5;=ua_4;B8t#0(Jm-jLAnB`Bi<3+ zArowfVplVV_Uk%z!!9oF{0ke<*!=yKgS}l2p~a6jvmA;hb`B0w^hy8<69kC@D4ZAj zQvAWqJj)+R&uc67%#zLZc}~hJc8snj)XD1eT(q<3+vPx~-^$KmSK!@Q9bE4?HAe5= zCQWq(PfYWWK~C$wKXvO*rDBj4Wz=4&8^lF|0PaFpTw$4u*VnT-)_3GU= z5P&0MU>FOask;g@^@@=cb%r{=#&}@A)>vA|WM9?|X8}`?;I(u|LMmM9)@T>wN7sQe zuT9(sb+hL_zZ!DknGA<*@iy}w*iDDtsVicWFp0pjhC44`+6$u2m$lNUHpi=?0bUj5 zyei5DcvS?zZki49D#Ix2NU@4SgfJ=n;qEM;bDW~}mV$wahyc>yFE3+ro_!C2cJoi* zD|06RA!`@h5L>;XEYg_WM#iny2XLalH@-*xcQL725St+fej2=Ln~wF_LEgOI(B?RwV?s7Bi1!L262?kw7`#qh^N zF559!SioE}($fM>Ot>@FZ8ZX1L@Q?=y0!tA|8;4qqKxOMjHTu^lu%7|-VfvyZVfig zEe{qGjgyxCwJ9idsj(hfAG!)$7wda+z>Z9K$UbaX>4(gv_Cw}UOUOJ}`Wf5hVA69h zKu<^E#86(!*oFJGzQ>HSNIBZ+2`dSOP?*W?Zp}CiOZ0c7bBQ>P zUbp7xB+rffc^9{4La^2}##9r%wF4GprYCyqB#cIK9O5mZvqf#F^=k;lytQ}}dqR}a zkCVD6YvM=~ISj|K0#?C;tEvRpUT$$X^449CQ=K97U2!f%4yTBjySuS^BeJ4$bwq-u z*?OxeV@Y=$)4VPvXxS&o)puCYOe*;;Z zn9>^a!G26z$$49nNZ$4Ww@0u3mKKxgX#jwu=zHdngbmf>jqLiarJCq&*g$JKA-Dub^JmmIy5a0~Pdlf%2$w)x>Dh1BI;ra?yD5U!3=A1`iG#4YP(KPHXU;{#)IM!L%U zQC5j5ty-p9Xs5*$3fv>e9n;Awm?m5Cp+f-xaC9!_;HGW%j0*|j3ny%HwXQ)XZWB-? zlcQYmJB&;ugbgK=0>wBxjY7hWeG8qB83mV!GCGH3b5aQvPoeWK^IT3g<5p}+c>Iav z!s>M3lar}kw)54>W~uDsBTO13=e|kvr%~7(hK=Rs^EKy;D4Bot|Bt!%kFw*s>U`_R z?b|Dq$hEZ805k53{irBCL@RlP7n_P2K)vEL~s}b3NfIUIOu)8d!MRX zx4R`vfk2|Tt8Ue)^JD)yd+)Q)K1PSmF?ON|hp?}X+X1ITXPxsGZHZ6BbJGS$4zlLn zIf~^N&IyjPPY4Qj7JRVfyTjsw;d786JK&745Ytc6 za#I2YDQn^rVQ*8A3w&V5DIGRO)2E11WqyaQy^N3j7Q(;H8lXL=p=3dC0V$Q z3)y_YpHeT}kkjt<$#wiv)pERC!z0x5>F|iUbDofcVlz)vh9~R8tx`9Ra?fWpKl9S( ze&O-YKDF@aKi7C5lhpjem;jiaK+v>Mpe1FGT*7wp2M)9G^0+n$R_Au`WT^kiO$ZTC zR=X5$n9cr%-s&l2m7NavgbHV03HJ-}Z1%UhzrZkZ+zQ`p6!zUXB7z_9JZG0IeQO&q z7wR`Vg8!vAg1inOgB&|IMre%OFdHT1mFS3?&+u$LqieE5EHzcO%@TQh!OUgNsxz^P1n#l0NRMV;vai}lZ3-LsGH>wpTJ;bg8fT(98#B$@5)a zq{=IA+OXy&ox#Q&@J!rIOAXLM*cpKWyIqn%ym9s^heIp-saq*8P-Lut#bIlkXXj zhFE6aD^;m6*8Rt<(UZo`u~1~$(@y6{;<#Rx0hh6ZR>M%yNQMtAum2M1*|88iMcd#m z_h0M%SH>^v1O=x3&7`$fBxS7Qf$Y<3R7yg}F4}uGI_reTZH?G(hfe*9!M@R{Z(|G_ zX|BMq6Kv<99<#zEttNsUw?0RjZ^vdEM1P*%Uoc<5b@DPmOK>w3f&Xc=Yu1K-Zjf@qKbSY4qu?9z(4zls+Q) zVek;Q!xko#B$8GaEl;LBIO%Nm)KO?cG3WE_FEk}4JM>R(nP%oJd{_k-0`OA7X9Rbf z=uYH7TLTe#NDDAI zpL0QQBfll?CDC8}M@mWzn7CImu@BKOPwwE>GG$$#+{{<0Tr75Y8Mjm1-DVFZ{27Vb zd|A}P?euK+yQ%_s>FgPQr&h}Kp+8#IV!v;)UP_DB2PtHJ6X{JF_ros1tPnabZQIeFyR@7q^~hmYVy-mxrncig5^H0T6Jba0!l7v z@o+?L^8>fonm||u8|6`+l@<#XmmmiY;NmK1k+_SJIBw4MFAZ-*D(14HdQ|qbc?8^Z z%!1OGDe`>Ga!4lpvqpb1?v8CwkHxAxAFGb*p&UO*ay?FF@i-rEoYrGoM#5=5&q1A1 zG*5A@PV0GEG9@h!#n8b?zdx>f+ib&{JMZY+vSTH%Vl|xrM)E%x7^TJvB@o47TF_fN z=x)h&EC6*KK$R+|qID=FxxT;-v8UpdJ0uO^qB@jy41|5B^)N8iLs*(-+WNGfu)YeV z`3X*qF$*)}oYs?%g)@0To50A?AGUXhtFQ%5dPjixHXhHmV<13JGn^n>#JNYQph{YL z#Bl;9YWx^Dmi)Ql%Jx5j!E@nCHs_jig6B{ZU#MYBB*K?Y7Z5=23XB4VQ$&Wdx2cXz zsuiJ%W^Vz0flQ6OE!(^zjmAh@$|0o{PlT6w=4negFjqjLlFYZ24;k@G6Mb3|5L6+) zq^?n96v2s8j=sQZOJNaSI-6jWG1hn#Gq{hb^qF^$%urPa|26msn-^(SZN!G$P~|R; zY<0lQw~~*}O(^GN>{aXdvowCMw4XxRn(8?O2Z=|ketugBj!6j5 z$*@Ml`6pn~cctG-!Ex!ucE}DwLv8t9OrwTGR6Q3XILH@P367dZs>ztt#v!Srorq_c z2MP*cfhuvdzjbT`IfA{!jyPS6{p0FjJlRpOwAep!_D{->|9W8mq$Ioo(E~FXDFE`R`MsDQ`8V%9Rnn!=;LYlGsa#D3M68<#G zexd^1;Dt6e;*C9XA&psjY-3~@Fu^X%J7q@SDV&LPe%!RxAGxE60cF|3d$DQ*)I!{Kp0;evO9gN2%GD|uvj zwBxeQqkTTTnWegONLm?c|B9y03KebR#R@jlKEH*g&P9uUTcKJhX;sg~NLo;~T+%`o z4O!cYqxqlxYZE%Rk)f?1<#f<^zvWWSC|0gtThI{obV zq=p2ryF_HYUl3Sqe^gTb%7simV`e9W@e`@m?CRJ>jvpVfq5%xVoZ1w|AL<^HOB5-W z*y$Tuo1>r|v=Pkj=GUi|e~p^j?AgFK4@5x|CA~jK7eDWHW%~YJs?U2MEv?de^gl%& z^db-UioADuk-50YKof;`#oaYB-!n^TlVpGY7z9W0&2kg3k(-zRBPrk0$<92Zq0Qcq ze?1?ge`yX58ILH{mjR653w2ZbFT5$T+BDh%HBHeWHds{=4BE^W-0H(raXT>S*?~Pp zkdXfdwIjSPirN!Gm<1BK05x4sRx7wXyTieMSJ)21liLjZ^+u2j8%*Giuk{Agb*=Wf z%BZaeBZ_5KYvoa8(?P*NOx|uSRzU0cZ?gX^%S)usA~b8ZMlb3-$xGb9+c~{19mG{z zFGwtXQ?6R}C77$0C@OQ+;y^Z6EwS=MSPT`)orl)l|F5zq)z#p8#h;6~wKEf)+79-7 zuZLnB*&<6RBu~fP5zewj9#d|l>3bcK@3pf%U5xWi!}n@F)ZlwH^BGUuGm;2ENG^mq z?)ily`T8XIVevm-4+o^>yt(t}+cMWH4htRMW0qgiu>8Qm7WC7``9phaS6+2cy7ecx zUN5je3m4EI1%X^tf9#xeVAeGJ7?%POj51ob|yxB_U2FOV#K=X(+m&*Pp;_Gh7AWBpM=>ha8;G#3k7O}R7w3Vzv> zwR?qFJ;LqXGn=?)7Fez9;K;u!m-TD?P@|$SR!7@8xJ;gJ`B%P0TsCsC{jq@Hm0YHJ zE{4kx9^$g57!4dZ%CtQ`5QU%%)A@Ue?q#&&P95q({;PUb+1GAfRTkdlRsB#k0THF( zUe#}Ww)UzLISmsIvDV@gnme_BbDm&`eibk9z=igAr5E_z{WT>{%6xsGWa~nkAvR55 zd9Ko0&j%JuNRENhYo_*TzY_FAGkY!s`eF%U*y^`{67N0~rU8t4s>g&OV@~!IViCHigcz{Nw(@C|E z#Axbt$nojqofZLAtJ&|?v%CABF%e8B_cxyPApun}EMTaZWVDdfVt2iBoY}sdhuOn9 z*(|h<@nL_$h$w3urwTG98Q|IKnjca>Td?_n4fW04g$#|w-=OjRZ@s7r;xv*FRFR-b zY9p&i;}Z&CEXT^9x9b3J3O{0PI{7?fRXmVlQtbx-*3=PoT0HIia?*|;N!TIPGA)_T zr7RO}Nja+}o6}edA{jJK!;A+Wkn%gTaen4(^!UtUAKW#+cX4Shegsum5p%_$N-7eU z?f1nnOfce-Jlz5BvV(YbOB8hp8s6Og(#u;eK$sI-{RNWhp?vj#%F9mLV;hL8r*((D;V;dN(19T@K)e7LBA4=j!Ec@qjZqb;!l|7pmQ8Ch{Vd4$w2W^N}fJVpJ65LhPWes zQj{Pf;Yk)^pCCH(U$HT8NF-L*ePl)5Hp+{vo1hU%npdpbPT{!7x)q!F+H?pRQFr?J z6`fuXY9x7~&hKKuyn=?qMGzvgXLY!kwjuJhb?yr0XI3;}XI))n-%Z6p0<+F6n8VJ( z=idFx@o5gw>HLL(~osHf$KVZ2`~fOG_w6gLDO{=vYf}ACnTtQ zTLywKQAMM@Z7Y&0*0FHBZE735k@f`wnN84)flckwmK4AqXJ!I=iU_2#^-4LnTZDc@ zw;_kQXEU7MXznhoA_Znv`%F|n^}5vT+mNAeq$!&84oO2aR~h>m8`;b!k(wCsx6lVP zQxP`-WTc5m9ie^GR*+ItdK+~v)!V24Zb`h%H^}GBux`}(LVtw3fXiaHSNVQ?sgezY zw{IFBh~k#5*woPP&4!XAj9!2GW7~s_ucu8F+#0n?B-I z^d$9xJ?*32c0)%PV|AMj##^J2axQ+rl>maSKk*~_iUbtRvcooR{V}Ej5!9J|PHKvx zXpsf2^5>3&rjqnd%@2`s+J=;KL7r|dp-oW3bSBae&K2uRwJ15NTMqMbuPXA&$0Q|r z^s`=f_8V$(tdc6vE5wklsxy4uXcz6p0wScTN{muM5PANq>Y{5*t3YJnA|PTN4!u_G z`9KdG^zR(tU{7fi0BGf`$TNXo2q@$hT>%Om)7Xba8*2GG3xW)4{|d;ksO?=qkB_te zE-n)WhX_`$dZx2S4F`@l@1*eMM#PkLcN1`B?g|~34nl?Mpw}rUE(uX9#OX)gkD{?k z?4K8lmDvB$Pia6VN>`$qO^51yK=Kz2$u4GBL2_#u!0gj=kbOIk1SFXx0ur4$2VU8I zS3&O@fMOf(jN(Po{jg*~%prKqG6*6Y4SZ^CjN^P>0esb5cV6(>TD5iv**2N-%LW=D z4MMUom+be%QLqaOISm;8&-23&-Htko=psOArllU3 znAPQpX0{+fAkzy2^a@hVnN2{GfUvwT*UXlUzF_XX5*jK+;k;;I5_OQ#ZV${+`Bek6 zD>FJILuuzr?VdK&+uS4KtNv;Bh`MG)wKNyH-GuNn$B*XB zU;p`YNksFsL^nnpDw%Tu22xfu@!%U-`VD<1%c(V6T1;K`>&7uLkG9+xX?@@5*vhP% zE$wK=P(~X{e2XsH5m;t2Dx>M>lw{fUQN#mUU`OxsdZ7KiC}LZp6V)&CV{3AtJ37YJ zyxLLuSsRIF1H5-1HO8?nWnZw4!BNW8ON&Olih+q;&5%MUTe1)n(U`#U1*^;{aG88I zmw3N^5I(9@gjHr2s|iK0Wci$;=Nv-3-vtOw0SAHhpTB+rg8nLnz+oRQQsMoAv zO-Ib0+SOu>?f;$7K%osTNB^Jd7hvEUnZlZ-v}=RS*{(>4X#irsc5wk5twd`gxmE?n zbGu@U(IBgh^dh}6lKmO1J{qnlM-H|o<8(;2bYqQYBLzWBS<{Yvb}Efvjt^tZnDl|2i8bmXrI zQ%5_R`RUL6k1xOQ`~T?=fACRxu+~$goOVa+lahVX<=Fweimg*JDT%wCOn1?7#YSl8 zXsoUBZ2W-he-Xn#2%sBI0pBDY!g zoF-uUxvf^uuZof#2JbR46M!bOKT+M1uxLELtuK6VFE(ry4Q`a0P$9l(rIi44rBP=i zpcvf;rOSGb8l#?%;-+r6n~V#pj^|P5{&QCx8vvJAY|sc5F9%kui0Lzp3Onk(z}0{g zkD{5s{rmk#cYXZxfAj;6<}ZBYhrV*=&p-c}_nZ^U|Ds(4@LTAmCU{2DAjarl#uX_$F2rIChLp`D{yWB|Fj`{*%ABNdKn>15987qOIDcCHDxMIsuBL zKdWJu))Ph5QiXIm1s+;cW>i)qwxA3 z6fq|$m28PV5^s+NfU&tp)Ynn1W=K)s_10)V^PmJ7wMySn$87_#2}wW(>;T!2MryFT zJ|VQjAVTPeUDX--NvdU*s_EmtI1wpW;E+Rysn5@6T9 z8yy7Hs@Id$HR8I?NUeXvYs!}~#!!~`kQLpzwgI7gxlI@TF z=Yz;)u%dk0S`*Uz$Z+-;g<2Z{L;|^O{MO1Odz4%67)xZxjV_>i-7)TiL%l(2 zFkY)WXi8-L&cta2U`<}oPK62ShZUYQtf%XR=a5r733i5(m;w@8wnw_>i92H%iHtkb zdCqEd{HXq&KIRr7Xr)kurxAbpd!XLv+7SP`>J92qC4~SKTl`6;Gs@sLw`aln@Fi_ zjLSQnM^;l_0j7D}EjxpFMC^;7T|RP+k6)vhN0PdlFML{6JVv4{YR{l?i2&eDO)ky^ zKHI{Ea_Im$M@Z-3l>>uJvP1k=JCKjBmMdJn@P86;(fB}|M3LFa+GQ*qIy5DDLczh?h%Oq#sAn$Mi%jViK0G=m0%Z7|BoVf}ZeH@(?&oaiK@#nbHL=bHR;PPZlZ@ z=v|nWv@ud(MEm>_?K65Q6D>QYf~!;p0G{cUn0!!?H0B~+seHtIbOWQLs_O(LQ$^Ig zR1u8#Tf4M{KB59sULdFM6p$*yJ3$nX_;?yx#yvi#YM`1b35eki2xdnGT0syDn6b?KqzS8Ut;X9nMWIC1=i`T$pjo z*4s99hn||*{785BK#|flMoGoPGx_`h>LwKR?Afz}?9bw1%HX~KL+XE8d0JSc;xPlF z_@aCcRn{<`KsKyjI3=LJh-?VAP|xVl7P_?^Iw04j5JYef6zfwVP?oCze3Od6@J>)I z@jwckO?H%18h8(}>2R2S1V{?fs6vnD@Nr0k)8W7={XieoYJ`786ku0?b7I4%8c+&N8r!7+S?h19i}lcb!Nllve(@ z@F8HOnwyQbrH=@FgcB2C>w2YBWpy97k>Vz%0ga4ho2>l796hNJZaW};|8a<0MW2Zs zV{KD`wjczgkZ_!-5CI!-6Lbl3WsA%T*V9qS zP>H6Ha7Uem_*2CZ^Q9k&0Hu(i^S|y=AB{NKvtdFBOpHNt8fSTl)DlQ7JE(FJ(n_}u zPlD-m2X7!cvhP|Ypz2yrJPfr2HGk>e=8BYsDw!g1~dJZ{D^_!m=G(4A@#Z}$0Mn6xMamzMFnd1tVxv9r1~0z;M75b1ro$y zF-(-Zs`r5dRUPKX{($M^UZq#zx>lYj2JLLNGLCrUlYAOf}?agTJM3e9hj(xl<1f-NKBxd+@8vetl3?t zGN{twHGsmftO2jFyB&eBTGv9_=sX=52FgPWro57d%eE6uWG_~{uueNbIMMI=jjL5@rVEU=2UthI84nW6)Uuj}+UjbxcRRLE=P z>LQ$;w6#e~2S6Y$2h$zB{-9H{+f#H#f8ZSBQLfg$)kJ@YQMBJF1PXlBBiW<~RDK$m zIX^4S*Jt}o6tr=8Ls`w2)Z{Na$PK1h!OQi*BZS>~_u9eAHBmKd9kD~T6}pyM?m-&c z0)A}QN4w+%cvEWZwFk$FV}ij47Pq83j8>;1%fhfa9~Y1c(YF==m`}i=>k7h_6fj$i zN`^8hc;dct^Ls3BG51IeQ0gZ{$t^&VZ96HPIjSaAji7fTkEfG!(g*~i<*%MMt&NQE z6o;Z;`(-%}1+_LtYIg*=V8JSUH)#VB)jVe2VJCyi%uVGm?=j zqVB0csRsC<$669}_UVc@@;HENY*&-&f}A8YyZmg1vvERP6J`4W6LH-0^6n~DMY7h4 z-_vW%riK8Ni5^6Tdf*t!YFJR&gLW1RHxGNV>$HdgMI1n3!j?gax8H02($A9Q|Y~1b&AuUUv_AU&Hq!o3vlyuu(s2q3) z$|`#5edXD+=>uJIBTU0;-PB&Q8=qN_6YhrY>y9|ZmjmHSGACDkApP#Rdcv7#Vgs(@ zrpQRbU}pJC&L)w`1w;BvDjgB>*5B8qdb)Y5CVyq>EXECI)M}eLsV!e`^{%OEolvbv zD)}5>YpZu%rS|zGb_p*=^rAb_6pIrk7G(%%Zblq$05+C_pK>s4_tG%qA#}H(8JW1{ z>|A4S&3Gc^arIplX?NG9e%PhY@KiWr6;|xt^D+gi?rvdMa-3;t&`xyJ9ck~;%_`{u zRnk(vA#|mkuan}&6PqX~ZYA&5hn9VK2(+T^22qh*qwGi6M&qSjM26$7G{d1R3cq|*BcDt@`KJf>^*%QBaU zf|_5{(^r>I>smj3;V1QUy4?HG#?!n_tpifY^2)B%@t!gwnS!t%CF!v;^-yLc4>2S4 zu*EN#l78YL*JY-prrhJTr{=?}E^|@DJO!3qR?H&~Tj?oKT3I{=Py-Mb^xo7bI=9|w)}(qm3_#!*tvgW z{<(B3TN;gi5CJ#}lG;^Av7d-%w?+_1o?aXMIA*Ulgzk@->?!*sb9SidwABP@yG`F# zq-_LnCLcsp4?Xz4Jbs^}PL2i1e-tR9-%RSNs<{}Z=E??ayY7m+@g@l{uZ-evp(JR*7o zqTQ1EUP)?5-H2v}p6|C5P>Z-@RaX0ogFD&sdqzC*GqI8ZJ@?l6^GO))N#;$OPHW@J{bxvhC=&8Axv>H>|(gBG@ zs~s*i#5?wWjt-lk;Ap2?h?(P5-GHNEScEyVwqS<&nBTR}K#N-ZuKfk@*p^heQZX3y zO2?Y|55BA1@CI-bcMc@jCHr{;5=%&Qqz7=wMnJ0$S(KXRkOf}ZubPCCMClQ+DlpL3 z1+=(ikNOvwcqW+n8WXCqvwPnvteU>r;_B%}AZ+y@k`<>ZjO}oeiA-orVZ8+i&4AgL zZ9K3|l>J4Gf0Hg1RMIdOL9_=M2VZ)x0peccABivUsf~H7Py@pc>o5|fXs=K!B5MnT zBEXLc3l%-pXh)L1Q=)fy!O#z{(Hshrwl^cxd(8*{Oc^)Z6spcU=xU;}Nz|WJWMQ^5 zhd|0uCnE*MK9}2y%%y)VEl(Ljd3B7rq8b%ehqd=C!x5PA=KFA1)^zs;^SE3CHHH{h zmapv*g^-IZwgo2L&n4Bw{oID$X?AnH3xMI zrc>V0%No|eD&L-BD##g8uT2}rT?2kKxb(eY=_1Uv8jg)r%fy;qJBER+(G-VF>8wZv z?_8zKzwU9~?DML$tpRlJSRI{2!IR!)KcwxMm)4ex^?Lm+#I?!D)Qe2>wFYm(v;MOe z@%$s`+QO)h!B5>DK(Q&WlDDdz4|BGooQlJG_69xE;dbu(%_&HxAGW2ZQ4%KtE(c+| z5ji5q*sTHzDh)y`6%@;_eGFAMoVfZ*WxwuaF==TU(RH=WwXCvu{5~I%MMdC*+^`J*iQnug5H{2= z2OGO|R|ngunphQVv>}X*@^9!?Pv9WHwE>)UcRA=@v3w0ax@Z*bQ2d0jl?=ql>Zm;Q zanMnAJyu|p%#IEdztEikyXpd|P3fIL2si~oE(SuTLq9N_L&k3z!x^d5byNfyN`tGu`yShkkLm!AtKr;&v57{ z8o_FPteUlsig~5?A{KIZ$mZT#$JQth_CR^ptVL9g+>US^C_hGIi~=kR$)SPrG`Dty z^gww_c<~NxD+`m!|BFccmzhoIs#CqR>46)gw>Z4``<7Yy@H;XG`0=E!TBuF6VwZE- z|0EC-m8Dv}#t7pXfOaEIHj$ZR!Z$An=-jOu9Kr8x>Tt{z%luy^2xB-KE1q}vXgZlr z?yZ-$AEPGUV>GmK8p9v33Klt3 zROYlo1kJk6E3^xpLV*lRS0GhM4hG_?3-qh%J87Eraqgpqw(Bx^z$W1szC zn&3d%*2r>AN2Ne7fVqn0Q#g#k@PEm_RJ)rSYL>yC6(dtu;5pfr3~Ko-4!y1zz9^sO zWLs)}L6p>JK^Hb#YzmT55xix#gfHqa_Vh$Q5Y@R$D6Y&U`7q2k7*-(rdO=`#OYvu} zRWy5u_>*JXplK6|MY{!L{c&^=3Y^n%Lxls}73wZPg)=k6S9n%vSvvytaG}IMnM7%- z4?3o4*}VA$n>V*ZKPK{QRjv|dt9>MFOZML7`YEKT_zr*>^iwmUTu2Mi*qBqoa@6@Y zj`B5mv0~GzucUN7)k#|%1m3D#d5QsQ`IwB^;&K9EZu2G!BETZfK4#_}4hnvd?gBZ- zaok!wlg#IkZX876)1`2N`5@})K<4Lf4~RjfuMTRTKOwKSsMsBTClU~yRF6h2qqamyn&osklY90-YJI-Hb*(E1IMV#!Q_*=Ujx^7Vc&BM0` zEDkZ(JN3MG@V1`F)q^{}cT{)GJwu}pw7_Dx325AAs&TeErd9i7hsH@3476DdBp=dA z&^l;aYo`Oi(E?4CaKs=aeMErh@{QC}dts|=`Vu>E)LW5GqgVx-{P{!GGE`V^vOC=8 z(y>Q5lSTPMY@Awe;;?eiZX>YJAC{DIP zm|S0uuTocyyzl|QF2=Rwcuw@!9UENMF(RS*JGMIB#{=F+m*X8|0JV316L?3twlBf^ z_{HFT{JeM{ZQ?!DE4)J|0q==cf!N0<>RJu&w)JTx-q~dHPsh73E#re!d%5!p6{Qy&uS!%%{D|+kh2tQX zr;!#CbQ-X!1U&KOIrCBLL+X*WY2wBRw6BY-2<0-IaWH^U)s0}|kZ&gokn1!JH6!87 z-@pgvK`Y7c4XqN@9~VC%`W3T| z0G0Iqs2*tny!w~B1Z7eK2o%u@9DU}u_1T0eR@6I4l&Gynl7Mxo%8h47hVocz2B8=r zS7e})jY{OmN!B&}&Z-|Sce36n1htEf;!Y@qFceCVsj9Zy(ft_R*{PLRd>Qm=oEMsl z$8#c^)K!ZN@SJ8zGe`%x>z`p*MkD7NR-nhBau6S&- z-QR}Uju;D@?X&}i$!IVPU{QD@_*b34KH;1LafsGGSkoQwF6o;{JIF{jnB0c=P0&)NeA zqNK0+@&bRxPVp28u=0z~$%oOxl{LdzH^@i;xZq zN3&FJ9PkrAL^)=e2a)dLF!8y1S1_>J;6X()#9ILyFbJ+ zDtvjy0&A8egQ8CPLh~21OR5;gFphy`27c7*70&(_~3J4m&1Jt|_<1JEc3L!{#a1f`|zEu0?((*;t zD35z8=kjRpB1{j7G4rpbmhS920HrWDe*d{*gms=>fz zaL_1v$cPx!c4f4v$a@SKoRPOf98OF#&vCS#28D2fV9OLF5vE(VV93t7;eI9>MI(AR zC*B>!qltFJ&e@+hqXr-zzr!5X$W4r zjTyy2lL}fy`zcu8f=sEJ?<5TA@1XCn;7RspYFm_{AE)#~GE3cau>}Ak9&nNLQXNFi z8EoLfDR9pR|CSQ!C}@2)*5BiC_8Fs9kC@XbntJ?v?{RLWciH3l`f(n=AvsQR)~NHF zYmiq-C9f6-Yrh-FLWF{FrNsTzNsv~if;($4H%5CA8s*+}HajaCmKKcYLfnRh1AAx6 z<$ut77iJ057Qx-=O!_@0$j+F>XBMuNFVBSSp8hpc99yh4)2+|`TD8!~>9%B#Vk^u2 ztlR-SsD~HYw!V)fv!|Jo)C~LZ(x#7{2a9O|v_&fQClue#XME11MO_gLdy#bf?_p*t zAK_88&Ft8!n0Fs<1e%4mu-Pi-ty3#%PUo#N-kp<4*GCI(2n~iBpG)rV!e)_4$mdX< z5=s)-mPi-%b%g*2HGos<>kb1#kJE1G*%#hSU}^56#$Ya&QkMLlOk`?=0&EQ$-- zr_O@QZQ_?!`7~8J(6_l;p;a#WFk0oaX|-5ra6JlK7umE?%`VE!Q&l8Im8!~62_jTm z3VFJPPqq_77?(GxA+Ngvy`~*?PT*cpXW@W-QYO$Rox+Z$l2o`lfDYpe^T;<1B}9>+ zMDRv+xLVGl$?dDMPCU=*xHFW0F22+0OKhqY#P8u1hC->QmPk~%)sTnN9mw)g)(s2 z*DhFm;btBv67uOQKo(Xg!er0soNZC#-Kcdj#2nHY5X%27Dv`Hz7NN$Tn07G?0g2cl zparf*Kpd^N7bM^qAL8GzM${e5e(HlT22AJ_B>=);wg%;?lvQskWfA9=7tV(%4w179 z^6cRIyBuO+wR#1(x#5R6A2Ob3m7IJ(>4>qRAX|Qp9!KgPUBSeuREO>efQ_wYM3egv@rC(QQJikPw6#%|SM)2^;QA zN>bC@!#E0ONo%ayEwQ0Z`qnp(Ot)eGq3e zwg{B*_2~w8p^38)n$a=vt8Dy!{*pFx^v++Rvx|eXKFQ-JHSW`dRKsi685^p>i{#5S zWcKKJ1)0w#y<9oH9Q)Pe>(_cRA8$piG{*SB?{cHh@8*Sph@+BqU3i(TX2}jRz9la{ zui4+Y_5qkR`{P{<1|x%yr;}59ImY&{lKfzX~mnvU>D$r~b?V43_Qdhu9%J z?K?h=-vm1IcVSuCMSJ>Wi5-gN@DQ*~+Ug}J09qobkNu_W796TA@Qrb(;O2Qd`H9BrtDo}}yi;9z`t)j7rfCf+-6BbksO zZ~Cka2<65|%YsA_2U{a4PZF#_wb`!;06t+8msDxRQX#Pnh-PQV+}!JlOPI$@6=Qz$ z)l%k3X&$N?b;vDuXhgy1W;X69Fn;v=Hm^WFMrjKch^J6d)+cUes^_w!7}ez_7K*rB z$A%Ry+t{$e<(eYXWtt#tE>i?ybIFT!x@<1i>oQqfqDxk6&}Fo^RF_sUsY_IBq!-+* z?_Q?vUMAyqQ@#NV6)~OAq3M`-I6e&2{K@|EF~FjZzq=sl2N_jF<+@;sUtXV2$Iknl zprwbYfxXBN=E+RVEuf|B|LrxDFDWX9D!Z5Gm+J--`X7xpxqq;@d8)|*rV>4JlPO9YbK<5ev5{}cFAJwuUdlklu`V9h=j+1r zOSEUPdJcSSALoPtBo2pHYQsA0pUI1nStD!N$J#u(a!pUNtYNXcZlC%(0`=%>^>tJq zOTsAPtlRYJgARm=?uai*nbynO%CBQ&mi@SKtccA*F{Gj4@IgfN7=(g#I1lWYR0lYm zbY%xtkg@~N%b@IlKz@KJX+pYHQgYAtl_W|0}s}g7C0iK9^lW> z#c}~9k&nw`Tuny7t6^ZW7_gaD^B2fd68D zc+h-+eD;hH!J+nj0Ovgz)&BZ$_4=s2J`!Hb)X%XasoBddROOzua{IO2K#lkaFwr)Ew@&8$Ot<)Xzs*`IT0hzKpWg;mZ+2&-#&5`-1*9{5OK zYso>k%Iz-xK@60qo8k(J6f+=(c?mo4%Uo4u45o|<_rPb07Ms_VmUj*E&1w6l!D&2k z7uSG1TgH?44vVo={8*EE#g9%ji^DxiRVPF(r;Q^;?tvpKN}ThhI=+OP$e+OWXK1YH zvjVJ@Ur&7Mz9mflL)&We?C1d{;U~KaF-}<@F(IqMU0H` zhQfhAB|*fVa}sJcoK7EmE>#W{^IQXC#v&&I01teM;0$~!ZU_$#vAAc2B}}jtQs>ho zaL|$J^)Y+B6kZ!QAgyX{*k6@9Xyq2=YgQvZQd|+nr;G;H#eX4U1?3T-6}QXnNmc5= zvpjKO(qP$>RqZcY?WaO7DiofsUcYRwUut%;$+E|*a?e}26QPqL571%GA_qD8ps_4Q zu7n8>cR@b%7S?65KUu9_(ck&OLPvqt#I8Buejylw3#2B*fd;%fY(*b*LEAuir$)U8 zXIf)D4IVDr0w%j8?ZN+WKr0^#H>=eh^)9bmg>+~=+Hn0+!V0*K)chb2kD}mm$%-`s zJD=09MXn|xa275I6{uAFTVtc?X4xUl9>H7alMC|J+Hr3o^(~sWa6Au%mC>Q!TPXQ! z87)j&2=DoL5gQ}pEzIeNW;nfMo%QFWiPAsP8W?G?C3ahP;;!x>)H*Q}@A`KK%C|I} zgd(FPAAr`@X+i;aRjp=|zB8FZy~%*F?}c%iF=Pl)J;%<=O)G zYW2!Z?KQru+csvf1&4E%XVzt3DVvwcAA&{06!BCsY*nCNm^*X0SPSt8UeE#0aA&Rt zG$s#oXQtfX&RmN=MTmjT?rU#a^$WTQSj(8S9xjVMEszPCS`lPI4v*c-DHs*@R)At2 zxXBj^pTteL3!j_4JSA%Z8*5}>W=q0 zD!EaKvO<<~Kl?6zm(on$M}JwuY3)|+%f`L?l}Dw4y;>9zyz>8fZwoyaTjpImOgI6;Y zcXi2vh-B-o36?bgx{S`?0g@X7jZV+*eML@@KMquR(u8B6YI7 z-+pBIM3vtJMRfUbw3p_Wu6i8py8IHTuzQIrFVH4Z=nLLBBK6 zzeOGl6_XIbhMc83{)j^-$vU_ppIG%94hNPxL5YB+4P=p2$!oy$q^DwCm#@>xM&nRn zLnwu|Mo}>d`~nlw43eze_)yo@iTDW^sZMf2M-W9ydzf!<8W4yjYNQUK){c7mihF03 zz5@(tsMn!;c}8M>Y?CMOf%{k%m&Olb6r@7WO&c&bpLBt4q>ht(_urK9gTnCot|^B>U$ijA@!Huk5IRe2dQ8)-AE3{C10fnkd1@(}E_F~_aO zE(X50b?Qj4*}yk3HyV1JZ?KCOlGa`b9ykrxNeLnIu|&A$f{n}t^HLE=o3YWT_(}Cs z5Mh-=2G6-ha#=kRs5-_a+?OFaq0evauBFeH<bIh@0bvFb+du+TDJm$bxd|Gqn_CIGi5heh|5VUTG(b18 z5_ACcvfk5G$Gf8=MsA{j4tjnW%mIW0=h-DHpfBAe;m_z-J0>8P;r+f2c2JFvaJ>AWd zU0Tq*UI`0l7I`|pT^?PYqtBAbRMg%3=VzCavO=3oSO-vEKV)KYrI4A&Pt6QGk*{Mi z{{E*v@adZ$`1rpYe#eiD?D+Ukbn}}d``_tby+;9~_0RHu=O^E;1FiYbFxiTWxHl~X z35(Q@0`jlKa}>iBQBib|Ek*g_3z_w@H=*!>MG4NNN#%Nc*A$+9|%_5ozT>p8w0EaJ;ThI7n!R z4^)h*C0j+bLDMdj)`7GDXcJOV_8%NrHeK;`m(mr0AbYFCL>kkXhNb_qJ^BWeYRTF= z#8OBr`;S)D2Aa~`XG@H7X#{8=#(ZZRSYX|oz#zRhA{6SsBywcxrS?gMkB&k8t~gR>QG<#XemrVwX?TwGS{y}{CJY2hRZW6I?JSM#E7F6K1)O| z7Hn*E288G4j3*+1N>UUcGX(vE9Y|Z)i6l?J3_q1IREas^v<&K}Q|ro1c@5u#;uGJ0 zA3rqVkV^G^$}RdHidX^B3F?iCNa6^mNF>r5iPLCF&(snUuefw3D%R5+&xHB)Gx-yW zc#U>-*XNhcb+39eb*;~@$}fH71FXPSb#?Of2hc4^?`CAsKvhMs{k+4Wv(*Mk>uV`ixkq|xlpJ?g2@-_h2_Od zi4vigFR1f1dsclvK?ABTBTA7%$2CXTIBw}qY=Yc;WYW9Lq|IYSu-BkwPT&a*TpvCM zZp^}CQQT(tNzLv)Onpt$ZpKh&HC9HuMSYbdtK?*rd)COHOW|rz=^5l4*vDO$Xy%t) zAObOSbbdE8h1&;;h;qAvdFvTHuk3_gBPPmM(p!-2OwTVRD`c($OfZAVX#|x?p=nMJ5x$Y+*F9OcYh2xnRL zVVimA+ayNAVe?xLBPgXzCUZ3X?IAoC0H@qDXh}R}T!elfoTyh>2Of0CO0rD4eE4z<&sIggf{` zpi8rQ576e~LVaBj>g)VXD5l0`L0U0p@md%Qy%3r4;w8=!IlQ>1rZiEJwv1LfFZDQ$ zSwGjVq%kS9uEef0y~k;6EhAu5YPZ0Ksc39nO=IAYPOLK;Gij6Ii>PQ!nT?jySccAQ zG-fluS#yR5lz+nu%Ks&@?Vt>$TQ4SnV+_znm;uWXrZz9#w!57^k*WM~-(MzzC8Wf`G0A}P( z)aln?>D{DlaB=d`DE2T4UFT!sn|S$PH**`$_&=ZcXQmOUaEbDOO0gGJ7?qG7)Tm>^ zday$DOgQ;YN;d}L>xzhhpl}Nlq6d>X>i|5CPsuOnAu~+{W{}L8TqbiSC37apcv;Z` z>YUTUWKZ4^V@McXhJ=cz<;oK!tuh53#<5Y@#}`E{`!AYWLQ}_=s_tE)s65rG8G~dm| z(%}1uT>JMRb1J$WM1jYAgQ3X!p_z)Coq^T*bcH;oJZ2VsmZsy~krQNHx$S+-?0Ut~w3aY}){dI9S96X7|Ok2TdihTp^-Mk?GKZ~o3@t&>$``*mFk+~qE z4}78Kie^L`0ePE^xBZl)bLK*U?G7}Bn!P`mjNOA|fcB3r;n&(L_VoA3BUY>3m(Jdf@`Tvy&}3fDUK zA2){Bo_Ta<-hP}98(^I%H{M?s%-+>70OP&)&r*rH~Y{)8G>M% ziwWDrTWo6$%LgpG%;~dA)%$2GZdcK=g!HGr?1VI6l?b`RpY#EU$1`zwIx5B^-AYVK zxk1o6z+FgzB01L%UYViZuFQ6S*iW98bX36vRq z`C2}k>^8HC#AUJ=>ZEX+IE5}#gF4>2eUp;y*t#$jMmO6OVhiSjIbkqzH@^?0*4xo7 zTmk#Y)1hcjrk1EgK&fJPiS(lv+K9|iqeFCaP^hQzQNjo9zz$79zLUlk1U)R+1uGG+ z+%`cMZP~m)bZ~$f-71+~wq5~hhN zP>Z=?Fw6?PQF_{13uQH#$l7JI0s~NDBt|AKvM_EdD{V-9c>VmL-cWRdJJ zJlTk#06tuH<{VpdAqG1$k2OZZjod}o>JbBJK!2;D5L2H;y|4(Mryfa#eDFQ1Y}{+* zk!4Bg{I7jM=ZRA)J)`#wf}X>cMkjYuGITh<#SVuQq}kgAY{Xz&5R8FgcvJ7Wk4 z0YFF9tf+IRyn)WgMurvgFiKKJW%d&1)hD5Y*U%3r8PE+_cT7m6C3*nzlhz=2>AaGd zUk+-$HF1rZHo-`(~BuGhlXwLU;9|j5P(e)txpT#Q_@{YlKe~m)VzDJ}8~B{ZxM0&f>E2 zQC~v3O#aCBQ@gsCv0`?~Tz7MR3699i^34Z|O`ZHQqOZ=LUGu&8urK9D{>09FI^vL(25N;CmH>r-D-ODP8WE-6E?>>?b6B}Iad*auSMV0!p%YIc$ zF20w+3>yYxj*LxD6&t;M`m6?y+Y*!Xbe?Y% z(Q9+7GJ)im)5GrNl9(*X9bl!L5`J-~T@oCgVZNqz ze#Pz7(!SkNwG)r*4b?3uvBD_lp`+P$L}WQfl!(43)dj2=&NUQgvkAlyX%v|$xgVBH zF)TXbrhL)>^rGY!FL14u&olu@tE}oZX$`;)=W8VQz8p9OP2>s_RH)r* zvt3+)pfW1F!bm&FD~Sa2L+IMX3|*5K?QRt6zWu zoKZ|1m%-ZYi!foIkj)s3X_FV?;qV8-=ZqxKT+Q>}8yN&M8pCqsdm+&b6RzaZdKD;icgp z+15++04;6<{hFk7oR@MC3!O9oy)@8iT2DY{t@N@gU~YCy&Z0B_707h z=8;RZ8-u-MwBTAjL!@Dwa)ek#^$JfqWfY5FJNRFLGsTxM@JhZ!dW$b*mWI*%bMd8# zRXS>XDLIocmz}afh53##FXL3qYeQ{iyVBvTLah*B=vwYp1`_Aw-rTpZRX8^`<=}UD zWCnZoh5)z}Rl4XO5A-=fg6`@3-v1Z6F#g9@bN+9KhPs1HF+);52GI~GGt`Z9+sv`ID~|}8DeI`JRw3=+)CIGhN@AyXOYZW?oxz4~xv%8Y~3Id}uCW5@D{?Ky9 zP)%SsFkhmDNBa-hH!&+ zD&YoC3GqpdcnFsO!OBx3I<8D(?X6!$kNMrWN8D`IPp2deBcnf?!Q4)j&j2gWvetuJ zS$U+|l#MHTH=&2IXW5*2>7Qf4j)oKo(7R|RF`Wd`V4j!wQTF?m8-J1q_S2Bw9msw~ z-ROb`h6rs+zQw{-tK(x=&OP(|v;+aYmNU+K-}%#zvcV9OaV`I~`A_$k@ZaF019cSr z8caSfj%Wt$o4FvJ*z_(#Kj*^X8&k=SWuf($i8n?kbu{hC-uB~>@_AhM^e{w8+e?JO zvi-+`fdA7$uqT)8L>{pN?CjHeEAmLWm+dr=WtD3{y3XEF>{Ox27Lj?dFp8DRb>FBG z0I2)y5N5t1go3MN!4gx28EDGIby)MpNO?w^Adl&2+~aH`Ap>4{lq-i6m4~@TT%YIK zk{z)8pBiH;u=zB(J=5-{iiaH}9u~9?=;UxH1{E9IhZlN`mLiDpmv*x~EE&+kbaFD) z;XLFdAkr}S9wU#SD!;lGyD0S$-0!qI=k)H1Sh^CD#A@S%jLFOlGi zeHbIRw>-T(6vXDfBHSVluFS`Z9GRF){S5RfGIKJZ_j%5GP4-!V z$Qm~g+lDIV59P5ix+wB1^E}&UU>eDb?eGrdCDIiWe&aF0*gR0wa8kSY7zwT3&^7CW zyX(4|-z|Ga7eR5`Z1E~CH_sMRT;4TXT*c+C+2U$0cgPG$%N?`Dt1Hsahg|Y&zC>5^ zDNqvYYK87!r9XP+4n!PVVK2mZKE-!k^0Xg#0R9?ZWhX?Dzgk7&a#0Hu%o)RKGmqJ( zsXY+Wd9k}YKJ(~qK0f=6um8i}{K>DLePrk3jb*FHyW_;x+edO8(w6UnAnGJy7liiH zpfA~cAVt#EOqxVA9oh}p-Z}=y(ZbGrTvcgO>g3b;^eUSm=oA(SUSPKWvbDoE508|` z#%HNEttB7q-S>MAYYXULaN|GAeobN>ye*8_Q{1Z4gjrNi53_NQ2kgvdRWSQe!#B5g z6OBJtY}cKf?Y<@qqt``ygBR%(5=74Fl+WANNygWh4ZXUDN1xgHI@sdc ziWO-9z3}3hL(cdna|~C^k(LJ^6*k2kvfZAvU#KO4J@Ct|V2>vM*;)73x~~~lgw1OP z9DacHWI8+^*vaXWuGgk6vX6W8k*w1?|>^o!OC; z2WGKL5jkSYo76}uVMRlT-ts12kW0&VBNJQ+BLnglzq?zRQX!s`gQEIWRC|p`&wjvW zudRQ;RIhQ4l39}awkTB-BHty~fmWtPNN4-)_i|^q6-H0RIe<%0vvJ%Lm@||{f z9d~!x-5a>O!|txY@j7k~`z;1*`Ly4D7q?1vc%#~E zRbaodAMC@+K@s<$pwNUG3QB!dLm^hY;A^PYWH6SJVmP#d5HP^yBaTEM?m+F znN+i%7uj8Z5 zA)4bmd#!(G{vEy6sSV3D%D1gno7S~LQpnfmN;w^BgZ{{r4DaUoM*lf7gOBnws-$ACUeI+tx>vZK)OF4E$#c5mvOf{7$GJ)eUKr5z z#%P~iiP_>hBei6SO6RK|dNB9s_Vf&2*;`J-J*ImKEvY8Gf7mrW)hbO-+MP|cD25cl zxy)u0W#W0hReC;b=B-tfI9D>?3gAaj;s-Q&R8zvmYIUyY*ZXVtN>4>J%Y{h(*Y9ET2oXiC0|de^iAAK?s1Dg zU(T!3Tq46t??I}mf(d+&tznMf%l#Z31IqY z2ZWDSOch(U6aypu5)S+mEed(HLYow+YqS5PIaQu;E0`_lr}dN`ouHrU+4HuhgIWWA zj1Mryhngz@X3QgA5x|_wz%HjQ;o;1BjnkFRMZ$V8^zJt4_R5#{YF%!U!jHCyIm2ZL`^-QwP0dK;sWQrb+;mUIyxzGp zGaCmCusx{vauf#$W#s!Z%G8e|01ZQRBNDfPw>#b2$yk=r8>1+n@x-o3;d)==f{ZvQ;z?cMZEtLOGjDD-^XAY@e|Pa_ zR>PK*MmC_%wX(l>3{VSvJ*bG6Bt-xQZnwJk0UYydkQRvs56!!7rW+i3gcj?Sn6ipm zT5B5}VWfhSi3teqcXskv)a>C)Yq1ML_|o_RqZe1^SPQ_ZZIeFYZA*HFy_Q6h(>uE9 zP;PV)Dq%W;Wz9MKCbpSY{7Seqh@4KI9PXhI2yjF!1naSdoARp~zfjN{zwoU!egVIc zS?6A+GFZYzaBVqEsC&aw-=HL9HOU{KBoP&s)Vyp4=I33y;<%gRib(A^BOU9=6IdQa zM&c!<;^(Pq4ZnljG1f*Csn`ccQwvS779lUU3^Rch%mSQF<_4S*7ibDc#{f37_=44x z7%M}~?;F*5&$4)V#9B^suxg^>EmcTssA}udSq`97{4!RryQ0Qn@*rsQd+HFuAhLJm^*5 zkh#_k2DHSO5!UE1eZx0t<8upvIQzxke2lmWE}L7&P$8z7Dfzls&nu~1QhGGa;PK$9 zY3IIj8;5G@*O|8G9eug&{awux=7Ze~k54rEDF1FV ziGx?GGS!O`_yRU)qIe6EfmM7~#-RF(XPiI3yJq`8*^Qn+=yk#jU#T8!B$o zb?;DdyTsP~kS2W7#<2u-3aW|Jpq`t1p!a~$u_dCO$xZ&64FGzmM9$Um3-he*$lrW1 zo>fOXo2)KDOZsRae_SYLnd3YuWOZXWn?;V*Y>rk;=HeQjgC;Yq@0Wp)A_3SXApual zhRegVg)Hs&&K5G#@18AWmmepd@81YYtT9|B2EeJuxR>+5+f)Qe!&WAn9^N(+5#bNz zT$#U(RRy_WAWUsDfJ`qd=RP3A!_{9J0moNTag*+FhW3*s0=tvb6VZRRSV@INlQK^( zn@$ed)2Ej`J#0^p^gXrO{=syVw`ONtSFr_>|6(oNp5N9Gf4AmuZ2Y>G9KPeY1}uF}@oFt|0?Tn@^8D2- z&;e3(FF+d9=y3<>;46W2MJIDUL1s$uP~-AWk}Ag>hdLICCE2Ugk5()A{v)B)>s_taI7N zgq@-Q46ork2yHvgmXGTp2~nnTrNhaSYJUjL94{b3d*gifj^$3y>3lndiiFvqD*{G0 zG9B*Oj(ba4^)i}a)hnXR7AJ0zvXL|0G)L&xe0q0R(*n($Yn7m=RtX}^q9`xiNr`)K z2uJ8mMg-;{lWi+ssrkrI2wY{7Yjn{4Ybv0FY0Sk|=~Va?I+~bv=EdXPBCH~8Z7|T| z2COaaCZ#WFUk{3_r6w2oR$FxlZqhBR1@bh>uQoR+u1F=*v7KP6xJj=zH>uf0n)pm* z)%?|S+!;BbIYxN+%!@a0jD(b@!x^v}4wMVZp zLI5nmi~1e;cYs;^- zF=5SO3`tac#MVNV#yFyhHh!heux2Gnp~08T{SnKL7Y19Qxx=epS!35@WUzsLG!7`G<&@8zU_}*$XFH z&S0>Y*U@Ke%aJ!E$3|yvctT)b8r{W;A~y#|ceCP>eJJ0mUkjrhF%{tZcTmIhZYwqM zq21kSFJl$lsS57o)if3GDt~+R^3L5f!^dy8m-bzLNA;4X->xs;Zr|l}bUF`B@9f^W zTi;F3OfVE)sAtoBs#~hzo|4m$0Jl6t61OP4aelcR-kQHo&}y50LgZd?RhZ=PAee-` z!>dQaPM=f4PFE6Ep?}jZUpdJyEHrhmX7++oXva1_=21Qs0=WjOr6!g>rX@qCAMZ{F z8G1*4$0{qa7;u>KXf0Qn=e%X<=-P-WEmJ@ZI6tyahziOvR?uR0TM;$W^J=&#g|2av z@%FWPC6!??aL#LkS7Wevt-KnqUFOvw#7TmA&<*(4GLk{luzgm7TdQaVSOy;rz8=pE z$wch6w_Wv@kaGX&aK6recxBL-dVR>Ol$1J`5W|P?hD9_?%Tz; zZvcRLG;fdI;i|R!k#qkgHa<2YY&JtFWR0I3fk9u3e_vOm#dEsexjj9uD?;FDUGIS5 zb)~fhd|aC5B}HqgYIa!@TQ;fN;>;lZt+1hhMZsG}e$oK8oTSRjOAXR(+{z25mYSq8 zImIV~VR3evN?s5B@yYA*S7kpH)D;sHS0f=S?&#jRI)4-~aNNRwSEWG%u?`bdcJVwy zRSh1wx>}5#3X8GMA_**lMPV#c@d#wPf=BxF42=>um;5+zWZKt?N7o@CntH}nFo(dK z51F3Pay=s^?sB!|*dfz1>kSK&G7XUXHMT>lybE}uGnCmYF-w2&G+*%nZOzpjmnk1WM)jB{hhAn z0y#*QY|ZOWvih$pE^YI%EsS&i?V#B6Dn(*$kx1Jzn_mqjN~D!ig8KG?($-l26ZmVI z^V>9G7No_~RjxReR{nAcc_RD>DyP4!Uwiee+9)kz7GxA=+8Y7^jg4Ps?d7s6a+wph z*CjVo;ebuD#eux3C%sw@fmh457w26KrYrrrh&32;e(CK5`|eZ!jcky2e>Yui+Ii5gFu%!tNR z@&B{;KEQU=*?s5j?)(3~_jD0rtQl#>eVYf8W&|Ve2&7?HTdg895QsyiC>N=s%2Tyd zW$H>wEil|Nfo-=XcKeAt;(+YNIea1zAeGgfP3) zf)zgUQyLUKzL*s^XjFWBKC_)q{0ek~+r%*zADmdbkQdLKbbCF3>uxU}PqFQZ#aN!? zDp%f%T(9J+M{q@cG<>8D!dc4~xk||IGYIa<_t`lyGL~Nj^<~iUaaDCs7wnT_ra-Z!J1)0fd0 z&Ec(Cw_)LCB;uQR{s?0=oBP6{NjuhuCRqor#La{z?LZB*IiyXSTL(DIlZ9!txk)Uj z;*8A1B61$C8l|4!VuI-*ohhwTx8!PaK=J`7O2*+dje9JxH3jCHOtes2zP_RG6cd?m zWQr2v7B*4CzGdvdWrsL=RE}Z3;ed6TVsG5jYYaIi6Cnu^y|6_Q=RPK|Eu^c^CHP0u!(kV z6pm#m&OYQl`4s{*pAO5t8la3vjAuJM%MYKc9{FtZ5p$HV0m7OGLV5V!GX339^zF&S_i&h4|B!Nt%>fPgJR8Q36J|l!%`uE$?UA1%sVS{AzY5)k z3<(^6dSU-z)PtK>%Ke{TVYzk0J40g63eYM}Lw@)Da^UJAi!#zmGs6zHXfG zS&j4d7!5U4iUB)mjBjmfd@qObJ!L3+d|0Gmlvondy{AX{^pI6xXvc?GTwxXUUH6rO zl!j62#ZxT}6Hhvye4y!^fu3slNO>*zxf)rjw6kl5f}LSDC2z_8bq$ZSvpZA>JU$`?ly^P)>U*zs>y% z*#FmJJ4sY1P?+(EgA7z`NnfIS7ABNTu2RKEdU+_n?Xlvv;9vOm{M+aH7p@}68U6Jm zYM(dJr34`+uRL%jfWH1w%{IR(>;ah?ZdnizGBSS$zMP@$Zv3Rym~+Cl%rO_M>pKo6 z*KC}4Gj$EFkP3FhUQ=;{DhyK)?3PbOb7%ZhriU{&AXobgeX!KPu$^Q$9Bu4XH~`XF zwRzj_Th(oL4&=R%(r!##%7f}9YA)poITd}oTjem{&^_r`Yq}q6B&jpd1T{lBJwg*l zn0-}Ni0MGWMe9#v3G;z7lE|q)JHwr=?z)!R=dNp3Mb-7`Sohp*t$XUj0}}9Q`LM=6 zt;JCMtO>i6Z4b27y>!}=;!x2RJE)PicGR@h&UZ|^?Tog%mqJ?#%7M1F8*OzPwAFLk zf=oXu0SEQ^{%TEI_yWMC{tRug>j4Jk_1X%bSUlkt@Qoy^6W=icT9- zJR`4vO{-4DOqaqyAJgzG28JMAqK2$ofNRyEEMQK)-E-x1w7117QU%Fk6}uruOQDQa%?MI;GY8rJSr7U`*=oXG?N{$ya)fi3SRN9w2oD&eOVQ2EL7PYI}eG>HL~AmO)I zbQwDla)-ahHoBY@XLQ|heR^8g{UpfSl?5SmRv%}>FWK?8C-P6q>A|UOi`qL@TvTFs zJ5;!XCFzRCoLcl63gM$}tu0zSY{&TbC1c4@!N4{~wmleNligd`7n76CxAa&TsP-sq zcD2Vbu=h-BC4MLa-8sFnfHw^yF3&S@emt)Z4%KYpg(6cCF{WF-9v&5veu8iQn62wq z7jTET)m=r;oi+*m>Xd{gtk~|Jow@sl-F`_wWic^TR;8e1_CVP? z%*XyMVD*~Y%I*+)dT0(H5B&w$s~9};OikaFS5a=6#@%Zf0mHGt9_>^kX|9_qX|9`e zW~GdxEH4?6W)LU0P`oCN$jK0*lOkhjtaQy2mPMS)Mx58?*W#NfFJCDiytl|!s`Vrt z^AOUos)oFeMJ)E^H<-a10P;t!NwH<0LGeMGL`Y+TqXuR!!Xky;O|)jJfX`w1B;IYF zc-hp{Q%MkYOV8puh9rrkRygx9J!Fbo<$WHCzn#rO${bWn-X9K0Z7XIDpEDG^a28Jc zui-;eKd*N!Il=dcXcKi8XcfxkwG9$BUTp`ZJ!~v+NyA{|8`c01QDOHYo0k9 zdDXtDDR`1Lj~W8*4CpdN=)~MLj1(#cXrDvISJ-v zIgG-tZF%xv=v%CUY3yXm?R5IjXm*a<>5T4IZYTLpNG<`*@CblFV|=$Jw{ej3!B?|d zsy-Q!R|=mXL?U0;X$fTfcCYBlVk^NY#?gChiSRqd(UVny$P)6OL7Hh0NHyNX z=vkb!d`Xdjhyp|cYpZxpzW;^rOd?izwobq~pQ><88;p{MAt4lp@H%|Mvktzguu_F@ zlnaAe#j$f8!cb`KsZSsAt?i3g42;2?%~trSiE&k_UCr0|&XQc4mR7)xme7#Y>bytg z298>(cP%K3z-dq92XR;IRf|cv2q4;JNGxj4Ya^RN235D{K%?k6Fd0e&CPPQ;;qNzS z+L;b8rU|j{wd^y@6r4^iDH+$QGN?qOA1q)W%*(%rEyh2U{VfAZUw&9$_^4xIfc!UW zw8aO>c>X->jR$P>wlVFfS0$2=%k7!KOP+D83=DRHa+c;9u6WjMcb$*d>mz|QH+t%c zW`@wy8tNktsI-9|U}t7O>E>7Qe*spd?0;vIj{>1a-p5rDSFgf1kdS%6m2IV6x<1AJ zwyuvSlaJ~85Y{G_2l3}~`5YEBm%GUJrFz+7&EPPpt3?B9eA-)~fI`@z;k?f`QI zX#ZwP=S&+q=LD93&UuxsAzNt*S2-zqgTJ5970A7)E0nB&RLMtU{uYr6E1gRE5sO#q zB)&XO?2z913^W^}7Ks#NNIG2(m^SGT2f?&nkOIvnl>*19>VsXfclKEilsv)To}|OL9GLI52r2-&LMk|ARlfm{o!ShD|Rwp>Hpi8#x6vQHRD}V*?Syno`Gi~8B zepu%&&a&2EbC4>)6wB(!xd}=I>)5JWuzDRG!C*jUskD`dDg%F=LivEu)+*&fBja?v zF1ENsuwcNUHKeTNXM;UPF~@PYggtO%>-cACrbyYn#)%IVQw$ggs$WmbHcxddywpBC zcgOWQM8vq>o)epc(VdM4_L?V+(&0j7)yYymd)fvASr!=}O0fR0lpF2t^AHU5O1gr? zR>eSZF}*Dsp_6mcQ3C@N4LjSd8R!~$=BDe6oPpwq=S>*vXp+D{F>j55Mpo2>0oXAok6-&OLHZ$g`$GT?L2QHodQ%rx@GP*kPiH?0L$E#!E$y$o1Gwu>*3T< zKsbw$Z>{ zrp{pn(@gy%7sJ%aXfUQu;ZS4hDje8g>UEm-9EXEhPjuVl@8I6YHgY>q85t6z;+h*e zIM3jK7eiukaB~@agSiKT?qk7$z{I+9~3zl z*fExiEuPyJJ!7gd14OBzH7-l!autFqMaM4*x+RxO63gg{1y`?fB zLF2~5<*#uLsNA`SY+Gelp2@Eps#LggwJ&`MyGyE~w&3&Ka1&h#Ua@3HZJdg$Se9ec zA32As9J3emUCvdWCPmjqwtFM4GANH*RqjjXDsgb2Ipdm98>hI64QY4aDol*BN!1># z5~)K~!D*gym!XhY%I)?E0uDtAC1-B7d#XOEx)jJTR24BqeVXveBEcp*osd<+LXq)Q zuLzZ#%-}>QlI$eck!wP%abLb`Nh>)EGBlI z>NHta2Ti^`QMt~ZSXL+4$=3#!)tOu?mUZnsmi1(VWu;GuWxgw zs%>p7te|td#(1rSb5tL%rIex9CNlN0$;+;tad8Iq5rxD%jCC`II|=ne7I7s&+<4j9 z5GZ~wgZW-NvBPB`k*GeVQ^rfju<+ffkG5Hk`uN7QwkcPOZOKfzIx#oq@G?*5_pNKh ztehMe46rZ9LNPMO!YYp+`#YrkW9V2Vg`Q)f%sPGA$z8|7Ygj7Tw_xEiHyc=}yI|oq zZRraO^&KqS9YWwJ7ZwFM}0+ zV@oSs-?sawqVhMNkq zP;5>C3b10;m!j(xusAF&{e_U>PG>@zDz1jw(k-hm|zGfxfFwrJDe?27a17tYI z)@b{_SXEh*#PkK@(TQFWqcWTCxsQeWNtBQ9jYopPn zepH9g43WEBpBr*$#jlFwtV0{j+DM%d#He7xd~eL#0@di2$PXkip8GZPJ@B1!WFdrI zcyHc|)%8{AyoPwFLgzfz*Uu5|t*jp8$H)InD=^B*5sVv4Dp%1kWFf}7v|LG5K6<9s zKA+4xexFQbg4vjuE+E6|iJncI<)dtygT3Int3&!C@#4D#UfY&ZtDSXO-wDFN<(D)`=yn z$R-ns!PlT>+Gt0Tk?tCc<%cNM*r#WeXxw2l{wggtOEe1g?f4C$yPAYVucjk`jnc@W zMB~*pBJv1?$*vbj&xqKz?hvw|5{=tbqLDOeet|@`If-!VYIe$M#lX5K8V%B$nyeoQ z)f6`*4ps{l-@F?5|DVz7O|4?SgWQmuIWX6N{5p%oETat@1@a7IF2z}QMp<-cfsk}( zx*bx`iZ*I#RT8=GP_PP1XyB#oibYH>h~+;zpz~0)QQ41g{ifmyUVap)K=gsJO|{Aw z4Y?vs$yvT14;@1m+%SH&+BXCi$&Y{Tu>fasN5rgLyTQl3LMPhoif&i9IZ}g}9tDBC zohPiFkB)ynwn4c&B?Gx==qlTFS0xh!lP4|ORKEXIo4uUGi6pR{8+8?_Qloxjp^%ST zD2k@E;8k1Y_CCxm(jy{q4D7!pJ%C-(>(j&LYc>C!Sr=7l$JM^aYBM|E{^?VCjwYYz zv%Srg5nsuGTXPR#aSlvqcMS3=sQZEEN8i2f$@~oQf^s1W0n&5pa>R3;PJ${sDe^1j zhE~oJA2OmSQ011*HOyXW*ivL;Vkpsx!o0Io(LyYQ2foF z+})y1-TAAl`5_d9s;J}~i1xt;ip(pa=`;zNaaGQ40kp&+B^QUn9GC?Lrx!A@6B{IT zLh_pO6d(eLZQokr=@c_E+^c;2Di7&~r7A>5laf_>nN4=o0}IFGE8+!C2HDRO17^+WW%&m-MtW%~ZK0D9F)Jf)02!79OlxOY0%|7!?%b z<58IfA7iSKA-i{hu}*Z5RvaYw_R?U=^}-#M$&tz?QE4D(vyZPSn)=_g^fK}Ez$*fn_ zjt5X=pRADU*qgwXHL&ulJsY%4;w1mn_@CDjhGX?qv%D%kvaV?81o}4tD-)Z~S7!$z zC(uAc`H^cb<>WAq&Z>C<3K{ewCyEgGIote@DyS27eE*}iWaqGh>8hV{2I21$HgGsn z#SW~GSb=1!>gUzY4iwfVxrCv2Gw)tp1(Hys(Hon@!y=WX}wa09QjdqBT<77lfF%_0` zE1V@DnB4kR4SnMj=FSEijfPJTKuoa++iEmtil2(%DqN@9`DqNVV*`G#2SGBrQVoH^0V zne{!vV?y=PyMa9;csr{t{FWZ%f8i!Sog?m1+?6`IWpdwlmEZh5<=}An>+I=uAJ8V7 zotUl%ALmGf^FC;GX;NB7%NLs?qEbf@q8}uW|Gj6+Z)-HHcCCgXk5Q-Le2*d8DZBy; zT7d&dSkE7&l__GB$8-ciwxR()p~GoZv_+h2{G0$q1De86@PYVg3$VN+T=7++=nCVP zf2wl5{B>O}O?Y~-w&&Z!Vig~*mP?P_V<#H-zNbiUwFv%tZCJ_S4J~behNEhwuDJ3} zmgPUy!fHMFAK$Nqd1#5U zgX0aQ4J!t8c|i&+J>W!5bXqrO?}!Hv%O9YIn(S|!ZqM@Dee0H?QJbcEvH^X=nbP#;7u;*Fcf zQ1GJh4o9(SnfbIAB}*Tt0kj{5U6R&1{;BHM+rzK7gPgoEp}Mc9M1UhPiUo8GFd;|SX`~~q4VAM{2VDTFkc)S5SS8} zTPQ$yl7$`I;JO#jhpN6RshPof)7SuCZy*|_;ZwnBww}FiUKxOc>j^xGH z9Wli?5D*NJpoUrW3i5#;$1_-qvd4mQe6uYm9R>ofzNEu?J^z_}bYgIf6 zf)`f2f#9v#wQ)&C(`Mj~TrWlB5-Dc~pmfX^qvM}5X5P_JsY)~FjFF!8pp#o!vkF^T z!`mIv_;i~+i@=)nXpG5+#$F7KDMe1L5oPGjfvLQPNDJV&QSy z&ab}LyyN@=MH(7If=crM=I(jH%$~h?P2T-WppKwE8N1m?dop&jPI)q(ZoFuFg$T~m z0nM^_Q6Qb|m=}s^`mm9XTXn!sYV!mPV(-c92|nB%H}iQCm}8Wp0+_NjNpj@5LgdIj zar0E}1=Fk9;<|j z(9bGGsK&0apBulYgkWm8)FhE%u)C#*51N(P8V1st9f-F~i5xxO-JoM)JN0vKqmH}f zKpp@HnWy^fq}yDwYgz-|NU-zhrFTDS8%KrTH@UhT;s>b5dT{#}@}-CJt6$(C5vsSy ziL*5XcVb|Vv6hyuPq%P+@s|x_xN}g`wErI2m-fSVRnToMTtUlBzf1`egj_d0wB=^9 z@b-wFZY~~R6WUI#kTBl&#}@dN&{j6t7gpROv>=Hl47UM2b4deYD}UX99-kc$yUmw2 zprI5rR_!~`0UB7Lb~q_gSn;;X9jHFR`LKe5wG%2bsI6zq>;W8DR+$`!+zl<|mXw@U zzuM>LNv!liV4f|)Sw}j9N*bW@s6$2P0+iviI2+%9Mdci{1+g%63u6c@*u$9wt#ylI zu}2#&(22!;X$7&h#RxHMo*|)4*%{csk;Rxz1$|CP@Y9vw)*8Q^2=`v(DrU!D_6f#+ zUsDn*Je$d(j<3?4X}ZOxLH5FT5dDMY|Lh@Y8j*FyU-RCrFfaHF@ir_X@2pYgM%NP- zq~?1hrHd= zsb3P!Eq;w@PG09r8qmUgno~QMLURj|<|4KrwGgDSb_@hD%c~y~* z+DOHqvi(%)INA8WH^k8mggw5x>5B6g3Dpm?`u^CJ zxZR~J;!j;nS0JnV4h65OE4hy@rK=yln6AJdoTt8k<^S0lAJfD5z(kR-s0K{=N19#x~+$LpaF{W35~7vRJt4Ax9U%fvrCzgzAx*~&iG`ms3JCeYet+NsDjGC_Bxs{ z<18}bpkvgaIbHCS{tq^!ndgc&8pc_aug2qzRugu=^0rQ8qa2w%N35kZ=y~l;Jy*BK z27L&Nq}&sSI31**4vuY|Up5(T&{S7lQnzYmXq1F#GzMRu45k{0N4wz|4xyDe)0siP zaXMQ{$SC`%#DDV4(SOa<3qm+rz=!*%u-w7z>iZhsNtUU;pW*vbUO$gnTWrdE)$g+W z$2n^n+B?Vh%NozG68pM2XD!3;NBMqvZsnY;|EKuAB|a~_Ay#@nLu06ZE*)Ke7XLSw z)x@vI!*z|Trtln1T#+j@z`q~o`v-E>0Auki=g5BWK=GDloG*lUgO;3r`C|2LKWG@g zsA}+M_hox>-exc;rnl!U;^a9{ITX#@g6X<{F8;bexy&;UyL&zpQ$UCCN8e z-&m0R^6DFN$*-usF_ZiQ)i;*PP7SY`U!(bBz6fK_j!GfGVEm8%Z3<~75BDNz=7)+b zQYHrD!$td9^Nj_o9yIlWZ*$TYL1;=R!Ej^xVvnkUWF25u!qARdL_jF`mL9MTJF#^_ zFL|$~FdIfP}T%$lyYT+Eg zlLoWimEy!`exSi@Wu>}$6OB(WE(69cf%S8{v3D{rN;ceoHUCvHXoF+^v|j=Ufz zos3?@;~AufzT|OT|H)#n&$_lBNgvkwCUJe&S{3U{57hs}Ll+9tvWWLd(KqzHUD%!y z-auJ(T@}it_S!9!;VY8|V!8xMBoob4oUdHsCfehlW0T{UpqdI_viq5C+50@h|E>ot zNUOH_-;57mz~7`y%iJ%S_GHxO7~1)IXJ^9 z^QnV+SRG1ycHfrR#d`>fd@Ed7XJfvj8e^x#<_rYw~)x1@H00Qw&{ zi>WR&M?~(T$(2H6G*iNBG8FywC!356Cu6;uXZRAAx zip??h_;L`vonO8(;g1G*Ic0_0oLn{Uo!f9@}YBiy+a1Y#H9mO`<>31AyE>$o)sYhc6hbOFD7SKXb!b;^ut#7zh`9a69vi`W_;42$JM z0&~lk{(Mb_*#Za+gV|zpC{OBUoW^XDJEyB$n&9m=c)Xd1E>k8zh)3+t zAnww=1&5qi2XM)m;CUyjvOi%*dy>#%lAEtxoRxbV6P>r`1<(&85~Eo=5+kGR$qI>8 zWUEOmj>PcUB<~+We)JE04{r!=_*-*Ccc0m798e~h%`uJ$Q?RCxcmTcI9#^mXOhy%m zVXV}sfaG|c4`hfeF$1VU$VywNUf@07624tebM&kWiF1_F5sr!_^S&b|T(r8=2N?9A zF>uxvKnTH;e$VL3Mje5J$Z@Ko5qjmA2b)B{ngk^)>Q-{y*OTUvrAz}p_CdbDzs@a1 z7xAeW6(37s+q1E%GKlPq9lFt|7a&m7J~{OsRQ!A@wI;~={^$pWoi>81+Z0xBrIoPC z6I>R=<|L(fH|m$9HhD~<2~hu_?uw-=*RYeq$Nf2luO<*bk4j|%f8i12;3-%Eb?+&R z>yW3HmQPWS5oXbj>3Xz6r+4bl=j0`^Cp<4xeXAoai#SZVYEjhB;w0ud-yx+Nd?uz; zR-Nd)tGa`d^PPDe+S~%7l}{>?hbs!2q+IzT^{E-T>Mr`wblide19R*qveGhT)#vfF z!1U!mD;awI)lZdAkikRqCwUUr zW75c!Wnnmku9=rffN3&;A@Kv56AU3K7A;wj(kV&4_^f_8#y)SAEI5KQRyMKx1qk;i za0RyjAZ(E0lK>?~;I9V=OXL9Y8g#5CXy&j2D92`iLeL=V;fcc9zdj>bBiXl>IAH#IXuB&fqtDS@`pp)il{)HVq7zoGSfKy2w2AYFJCT~xoL zVYBI^xlQoFLQOpK*F(DTYZ+#ym*(*<}SzrIn~P<2Lrax!eq=<+4`>g^)_Dhu9R!6{gr4|IXud3P`{h)4H!|Q3fr~u4!$D z-|^xWDFNvLVYNAmbjeBCZs|gk3v4=dki!z-2X0=p^d$SGWh2v1MVB87iX+^{TPd=T zyhrit?lrBX{I+|MVQKlz_nIM*mfs1wf>qu7^TB=o*g#)+Hs#s-?4TK{`zf%L!TY?Uih!xY}YQh{!9oWm~u|7j^`n=jkR+^~_ttWx^ zhz*GZB)F4%Z)k1zCbgijjE@MVft2nW+_vNh6fsfWJ4}~QIL6ua>E|@GtpHw>$N1r!a+xna_O4I#`b(-uBlNM>fU~X5YXN zB`!PeTs(#h0Sp*|)a8R=h#|!=z~0cM!jPdoWf(F<%2pT>pK=TtOkoJG2uH*=fE+qL zKznz%;>`%m0{-0>4}6ADgP)yW1wf^NmhUF%#)(1LpmGU%8sG=LDH7D zK`CHH1G^v_0M-D))0Vg?ObI16IxIK=dRYv-#g>lPgZSg=lW?Z-|D(GomYEp2w1M&O zJ??krKKFl&+BiHOlCvXtc~3Wap>aRJc+L1#`M7;5QqZ(jqiQEbS^K3(*-F(oue>cUS_J*;8Mk4z6At9wu{EC8+cJxG^N3-VadFs7Nw3T7Sxuseus??%LXo(f7a^{^i zmN0m`Y$nFicY+@X)MYN%z`2Nr@!41sr9FCYL*uidW0Y9wN-D_bmFFa z|MA}&{Ounc9{AEtE&K2Iw|(iyic$FT)-Qh!%F)Alb*ucZxRsB78t)0*IK5v<2h4D2 zi4oFC=(ka-QNZ`QBtx;ec38@8?KtG|?-e$NrDU2&#=X9Nd$^!b?6xkjD9XV-oKAqh zV_UHx*4_e12F!6m+xn<+LmX%TSmY39PY4l<3n+Y!t2qaqx`h3#s_ZFd_!CUjzw+ z$jVB_zitaRWcmBngWWa{EYmZKLgUw5aM14Fm+edvBG?`ZTW+uVl zZsc;*_Zu0VoID47c25{|e%l$OVV{9uKiHQ(ARR^7SNmZ{;~$9V)8e;BdEr4BV$Ada zNC+#}g!#7L^oH^yiZtf#w>h(vcbq{ab_3NUcC8(KV0x?~U$ zqgUIRoZ4yBcE=6(z%?z56RkxGsTsos5XnUR%K0PCH8fDEOOccMlgdN0GsXpM5fsBo z_pteI|;bx7R{In+5YX(Y7AXscNcODTJ4ZLu^YH0&ghO z0k;O_NgHt#b0;4cQiZ%zD6A!{6Y?1lz$e!{y#56W!Lm@eHTtC)tZL{DS~CE_+A6Nw z?GHPcBxKgPRs8T#_~;;+@j#Y=1;=(*pm^BhaEH| zwsl2_qqW4t?D1GnbOW-8(F6Vk&0CQttjzcyi9JDQ3iboj2K20NLQXo6kSrLK#CG4G zmAh!g+vv-KfB&I^H4NKnL#be@rsCgafY|^-=W;n9EAc`;#}I5@pVeRjM8u%cSC1d36|fe|uiRv1y01~)=lxe-7M zxhG)%Qb|1Vkycm;5TX>8`ankCm!;_=?T3M6+kljs7E0r(aZY$XmW+fS`(g3CmA2`S zuy&ccr>*=%pjo{qG?L<<8j7pYW-x*F*u5H)f)6Ha@`h-FqCXR5F#Tk~?*B}f0)||( zWppz^ybhU&VG6jGW0(R)WJ>|VcX46M_6{zBFA3YX=9iy0v?bvF?zrP6E$~VGuWcv z!;H@4GLbs^;dV$9@m!rp-YTDhWgD7-eR_w^$Ir;`CKF4Y4H-sB#%b=>2M0W-w$J9 z@;rP7bSqE8a(L2v*Z9H!{E=7m$jko7?KVIjxubr>*0>rTsP%^JW2W#NUgTG9ggrc2 zzvG|Oa#M>c1y)h?e5uW*hwspL0t@kUY8K3B*oZ?USjfJFL#uqs>~=KS%{oI4czP%|F7XSWw= z!%trR$i#yx5}Pp>4!SKyLJSERwqBV~&w^ZLC*-^6-8dm?-7ujAKM4mFUlUs7)#ivF zyU>KXIj_hm4{0_gwCDwuDGM<>p+yS(1lMg>Rmr-Kq0@}S9Y-b~2Z+Kwhs%8{ zLu|TWCggG5+jhJX>w-!910&X~ORPc%HSdRXh(_<-+BqGMOlD;-cbt zEHos*ZE~5!rf_qzD2>t3Zi&dWUQSv08e54wBS<4f3CPbAzOy;!A)3hY&C*jg3v(41 zgvz4BrgybavSU!yBafMf#kP{G@SO~&gr2N0cYgSeHX!o;`tY4Bgzqp8Ff#_GnU;ls zX@u`6q=w0C#)~4$R2!i3FWyA(PQv)HXV9#6w%m(>q{49Go1%8)X6N!358i>66uSeZ zI4xb~BqVLvB6n>37a6&8)7K<$=Z~bHbRW)9;c+D5z{L?O9AV+OaieTW8H=*C&>wWa zWR(wLJ>bE}Q{qW+1>-Q`Ayin;15K`DQF}5QRGKF5%BP9*ZsilKDbc9+zwm{;_qf<{ zncinn9q^dyp>LUfNG3gI)gD_#!cq6%`+{@?v?Q8m2-@thC$M$VI1u**QWn9Eih-7Z z2p;M)y2J2DF?y(2$VU>!Zr&{*jHMij-%00?=79u9^DsT5Z)z4+Ag!XL32Nw1lnpRz zCU4`vB)(9qqNUK`JgKHicT|YA5im)O3YAA=m<&NX>UXmk7T;Nn&_mExP<$9C^kIWU z*Fag;AbFdo*Nga$QsdSUm3U{g>Pty=IvKV>?skIdI#%wolAjtYnu6jOsP2g^9v z(h6*hs)Af9$aNfY$c@y1mo|Wx3V5l2jGNS-0~{+Wf?wmgFq%EOVq)JodVX_HhHr}D zlyPlGZ}42*M+V;3A}b$WSxQ@pIpvql>N6v;AA-7B+dW!f&{xsMEQ1Q=bUd8aoP412 zPC*8Pk3R%;{MqBkXUsW%SjL0grS2n{<~rzu)oeOfMuT^+e7FtT^0%S4eWm={nkgWXAVrKvn1K+v9(OwfYe zWk|4Zr){efDK9lXfIjlwa_JYNhz|~QENXy0HlWW3Ig#`1hbb>%Qve)s{;k%fL0eAm z3fin(J3yO4h7sC*;O4msqX=y#z7E;}dJWkM9wdq{*E(!c)045SgO*csuBJY&2?e$w zHfe;i=!DX1E=-%uo9?s40&H!grIB0qGA$x=Y0gVelXm zAV5KGTQxI=@u;=hzb7)Fqz$=IMhCcJie&sBAB9z+=@6s1$b#q><*-<*T-{sFEhs(E zQM?uDNF(6a<_JiTV?V3%E7D)i%XD z0=UUf(2VU7b^}pZ0#0c~wJd!FsfIPfaT_-s;>vQXv9cB&%B`(JNQVqHtGjAqMAhzm zlkV9_w78^VAlCR0$|DkR{7KO^om-xD@doh^Dz*3P>>oi+AD3 zUn4>-(IpchyE-))vczL-%R@wzh!oGytJV|Z24u+YM8&JdOv-qbVrl6E@w%FXU5++4 z%AMa`z|}gM2Z0E)MD6&KAYlOZ_+Egz!Gn~-%c!qvMHn1c3_^Wu0tLI`5EB*|BG{(@ zMOCFmQ}mMT(YKBf!7WQ;1tKF)Y(;GtdD1JmKXT{kBmo-&%c}VSy*O7fGzViNqku58 z`kROq$KbM_ZH?Yf1Vg=iKM|}U&)!c23rzU^M6jK?<&M3d2zCKa5+W8+vEGxEyq^g6 zo+pC+YPXk~c`wsmnafxR<~B;vt*3(xx+Q9}rAEf!D+@HRxTu*xgPfRqsqD6)ibFa? z8#F9E3s?AFL?%i(D&aDkYfqW9cuIQnbtkm&3Az_90X8RjC7&!ZRx3jt6e+@GOp)3o z^S&qZzPF)y-;3rwjpRMoPgG+UYeq$N$Ds^HDr;uUZahp3?IUeiGj#A!-g~U*xp~iQ zH|3jV6(9YE18E73wOCT~7DW-P8M!#nTE_p$tr>zegTjFdJZaG&mKI93KDY;f+kKUM zYoo=)=-I`^47jx9uOXJZ8SQ}s0e@blwTuZBMW=ZvL<1yfMksiAfx{;ICXLFHYOrVW zb_fs26}4J0PFWXt!sb~Dy^XC4`DO=m--#O})#{_f+LI0I0_|?DbEC2@Xdct7b}G9y zF>q@_{$$pdkv9wu`ySMOkjYF90ldY+gh)u~sEcMIXo(2mW*DG@;!pHRTP*(RZj1^( zjlMUlXehJz0vScN31Ei1>g{7h^syViU>FZUXf**3wgPU|IruJDIaV4A&hlG~F3<^R zJ`6{f5N39Sgg?-HaYHm;jA%Y&s*8^1M2&Vq^K<0m6-(tYJGjIG#z502{2TCZU^;y~ zlrKJ3ECxpwYd8nbiCII52G2PQtQ*d%V7UyXJ;sapz&2<~4aAlfgtf2H)3A@p%EC|b z!T3K1n&6w#av(l!yYrqI%Y7O)lR73Vj=n!lVoV3o8*U6^_1l(SS6rcKqq3_T4hB;Y zH!%)M8dsnL(7<-ncE_A|BF3_{?+ZyPuRSS@#cL#cSnQL$>x5*+x zx>M;dA0OYoM0|YguPZ)+fy<77hL(T~Umu9LydDon|1L?`H#i_1-^x4CT5Ehx3pq(3 zW!<$H9hC`5gwNs$N#H>>Yv9(M;U_zoed-sBe&UI{^~BUKUdKveZuS=<=f-~$ymTk{ ze9k^wsE`jf_p;^;aJh&vVJPne*!^>}@<(6V)X`>$(w{Dm8zL_@%3Q(7h>thsU07h4 zsZ@dOFB05nZfc8wRZ`CK;qqfE+K=iVdf{OH1vn7itHH_(Y`T?fO(C`kmvdoo7yBE0 zyAxH2%N?jfTy9t7Fp;UGEpxe9rBVn-lyh%qdH~-qta%^KPAklkbHROxWRkd3O&0A% zi9xe3G!q&omdo!dcwl}qz>F(29siF3Z|^lv5_=n)1ou-5%jxisQ-NF?=hxDlitr zO09;I{piEfpl*(XN`R{g;d?CLvLp`<4oU(5b?1IlW7X65Pd1MjF8j&^5bjEE)|k6K zX6i%LgI19d@2?s)L!~)3q%~|BB}626_8IK>KM3X3!#$JBZ7b66u(h|jB!`>-FE?na z{tgh!3l*<%EnMH1i!Bw(Xk!=j*izmN-QB%n*s`Vk;Nfx-u?6*zcRn|{f-wcCvwS(< z&}0O4R2D(qs^svC!@cRS=ru&;k;3FIkLOzg60nrY+u+iCkUc7(&@IL^aS!YSSQ1d9+%kd+c%n_orR0T! zTOTeu&)U&ColqHTPJ-J97*}FydZ2?3prWI)YY(hl9#^roD#0xse?`clH+V$3czvAF z;N{uY%#$AwG~4+HOy%T4SnfS4qx%6B&x>>MX+T3jRWx*%wflf7lf%0RYo1R-!px(B z64zr&KD5$izC%KRi7gE3n=&Kye2W9V3V!{I!24L@qdH2c!8F8k2GfALq6b#VX`KOd z5}>MhC*%GcLTp?Ba26lrCZG<*#2mDVI81gk#6#rtmUz^dvO2a*zDfOk6GyNyC@~lZ zi&o@w$SN*(TQ(>^!oFz#L-_|QlwrAU_V@-?ofn+NC079~c3} zzFC{BfMA>CTQySpV}o3!z1{l zls1APl&J?JQ}!TjU!St|E&;Hc3+#0#m&=u-%IjhigdM2t5&m#-3+yM?zOjec@{sC| z?X3+IH1M1vozmwoW6-uO;uNPTT&5kK%JN)lZnLpnO!i6j8ys-_C5e;#as-64l^Ih~6B zVV5y2qjLmvR#BI{oj2By6mnN+vDei<9-|4)#SMEAoev5c9nK7K> z3RbaobrTm>_W&0-?tU&Bvf}&9GuRa3Ga5u)1nM^Emq@k zXT_azjWF(xoty|w57d*&O-^^y{1#Yo7#fufc1}HfL@BWvrbTD_fULR(PwrOtj1yYSqsTiC5&$1;)7RFkeZV#F+!ciYU3)VidG0CT1@~qS9m+pZddl8Si7-! zoB@g~gtCT&B-lF09_IUB1Z!aAs2tbR?=0THuZ$F8001D=`4h0=A)U{n4g@86j3rn} z@Q~$zV%rO-qk4v*PR~(Cw!1!|>Zl82tHL)yFILVIAom1h ztMthi>E5&nZrqiVhX|&?92G2+$^j(-iG3f?$iip1!C06`kO{zfS9*t#2f%KZdd#P= zTV8ocYRy$iPc+fkK%e2;v|=)B{wBC4ZQR*ZOf>2S?OE#3A3rKao|bDB6aLa13-C`w z6-ZSEJ8c0{>x_9J^}Jl&RO=gCbDTdr{;GAXq6*_M21y5Siykg$%zZgay0cd5TkmF! z98KioXGnaQ8vjYVr3|t1fPNhRkc1T9FhKPZ8e+K+vJaE;X5F)gZ<~7fra8~vu6Xps z6KX8BF__Cxugo^%$Hpg-;60Ihc_MWQU#L(pVdAF91@jTswW6G$3Fw^K`irCg3gYHh8;6L@UJ7 z>Dfxf;qASIS#Zy+5T4j?>%)*{l%xvAxj#)TELJ)Ur*111^T9HJ$x*iZ+ggG>Q`Gb{ z7`mMqs4{cM|JbxO&M;Y-2!CaZ+53;WzNM0azN2)d>0#wtwZ7$Ai|bM59a)fhmN2P3 zcp$7;0bcS3+R-1fOD~9=uL@h(TVxK`v|eLr7|J<& z`kTVA*X-$Izr{P_@N{`x-^%UfNxS=pbsGj5aHxF6o=}gP`e|$9^=2EIte~zFdK0HR z)b>rhfNmiSf*!)M#nmcbHNT+aM7-%Z&ACCEE%<#LjqH^K(l#GNx#YrEUE;G%F2`KTQpeuk4^n*Q$rf*If7Bt4avp zNmYix@Tn7%EF13!VNp13P~aTI)@av6Ei`{K!r@|i4%MILW-wpbS7x`OHbzH3=f;-@ z&(0j5mAL_!He6QLZh_Mq*P~SwfaVh2Y*RuL?+3o^GJ60&U+*wqb%quu`2!r=phje# zYnR3ZzM?wHO{z)Y)n&s$T8R$Q>eZ)c$(4jNK&NP7#d3-kt^tbuq8?3Y-;Xw-6WX+(?IET%VPLERJ7+jdXF|Cqa_3R!02hk9sX9fA zwZqxBKiUb##gre>6bO3&f*F!1$bZVxaCYo}xvXvOP(l zu7~MzB=l53u#HloMk98&sg6S1+9)GymD99Ud#9tQT;j@eeaC&|r)cq*46*Z^qBVMq zg|A)lZNnMCPoO5igCy8IJCL^s_$zRLC`L){aJ<`W(k)mqQ}bLB^DSo&6;6qK2&ZW2 zv6)k}gbiq{@f0m9SRE==TRk`6x9$|J(YjN#1bPNihgr}n;bKN6I=@KCoBL3Y?G!EB zoiRTT+rGh5$4)uurBo5@8^dC^#j@HKvjWRoY^pOyV%aN{R?{oHxrBqac0vQxWTx1f zNN)NREyHXD8iLt6MN1WTw8!0NX*owJA58j80i0G=a=B`!XeAWqwt}nd=sE}|N^I{L znpW0W$4=2obc)s>BJN-Yak0k+R*ags^>qmBWW|=k0;5P752eRd_|xj~fdG7`=v2D? zy@WoT7zunI{^jXmy0Fv_*OX9tggrd{YG;g}HEHKM_J_SIC$$?~5ye5Y;JK zP_9B*{1mMLgxq5Q*1g{|`bw5~|UJdNiOLshqu>%Pplfe3DBr)Uic z$0A(t7ODp_aKd3cFNc66_cTiJgLt6;b>z?E%qY~w*CeIT5Q*`i1H14ZC?+$ z$TQpZG)RHmeWo8`8-Ayq45BMLr*KkOdnO$UDlrPa^obJA#1h%4PFY4WM@%3O7?k3) z3Jzsv(1pmcr%CD#vLC5Vj9osu1riwEa$iAIi6y;3GEJVV$Q<@*Q~_V<=3JDjLZ*mn zz&F~LGDF0k0!yp`UK3+huX>qKAn`$lY1bh=u9n49>gg)%MYs(_|PIr9srF(&%9c76P@+?)Nayl!<9Ym^^b9^)OUq zlvM*WScq(NylJs;h}tiGbU20fE!={h*uUjIo>%0=1jN+^Di=@Upb_G~T?~-ZpzaP$ zS}Y>jTrdcy329tvOv#A6A81Z*IYIlX@_M)NZg^N{4bYi1L`I-;z;o!~nWLb-7Qaak z&+BGI4-HKH_0If7t2m(rF(_LCKA0Y0;gl?6ys+b|#{4X$p(O^R6&oEYD3)d`W{id} zte9M{3_GbtuN50;#d<;*ML57a5=~493FS;WG!2*nYEt`O)2|xP-tomw|K!y4Ma^QH zi#8uIO~U|`=!$U~`$F}v=HnO;=HnO;Ko^*2#Wg`TtMRWcoM{RtAVwiNB&Y*V`K+8E zQ8#xEmB)_&9)!A)t18v3YeR~Ta(z!V*_iV>$SHF!5CknlgM6i<4BB%m$3j|mgu?piDumV~VEIdo%{zi@e_Sr6F=uxurlk2pHveo4rCnH`1?Gj`#mt-nkNRI0!u@wJQOBl zwf~FQVF=4%Xaa+uyv3TaNTfYgrxNiM6&`Ny`}wf5Hs377H>P@u4>&a&>R#T+M*A@4-ke$wBKMY5C!s+SEbY1 ztDYE;0|__ShKGO(ZiGYdVl)rhEimsSFSw-YdB_^Pxhf`5i9m+tptahGEWCz>KyuK& zr$Zx#8*-i+8uKHxFb?hQ=Fpgls$zF;-8K<2K|0!K>2JfXL1yNBNVTvV|FZ`A+ls85 znD$mC_vfR(wYbEJKMEfchp~`q6p`%n(yoZ#0#7+Lz37ksXU7qJ&-;{H;sb}OyY|!* z@pj9j2~GmwBl;bN7rNzBc2~zmL69)O@B{VPrKb^`oMV^8o3x66(E%s$bDF0cl(So4 zcHQ!XKWYv2s^(AGUGEfHi_LQ~89(@hYz*UnX%py{Z`ghH+bwyyx_{2@_*+N0|F6RH zN3lNRTMWVPm+%1ohcjN&dOVRP`{_jrs)dP~`GalqMNXcYLJ45!WJX7r%z zhzmj9;M67%91O5fRqVK17Te&T=)q11VllXhCVuN;*NA2mm=37hCsggA;=WP7DeguF zdMMg?S>C6TIRzT{n~xuUsJKk0VO^%vu=q)xD(l+txt7nDJ*zA&qVqq!*aIOYq_H!n zRaR4yc~|PnCi5@=q)#szM#LwDHkH3d9f<`Z$3(4|zM@^8SMQ4c!d52U`_qeF3{a&1 z#G@j{pGNONALaR0`SjEsY01w|-9fP{pa0$l2?H$z{TZPQTN&mjJ#V2NHRo}oqET)t`3{xwHS&PmRSVUDS{mZ6iOM+v2{D=x<^L3xCgVoSa_ ze%T&|)FhmQbSCIvqwrEOw#04%rlA0%+>D^*4xHy&k^<>Q;=&SimbifA5|awj5i^OF zOwiGV9W=(_Z`U)dd`LAy5cT50@tV!BI&O@0VSXoMDG24dsw)_lCkRS@-ilMO(vl%R zx!0!-{c?T?9oh0qwPYD69m$PD#T9y?v66#uoEu`J{PT>gWO24u;At${A=WWIWAkE~ zKBUd#-)KMv^~E4F6l8!$FMz^KTcz&Qpnziv6m0Tx6Hu7?pp=UlP$&x0L6Mm%B%LFG zLK=t!WTjU__q@$KkG^wW+A54`=G?t&T6F%2rz5L_2 z{7NRYwFEJ2?m8K<#VRw~u&A5zD;nR70!e*ScyDj~n{n}8&CoAs;50+l^_2`x0aHCC zHs|kv*|wzBJ3I>~wr6Dqz>9fhC#0x-2cs}+V2NypmN+M8&0Zz#}fl*7MV6@wbojKUo_-2Cw zt*hS`$Rr#3dB0p>OKxkzE8sKI`g#@El**;uB&gpaurn#rq~2!4GV|Ln8fO)2XzfbR zc}VjKQz?1;`NT2lAxqGJ!+wTlBwB?~V*iGWUv$K?@7egj3*X?=vd3LYR9ZFV9e2UU z_hr@x^oZP7qvC+VR%=B5g=V9}OKOxxBqJaiP%axkq4Bto0Bu-ggYjCn%}$i!;Rg2F z0$1)RV?S2Gfu(@Mk(JfJS1^t-Ydsuad*UB5HUrafoqK3!W;?$2#B}6iWTLQsb8k4) z!9;L;r3*83C@5q2+QV^UI*}1{12I*Dz~`CPoa7#MEh|QDX#k7EhmPel z5Lf`ozU(PF(y4yWr0SOcd%y_NernE!^P}W*0VQAJ8nnOK#CWB_ zdzvOjxNkx*3O1u5gkU9I#Su@MP!!Wwl7#;gUcZb^Xa&~mTd!tISt}Ewk6^v11|;L&3zhWjK-2p(P< z!(FAdpaL9AFNxtkp~E4W&)YEGn&FzbjyeE(_msGPw>p5)MbrU0?}ZM)$iUmbt~vl) zo5C*`L<4*8tg#nmN07T~8hd%=R7A;je8+TvQvoGk6^Ve@{B_UHQ}}Ko!&SHT>-b*> z7A#H`$w7(dzdgm8-3KIZ(Z(%!U*0m_rP#v8O#E1|aGnTE{OAl5fAZ_V#C;8!IrE>U z?^LW>P7Q<66cZPFzYr6z8fIB$8g>ObG(5$`z2W~~F>#^*Scw@Xu0-9S3I`^B$21vC zGjYdV7J36FekM}Pd?tP-P|WK!#qfsUldgRNbGS0!%oZ~OT*^V>CCrI zMluK3p*M>{RvZ?uJngutEF551jvpX58HrYo@4pWhGqcPNAL0utfR49UL;!cg1Jdlt z9M&UP_i}KA!Z+;qxXG?<2VtnHgPfFm#5OPGY^)9Q%Fyv);o%B{yeLD*HVULHn0KXN z=yYZboldPou~}mxT2?8=(*mA%YD4Gdh6yei>!jz;&5(*KQp`*tN%xvY$43*<$IJ$l zi$~haF%ha7l2&6jpkQ>&bQgR4iCGJ<@&HN)M;&|bEI{dCvH%$qx{Ex3=0&(|28HD; z2jeKxQaktvrtx_+g~EZF8iG)`X}T$1dBad#4$<|T%#_YI0+N5VMsm=b#}OwH$&CzM zEc}}(vA{Dt`BeSn&h$--C)t_4k=B~G)M#+UASG29Mf^$Q@h*pUrcVGRK_x02`S1ql zN-HD+5j{2k`TNBXw^b`OBNGw_L8|FC&EGfB#!g{SPFMmT!{1WpIZ(E_kxD(1OrZkCFaF4_pvC0{@J;8%Je{=g6#t=49<4;Xs_7mC2yzYw_Gz#$T$1w66<~IR$w@kNIn!M_Qc{ zm%v%WCYdcsS9X2y1ms%a6u%%WOFFN(iZ%#@!t&qCgR1v~^#%;IXn=BIyk`9eo!Ol- zIu7ZQTQCw{3w=zJFy4LJ>!(X|;xu`i2bfqOKuyA8e}T8b5@EskMunE<#IKz=L|e;= z0~npRNqse^Bm394F5(@noj6tss#~6BZ7CdJ6$O;V&7i9?0;d%33Ja-hDjArzN)Y+^ z*Mq$)nqpPQzpB+V8Uj*6M*)mRF525=?0?=u%?bhIb??bS34tqbSI50wW^pvUU1YdB z@-$??{&hU<#&tZcqIM^c23?qeZ8(jy3kDM0Y_lCxuykF=d)9Tl_uY5QbVA~#=X7|ZZH_r%YpU3a<9{F&5I^je_5)7bl$s#sPIZ12*sIVZ z(A`T@&d`@cMPdV$AO!gt$4fy;(U2qxn{@QGM-N6t-NFWXJYUPaor02P+dz+<>!7rI zV<>61Q>J-Zu{=W$nuoLU7d+yxNNw7RIcL8DlX}nFnk=SVGMnsNE0*`;t$(OJ8XWag z+~6N&C}@625sQp5W9W!+BZ$x=CBIRD%=MqFg3W6^Wpl}w5(JKOj`)< zG-ga0W^7Cu70?Kv`*B+ORO^406m1Gm|C}q+I4!YvJfgCMtGUsRv|SK;2@c;xR&P38NQvW&Y1|Ess~PF7XXia5n02cA>~4>xAO* zC=^-wC=|u?FTmxEG^5*5W10sOLuSJ>6u%`Gl7X#PN^D^57frj-1!uJT_4OJX?KU?u z8nl~7+HLqS@^!Sk{O)O23L8G4hG2~nXJc&e^>3ilIyLFM7*VT9XhiC`;U_(6s8k`B zB}thsAm6U+dQrFB(T>hj@4{t3!=kTD6~&=UbB~||T8Tp1I+yZHlWpK{=&FFBX@f>D zft|tHTz{V#EEbK0`=O}BT{~+d2%j?|B4do#TgV2VnOs0QIiS?yz(G@feVDZBf0 z<5?kWi}|p53I9XlJwWW(%dXjRJ7iMz4^0R?A)EpsAweDk^AxyZ(Qo|5q@HdDCa}@#zwjNX$Mniz_3L=018V_u1ha6%FlRcUyOy7k8@Hf80Uh(2%W z?VxUJgh-OkB&o(@)|slxu_%NoTXct>ri3f+nsUy%n&ZLpAh+j|ocWU!q`~*?h;J@i@vCszVh0w*akomO&O+YuNOcD65uQ5jMcltd`!(s} zqG2VY8NfFLRgE_aYl^Y|oGt3Xq|?0ci-S7OdQSyM2OhM7cF(Z%?s;h^4a7xw6&qA+5<}NaTpa!=?RW3EE^(Dgh76j zwa{@!=C%pO9{U^M6ComW+A;jD@d;&3p~)1Z*Gm>n9PtT?fC3Dka`34ameSUk_)lA) zp|qm`5k>lgMq`1oAwpVf6HuB@GBt(O8m_uz#D(lEMOOz8f$APg6I!@ce?n`OhoB=5 zL3F0cl0|z*sntIU#sdb^OtPkdy-gh8mwWG9LJ|VvX*j=$ka}llU&RFAgcNfVT zFVLNF;&t7b+B4nV)^(hCCde9gh}6A6cLwUHW=%0;-d)zp;1$c;hi+)8FsRL%Q|9CG zNFo>Zhk^lcTb+MS(aqHFqVPZG!S+gtLEf^%BqV<3`+j8=8K6?9{xKZm&06~Cn;F3OnclCdp4L-{MP?g4qu z1EmvpnG)Z&MHF#4z09DnZ8rdmQ9z#lPiJYX5 zghgV(G=VVks&F>T+g_2qLnGmlOnD+EvEfAh(Q|_-z;r6Wn2E&@)vE-ZrFdhYwybA3 zBe}I&E=9ct1-Z{a$h~8-T~m)O09)ya(xR2{Iz(CL6?~4gqt)e6G+wD(Zqw%WMIT~ZhjUz6?(r97%(JbJV?ujx3M-sG$CXV1D|3O78REOaHPtRI z!MYg!Z8p43)W@JzIqxX2Q5gjQuua@*6tev1jY88E{o|5|bzZb}4dmT}1EHE90JTHp zhbG;fBf&Ag#EwE8U`FI;% z{*w(%iOP&fS_%u`t!9&HB{1zAHi%wuobr6Ml($ZIg=O+dabr!T>`&0YnW#`l&G3k@ z0c0~zYR-?~lb#SM)T%yhsRb^5IhH~TNwWo;bvE5X>Mi6wovx&yh03)E@TN_I?aFtM z3NAr{!;Nv+(;n%9Znj+}v^kizl2KUsO|TPCZq~24!4R^yqS0lCUWP0$t-2aTKxy@y zMcclT!XyM7Wilz|DR6A}n^0d>UKsgJ)S9tq{Mfu=krmFKd9mp?IS)V?1zg+K)8J-W zJPR1y8GyOr+6B|l(_k1a7=~$QK*7gqnW1RpB@)IwE0}NRHy;cEZSFPLCAR`DofnCC zre%m$W8)||e`FV30F7kloEMEC0;LsBqY)FMS0w0rjz&;t1C1oQ>Bs<4&jjo$69DD@ z+Q8LnSMQY1B&}UEWrn9Ds+l?jRR7L>f{VWJ#N6k8LUGiw%zF z{7Ss96S52p<;4I@Ktc(Aa+zF%%F6?*%lXEweOK2`34&=u0C&{AkFw;pz-KqzM1 z?An>Fx^ADh>wqYYygHhzs=oYjI;A<+1`;PeK)a2}l4WS@odS>YvLnW6rA)nV=V|Vq zNuX}#vX$zOMyVnqojb|Xnp?~~(<5F;hfiBDAZ1ku@}KOcy5pQGd<+!JYtpA!7}99H>QWY=b4D-qiqptTsl_ ze*qbH)>8|m^*B4E1zb@@1GU(sD|AUKw-!IuqD-bQL^b-B0xnYiTw^g8^1Mk~Sf@3p>X$9qH-=|Y0#a-B z|FQQzz?Pn6f#>_?gjds?KWUC@!fnoaV!jKqdiEd_!qNtUs zbxW!{#gdT8#u+3XNHDvV8Ka^G7o4b(2Bk;Ts1buU3L_{pMnyr%4$(o4f*KXajG*lA z_q^}-o$s8!o$jPaN?d4i&pF?p_s{b_|DWf5-sy^-NyVv7AXN~Rm`l#3#8^ZT7lco! zvo0tx$=MmQCAH9@6MO+dC-W^dN=%%1sfE^(Iecbbi8-QQ(~=Mpj^!P3ZnT7>%sHa7 zD_l*7kv?6&CR#I78YZe_PCiyjI+l!4Y@9Nj2i>uaGv-CLv7h4%){X8b@ z6ival8W0M1#+rSdlF%Xm<~^SQgT}XeP8fu5cM%4QzTGbz3{)&tY-M3iRcnQm~){nsuR0Lm%>p9w{Dqn5K_a=lBSe>nzQagU7ha^Z`XxrO6Tb= zG^Mk;Ya+*;*`ZJ_bhoPu^|8B?JkPW~(BE4vRvNeEV+7C7DQiL*nn{t_w*?DRwIcA{ zKeK2T#y|*0M0p4qj!ssz_;f4I#_*SONRu2`iaLo@{kjU~vDC!5!lRTFzK)TUTqQP# zA{+%pE7pH{mLIE)b6Eg&mpE55+O9&>F!~8MgG}dUpOUG<6iREA<{XY{$jlQ> z)fFV$L6}03Yd%Q8t(4IvxrjKbBK{MgdW_EHGH8>+G$;0HV<{^XCQq=5#}GhR(P1aJz1z3;0W{L9i^-k39D~zV%lVER zqoY{123WGHLNW$-0}#R1QhYgFnlv8MgakT9R=E6`JXa@8ACJz8w+6**X+0*hf)Mh$5 z|KL}<*qO_WIw{Pvtufk}%q$zHA%&8iNf+79jC{Z4WM`uB1>m!4a}GPR-OvfU@bSm8 zGiR#JIql2`iqgX(vQ)uUU>vPx^-f%Ox++e;emcy@yAMy1Lua1kP2BtE)+*@DB31yhykWTIuK80zRiiwxwYs=0+gIWW(2KE!O?(l*J*CK`yc)M``m0SM^I12VLQV zr8Xrq_POy;x=4R92A|`5&+^{=Mwz*Dc5ZG(oTs-FNMC}DQg`3^Ot33halTd8F@}J; zj|S#V-p_S9uKmX)-U^scKH&A8h-{>G>sx?B|7g5LEUbS0aR9J+9WcA(dJz1h>_;5b zYgZ!3?aff7_pjP9W-_>Ohv^u9u$!NGi`>H#PbJ`3j$4q_)FaG&3X+)1dHTHU3)ZEy zb7ylxX4M;gZRQ;*JFvbv1vMGGm{Yi*xQ&@6e=o<$!`n<)iL7zNj9tmz=%>qmpM#Fu zGbu^GT{^@ZPd1ALRZ~g1DzVF1b~k|ffqFO0NIDQn;hjKZiYtz?b^Kc4Koa;}ZIWVf zITa`KwH1(gH6!!tDRv0k)lDdzkfP`xTy-e|0t}X(B0DiI#QwI}eYPLILwDfbHsm+F z)&yVDapXaq?w}{Y;P3YF$q(NW^N=mFy(spiz*AXuE>QSX{UpA@6^w2H5)nFQ*8;1I z&H^i9_DeI@&@1LL7KRCAOqT9#2B<-CA5~f~sR-8PW|MC!;&5+$8%Wj`V;zEOshKY= zip%o^7UeBweu$odN`aAqn1g9V)%y?yg?N7f-ujK#)oVsnulCRX1hOu{2Z9GF4^t3+ z*~bT+#|J(>h{p#$Ua-)JDMX%#H@Kl1Tu(L$!6%4B)FGL<5Os_>UQgX#MwYfom32P; zxJ*t_-ia`A$)w91z@`$Fm(?B1`7k;N70g?GrEH6)&loXXD*s2nT+R$i$T~ZX8_*0W zy&^@2R1Q!LIFJMIz%N=MK_15yK!w|+FfzyfjrGCnjAvC#H>NbWB61-h_$j6zaM$i5 zaV9ktFXKp0Nf|?5H*dd4O$=>9;o=;r7>(xSmlJX)Vs!yk-~tE)vjxSyj+_zTb=ry6 zzqWqRve)i2fSQYA9E%)M3lJwg11>iPg1KfWk|Pz+SH#p0{yPbe9`Au%`B|ZXvC?QJls2@=vD22B zg@x0XbA2pA+aT-&eGGjHhJq9gPa3X=6RDS_(9l!KP;E0Z&Q{vr>o_ViveLZ$U|v{M`8weiyb!u4fr2sNK4YkQvIyd zZ1@TecSgQiKg&T;$k=2P@S;0}^b^k)hS&*6D3vHy!cTrXO`TDt^bH2Kbk@K;ohq5O zXv+aXqsCb`@?;5SdQn+LIz+6eXrwUubWFXeNGnv89?D17#oE{FjJ-4h^^+h{6CDv^|?aI^0rJy?IrS-dLkg3a1@jV#zz2*moDR zqU>ig+K!6LLd+&42TE8{)=xWr9wj&YFM^y={KtSoMD6mGUrtvXSHrZbV)TY$PDknT zf8U$-IG8ZqdBVJ7 z{Cu1IiY<<=W_$sGogR=m4_$r8SEMUO4G=y)|MQ_}@UzeCZ-QfOp?a8gXVyUoF>?@@ z=|ixkQsS`8Rd!ce@%f;-+ePKzGWc<+B3ev772pj)$(t)u8k0!g2$>^;UxtHH?mG$8 zKKzbrDa#C+GWmmlLr&ULh=Pe>LB&+2lvS>lcE-M8OY!FDOnvj$F}zXzW!HHWo+|hT z4Y^?d>^hFVqq1{x-E>laf`rzhTCbOGs5YcNRKi;>wI~C?{dpXIFe{(9aX4avmMBYTXBaGD)&dI zOfP{2_hl#S8+5{M>e5}nK_e7*jtSX91b27kCD=G)Fd%^osiE6|!~?ojblW>K|oB z)DN#%^cgeMT440Eju^A{e{DXxHm+bhI0y-~=pV03~mUY!k2X zO35qN?@Z$1*N93J9uJh{VdgUTaNmcye>PfDFiO`I=(QfY`u`fLy$H$$RC_h`GIRtW zgy`(o4|dUw?!(C^bE@AZl417qV}Y}=uP%cu@}W1M-Rsq#_@LmVfdHUL4=e?s9f4;f zF{|nH-Cg{xs6Aj=fj;@Y(HZ`92ar$4*c626Up1Pl0yaPAKdTKWd)luLxr+Vzt6#h> zbXikQvtv!U(@-K~BlkB}tRKm3={Xk2wf8B=Q5HiOU=k<^2CPE{tJOLav0Es8okMSG zcisB^@^#L|40j9U6O4mla2_Dt!16qmY`n=N6?63=aA`dGtOOqZn@}j$!;6E7L)#FD z$UhJb&|p$?iC{&xH0^5D>5k8Uh+u2Lgmx$9r}OdRU^(US=?Id0Jp?%cNjG*jQ(Q&l zOVgN;!p9qYNJprJ8`UWI4Q;Ys{$c^SeWK}?@lkGdyXb`?yXw;a=H0<(-uYeNOV}tp z6E}V_-FU}YH-6)ec;lXX7T@^rJL1Nvv)=gSbmQ%3-S}|oWDsq5dk+m(mg^yLoY z`j^1Y&HA4F6pZb`Ux>bwUbp5tnFiNYBENQh@A&D$04##69+|^gt_tV+q%F4GdcFQ@ z`dJr|%3#@Mp4)W4e)HUevQ7|VUH&!>{$@(=hka(Zf%L~)%|IsgyXIN~>*XCRZ(nvZ zc6}1N83${*9tgl^M*iU0U>&X{PX(V5IP#gfrv|}b#xn+^?Janso39qKYT>gHk2=aX zr>+DcWfV$0An0gh%yg|~EOReqe5~X2y?|e0!isEB5dS4Sg!f&KlK<|X2Lo3M{(E58 zs}Ies-8fdMWD3km0^@Ah;89fUr?=@qCg)Q!kO*w6ZG4%{jqaV`d8atw{bD`l|%jT8DZUfJYe_&XwdP4 zghEtJ0=+>Ym78=J=Wa)dcCL1qyN#&UIY(AI)VKJ<(vIts@9w{rU-tv4lXu>K^OXmx zb$zv=<6V#BKygdHh{{?Q{rVOj?iz5`f12^Ov_Lk#*ixbGXNzE7u3%_|9iB>GXpAJ0dW zoMi_M{xlCK{29#fC!Pwti3Xr+&;~i|VYY*6jMx~}hbXL&goQ|o^o8-Qt7!9~lv#7$ zi>z~fRj$jenr#vDTy;J6$ZQ}U+*L!yTjyvVlU&TAmK3+c* zZ2OVmJReDV`#Z|gNJ2L7=j~wNsNn@9`It;WpQ7s3AG#}e|KzW1fHYKKg6=%|Q#~QP zfscbX(yNomL1oZlDBD zn>dbaYM<47<;m%Q0rG(<$SHGRFY|8RXOzRs`W#bRArr34<{<;CIKmAJl16DQ(o7{n zW+tFJhWXFUxk6@c9vP7TR0Z9ttrn_6q-KbJ?&2Qp%6*|OCV;Wpk6i-=p0LI*s@tcS z{8@$|)RG`bely4N9lQDKopCihR=m!4fj0&#PHNy9!4ReiNpc~L+xy|Y2Ig&S;?IZu zr3e@?G5x(U*2c@;jy7p0Fs>hRz&=~ap{bQq*zEYR zIj~HV@a&P~;WsUR!ijcU3~j^1bIJA*C`@5tCWcen1;;h4{K7B`G@{QKbi*uyG!~j* zmf>LFRXZR{JsZt05poU;)1suIo<4CSx1HKAz>=sqxIz`4?}dz7ZO->X{jZjHit=ax z(^E0%d`C3ljpS($@U!=TsP!%5I~-A1FNQXntWR%y?hIf;d$ z{2WOP>>hOz#EjhrfZYcTL27}z8(gN0RJ^&#Jtu57$PP;IaA%8B%qXx!pmDO;*$YUv z``BMLBz)HDLp!paef+o1?@C=OSl-1KuVMtC;cqR*udSy+gKh5No|(XwRoA~xo*5$-heZPhd{glK5KCC9F~u(tyfQb z)xKBbfoIh}n3!hR0wO$pEejUiW*_}r?oSPN(obnDm;CB!v$qMf@rAzYi zGHtN^WfL=&3;|Z97gUbWx>xYjtNzq`G+pajh|WD6O+=S*2G8A-vkJNQMguHl_r=iT zxhrAJ-|>~7-{qB^o)fxraQqO8)k!dF^uNyn6sQ|TbKPVJ$&>l&hT}_8X5irU``_$j z{waKU^LTx4{J1liYgYFvh|&Xai|qVZt|K5`2*67lQqz_?OX9 zopb$RR1>)?i3!BbaWk@BRWGTCrU{`1BaaOp_nTf7YSHUpPSx(KXD=r`d%4lGw*%bH zb+X&2!w=SudM|>yejp7<9EjnU^`}CgU&>RP5E*Dj(wTpbeCCJtNO&3xf8v6!Z}GxX z{XVs@?yG?9FQV--zqU8O#)uw?7xyrHM?yy)_$r`tOf$c+HD2FsG~s(|=Y^-LU@U)O zlhKN5Eznw*s^kVK%(mE5xaPWzG!KAqF_duFwGT{io6*Z(#=zHcp*2$lj7rGAim49r zz}FiH{Z%}_kr0M?2Bv6Uh%hg;@=~%b0#mq&HGNJ@VYl8B#uQ_B78D*Za;EW_7*@Eq zii`T3`+2pL%?^^kjvH(3x-25#t(6;%*$z-k!uKb`}vy~Mn5lwO}7(^JQaEfMYCbJ zq=Bdf=E0P?H;~AK;Q0b*5a9 zj6olC+w}5Ny5>q;b4<8JL0}Tbta#TGbp?5YBTI~=1)7P1K{m6um1l{}=`ReHkRl<3 z!buiJFD>H>N%L>r3^IbQn}GpcHytM4H*9#Hy}NVCXl@{fOOi(6S~MneRgTV4-za5c z6!q!%Dr?v45C1BkU@?gqZ&h+nep6Ko)j+32BeX~N72Qkk76Mo7x8xKgr#fC|J0+I(sz#jkO@N|x8PL@(% z98Or(vNWGg(Rl7*DMy?vVfA!Hf5U3%^LQKFp^3U5KT-Azewrt!w*O3NVWs}xv=Y*M z^^h1HsNYGH4=o{iU(A^zzpPq5);spXW4+1g+gQ8|-C%CvYq1I7-9u?#J$>x+#T#FT zw!8+^1Cq2X7Tb{@xnEJpW-s}KIJ#>7)C`A4*Ayw)93<7m z;app$`3$N;@j^=TKx3~zw|w2StUvb=aMF}NP^YZl-2MvWH^YebBa`?IlLhTBqh(&v zU<8`Pd^v{)Fr6Tnp7(FCj4Y_8W>=(lkzqQ5<~X#PU$9v@hb6moga!8s(~>>|ok{Xl ziCdXh;?y!|FwuLX#3?zF5_h&rIvZm58@l0-!NV>ZtreTaq-g&)SY9bsi=sd17X$v3 z1s~iTP&krT)B?-(fyXrwqlA4M%pd=y=a=FKFu*@Kh+p85z};6l#f*0(xc zJy!fnI$b?wL0M71(c;bmo*GDi$nPBSu&!&0 zfg-;aJFYSY{CGg4(Yj_jezp-r#CaWG^qPD&dW{^Pz(L3>Qvw1U! zwOK|B)H9f=KjU#8!CKgG88w91yaK2<@`8pk)3rN8nYT#76@Y#*`J8iC`Cm(D#T&S| zf}G||3sk!c1$(ScLz{`L2KBrNLL~xJkjdYr&eZ~7*^XkB3GyAjs1DFH(u`={1o4b_ zfyIzX^Nk_TnIOg}S1$}=5qt$4FsMkMTUUb7I2rZLFi>tWUKgT3{nP*qzwPN9Zv_c4QN zbSr?ZO6G@}D&mB9pY%`;cWT67_YygfIT35@wfx!TZ#%f|=@c~9CYNp~xD62?CD6zR( zZRPv=<#6WJKifW{Yv$Z*ah3EBlzgF70KZ@EP5#g|b23WSpsg?@P+;5T5R;74cMS=~ zc(x%Cyi3#AKAPo;s&}!nVZ3VhOqZ@^wafZf=d9fFSa?Y3m?+3MG$RIZu@?oX{94y0 z<8rvAs^!p0&k5P6QN>`K%{G9I%~mL$>Ql#xWThkH!6F&{t+xUV;KO<>QnW^vfB*w# z59W5OrBiJ8z=t$vExqkaYx9L%o7*mQZSsSUwKiby=!ZD!?>uha1_^f!^e3wuTxbIQ z@`-uJT@X&Akq5Vy&cX=aHPC;K@=JkoV7U5y8|ZJI73GZZ%Ma%Q{kn{kc?+$lK!0K} z&?W+?jqyW~R?JA84RffNal&%+?T?WSkr)IzGvuxX&TN%RzY=8Hs9M2Wj`gHxZgqA2 zcqeq?-q*0#h%#E&@DLy0IxUVp^O~Hfw(t@Lu2J~#Eo@JIQojQ25_qW5+<|}S2zhsF zxTqGTr2H>LM@ND{(KLFh{=J^Qsc0OPGZKVSc1bH52BYuC`f1!z7UVAvsn#;f=HDW} zm6w$Dk>emr$JRK~*czAY6y?!5R;zN*WwlK19IRGP1=9(Em}OsBHK8?KG9Ane55cm( zqdI}m28M8+sFOROM#u0^08(-NFiBBLMkQmt&HW(W}{iq^m zln?XKNPYO{B#6O+=s9vD%p>(OfnAX=9*EnHbh&<@n`yyHst)=AS%jCK=uzy#l&i${ z*3sMgeZ6*NL%|O~!Tknzm>a3TDG)jNBdMB+_v`nw-M&BhV}HA0=0#yvqSM7htO2-z zx0g9`?~34QfNd~BnHi?3vMaovT(yoXO*JI7f-kW{VcAr};`&h3XgO_%^%}3F42U8gj?7^f(NsgVy8gn$ zDFb4;lWOQwj#B*5nV2>mmn=3H+;j{hF(Y(%Z1AS4Jbf#O1G-?QsZuF= z0S}_#yezD^@Zf#L^9zo10c`E1hvSk)ZhPsIaS7vZcIm;mL|A8b=|A^uOFIe0*FHZ# zq;3Xm^L|C3p2Xnh#pLtq^ZYPeoHPUS{CO9GDKF|xSOD3mS+ekofZu}3b96R& zugyQ6)*1B0y=T%kAJ$5dL5E`%Zok7pJ?IEh_-tkmIXaCnQ~tA`J&k_l__K?4=y;k# zhY2U|RO`k5{a|So{u_K`z$S>3P8;HsIb7l*C*oAW4xNXKd}jJA2nqHsxvXEsMxPl_&jKlu zfS`Dj#%#;=U6IrL!Ecw9HhC?vE?*hdz!q3z3MaRu{dmU4tS|08ZwCarxcB^IC$kzH z*d=wdQrgFw5G|OcZjzdM+$>XQH|7jL0tT7DoqNBUE??I7j1>u6lJ#>~Awdj}Rm%`K z2uYkgk#`AM3^RGBDFk`bI|{5BTmk@W-UTNIkxn$JPj z-M_#`7UCngX&HT}NOKAPIYcM)|LUCXGm*1tMLn)-&z0x2=cus47?M}B)p0I-Jd;0a ze0gaa(CA?23o#OwagsS!aw+tCl_Xn|x*rL5El7Qk(k~A?kOa>b)*pN4`%c0HvbET_ zXwbow{7c-fL=zP<;cS?Gk2eU0naob$R2IZJ>ktvoRh`1h%cE zq47+g{czkzA~lx~0@DHS&W{T`tT|{rDCBv)wThWtR4iQC}b?l!+e&Rkwlab<9plYOQraS_x>dWYK=PM<|BL(Ym zZaYEsg&ITU_0vI=2Y`pGjCwgVy7~->x@1jH+KEk9CL+IgL?NUMF1$z zwL=WTHt_B|ueaBa=l8b2QL+h~y6Pz(mFnpR%PvaFc!=<-yW;QamOt zR)Ua57y%aS84Sjr~1A76l$ zEq({Sgk`&=6eHvoB!B>)HE04>2Vl4xhEZfNKpL;l2wo7xCZDi)he(0Q5 zvxNOk)rx1PUPJ|V(K#!8TeqkPKc~DDkdP!(@$u02uri+hQXK1FMhT9h{=Wp%>0{NK z_-*gy`APTqM7BS1w!NT$0e&uC7NzH_4-gNvaKM1gN-$25!Xd> zzNF!qlPL!WJ4i-zwjA%LT)KXfOJ^>od(HIA4gfN^Aql$x`qMih1>KNJELOXfvj4~iGV zbEq6HX|51RSbrknxi>FKH;<%8!Ev`2iJm@F@kt_$(s}Z2l1G~A{_v9VJ@w8~GV6ow z2+O1OVaHyu117y(A5JCU`a4VDD!a3i+c9`L>?a;f9oSMV3PaXAMmx}_m0Wd|&87OR zy9}@yz){gKBmlo{G!Q5p3F57#`mKv0YV`j*x~}Ghwfg>ez6pTK9~8y2)ajV6^`_i3 zlU6zORm}8N!s$0k!25xr0H6^$h>+OzUQ}RKQfLGH8KTaV*+O@E z_<JOj< zhR*>7gwH^EBvW?=iX6nMt4)vEL{W{Rg>+QY^{I$oWYX&cMU{`JPtiQe1Ny(3rX2jd ztq>J$9HIOrx5PN2r8#o}N1C)Y&t-h;iD~Di^96sYGH(e&ej?iWaBg-#JcrQv#MdT~ zJM85OK!xB4JuzFDk+aRLC4i24e!3ri+-^12;t;Y-QB`ON9(kskXA!~|HM(kKHEytA-eKi4ld8l!ub$qbX} z$6^7%XR%ajM1VSKaAzLu2iY7~v5v%T^;*V8R}3$Yh~vHe(^dE3!osMLtFC7qhvAhw zWUs>I+0sgBis*w-(uwItD$2ume0Frd$usL!oB?E&o0573)+L&5suvI7-lbf3jb}C% zi}HX33}=ThkO3sNe(_qf^@-ze8891Z88@ICi-u`;?UX}@R;ty>yKVziEICs;NF|6c zAP({jH3_H+VNHTf6ZKX(8s)Ai!qgOEWay*a{C#u z)ihn0Qj!Qz=iVr{KyOn0X0k$1vSmkYGWryhfdJ~yyhouD%dk-M$qK4%NM*LZG=ltQ zCDPdHlUiB~_ausB0bKZYGP2f0=zn${_c2j61HJd$NcA;-jpG+JRGZryaRH;bxv-9H z7O}f-BkfZU?b^sX=3NfM0y;MlMKX7{g=DkS@tJ4=x>d$W1)8`;j{5Nveo+;ic8tcN z4hKS~(&FN6+%}VdwbBmYX>g{qXE8;W8%U!dzYK+Y)=d*!%-xia)lC6l&e=zQ^kqE( z&gh9HV%qWOBl;~+!hch)IcgU9q3?5%_r#;~W8I~R&-ifL#Qnw0vj!6M=lF4%D35*i zkX_E3px)J21DP_D7VcCOn#+^s9NtE7EtIt(_T&;IUVruFXwRxs2nu(@dO~e3D_4i&~{^hqwg(kS zvDdJCV@50@S2!6ZRxTB1Ds@W)u^_o>?VTsoL9n}M``_LwgX)zC%8Pqr$(FwBTP(y~ zLnn-39y?$tvU54+CCAgsgU)AT-L1CJqRhXUV;jW`W6}yHN3vweF8&Y?tOm6zxR9L- zZ1fNRm9AaJ%DBcx!eY3nxqbr_$flnYsPf8Y$w&9fv+QR@L(G?9K=9TY=p~(3PUQs) zg)zN;jnW+~>p)C2IUi!Aqyexgq*65ZClA_HYFNj<%VlueK5{STV1qW_ur(ZK{A$>s z$X(POHi$mSg$^4G7T9f|eIi)kSq%jH<9U2SN{8;78U@i=u)Y8_eSq6nk_L9 zC-fKQ@3V{dlx&W%@Dng#ad7cHpKI}Be67VjLU$?em3Hqhj2t&7SH&}f8`xZ9HPNKf zD0DppB>&a|bz?j%_I{^D+xPhib-de1#a-VoR$fwn(9cQZym~lrwW>eXz4{HVd5}k} z9{BR^BFt~;C4vXfE*`?@5mVk=)}Jh@@<2UE*uzM5T=Fpp?@J%oOF0-_NR#(P;JK(j zUDnLtyiID*7*kXDJg{34`)*(-?&AZAxp$9dRxS}ivf*on}p%?)B)kW3^Kv6{+B@uEpCa%L6KMjzpfEn%y_+4fG1xw{UB(>feV>)>*vb*Ol_G0Ps$I()!$TIo&X zl97O1DHAMl4^pQCeOKhFFb^P^STZ{Q3BcQ+AHv^Pc_g7;epbEthP2UEycQO+B|n>! z+mi;7ui_7Bcu%Zmm-j$#@P*R7a5~H#D?@f%j>VCzW;~CP^z(>Tv$HAxR6Ar0OX56j zkvC>SKax6l4sTWz)P9&>Mxd!%#t9(_5_r%a(!fYm4ka00fY{-?lq|bAzG1;;ImL-; zB^4NTX}y^F###d54bzd}3bw+uTuSPmG<-u&k!tw3+dg6ON(0FNUZ8CkLxYC}`tmI? zy#T8`35KQ|T{^))D4L^x)zw^e1?V_&C`%^AD20E+rNr(Xsx66>tOzx(@;nezjDsZ! z>kG!qA>@f|^5se;oj8ki2I9%4f_=%i))EG^+|Ju_H`tmd2+s4qa-OJGE{wU!6Y6)L zp9y|yf%sq~XAvJ9t|2~I6WALk#>|+;96dJ7NqUqm&FFD~(=>{J$(t8KqDh4i_fXfn z1DPYy`;FR^nMBnNcO_9=_knF14q{y<(dK6+(Ne{QwnznSNt7fo-jGDk(9(kGIn&=b~NHNn&pi4pm zHAFn>5^<6{aPevs66lfza$Za19I$1PJG8q>RMDkA2kjbi#MRNE-9}W3+uhM^D{x|n zS>Pa2FX~sSB=PN%%LuJP*kYvo((`|3giS4|MA+hhJO*b}<}qyF%!JLV<#C4C+R;== zguS*v*evAv37eu^Qf}5u5=G11xvrdqqLGsg;&BIEi9~1U;5dX&Fz%$C}T{?^Be(B?j?{60YViwT$r#* z?7~kPgfQ2_2D7WmpMcFC1NFm8)%YATI6GLAJ?A%|eV8~AeLM^? z%q7Oy=d5UqCC38;30XopL1X)IvOV~zcu~t{xE_%vbh0Q|sbHZU2V3&q!B~K^(_zQG z&fxk{Bk@hTa{X}kSB2?2n$2UlFpnb5V`%Of_~-g*jyG!ZXa^isF$jxPyH^ke;G1(M z?(dx6v&gIJyusO*7HoeO2K6|j@vVHg z1Qq{H4mrdf9*`~3f<6%*;4H*s1N3VKO~M|)#hP<*%A={oqpltx5123Il9{O48Nk}H zxCiN;z-0*tnFNT%&%9D#GBCqof7cImz)!~{r~Zb~ZbwcAZsXd(?5s*L(Ni!OBU@is zcc6fg!nm*>qrYAnU5pT;T2xf1pjuSP%aDeG4GQ%D8PSc&g$)WK(&^dgIAEM$e>gDf z+vkRhveP1_NXa_&u**eC-g2tAbVN$Wmmw@@n@Mmn>#quv=akRQ7hvUvZo`vVk~>hp zGh7^H{et6@2ZYWu#kv1qVbA?Igr9Qkc~4jk=f@u04IS)>w;E=40obD??O;#*d>q(= zQg9yZ`H|hQhohc~1^$%6*Q38KuoaHdCyaqV;ncc1*A zyj>#VpH&G-HgB&&!{R-Hw|kXfRj?#fHaQcD91Ke*zaI#)YH;O&6tLNGZ+^&$0WOgw zH!xq32h9_zsnzgAwR8aUkT+4Es5SB0bUGZILX$@imjAWyzz}?=cc6+V4}?q8X)iBq z5s&bjgN*eFjSsGqj5ZAvES8%cWB(}Q#4V0&isHo_qDX-o^d=a=3PO$glk8{EmNZ1Qp!l?A@aojy-4!_UN8;?I`4-qr$nB~m{c8E@kO0ynF$PE*&LFRWr*wE z_Bu>mImm7K5f8^fMcViL_SxR(?@ILLhHbhASh8A-A)|48JNsd*RD=c+5Q0mFf;hf* zXB8lD3y9{a!O}jt{c0di2K6w*82tRxac(M7-@WDsKBuNQB`v%B{V@Sx*DuNt> z3Ni)$bkPdhv@+i8Z47%wNuesn3@S~2I<=5~{7myhpcmy)Utq_H3kmihn);Lbd<4p+ zFuwW&!l?|MizoFz52#g{2NmOi-1DFjelfW2xZ{z9tD`92lsC_Gyd$MRcLMyMj?a6f zm=85Ru8K6+B2o|99eyWgO^2K>>hHXd%uxSQs}?rG_u|GAiIcFGZBTz##6fW)ALPK| zQ=!P9_yVNn^x~yB{n7Jdkk$CF08pe6$@!NWA0?4A^+ABKRDasKXzc;1E+KN9e&5%- za`MhlcKZbMevx~4=zL9|WjY*wu0JMyL1tp&8 zar{?Q2K^>Uv!~WYrQ#y2wlM%%?;qutXX%ELNDX`;I-2YO4p`Us5n7u3zv*B zEFRm6%-d>fXHPgTyvEguR?l8P2L3q&^XFq_YJJ@8mIdtd*NJN10cd~vv#i*NE@+tOZtov8NO60WIj@-L~yYkl3#oxRmowFj;= z-Gk#mtI0;0=+jeIahk#t>Wb6B%E#ym%>by3syza$te%D$2W0l7OyvT2!IT)sjXRuo zLrr47AH0@=&K8p znkC+wQ!c8fhr`6aZU9+!Hj;-)+mLnizbg-LE3VVuR$ciYBxVU$&>IAQUqbMv0Zw#a z+#FbOx*DIJ?gukp4}*tq-+1D56+dtLmQ$oY1S+i8ab6Xtx`;=ljXbSl(8qV4&g_Qu zzr%wN$B#@*HK{fufgvGLysa>0Rv{ndui*Js^faZuG$+VF%AmsN`Y@-1<~Tg&gpf2n z1>nS{xpii#3ceLd{(#|yXbx#s4AS=8TE|nq2$X%6Dram6n17b`m`tA+;)91`QMRt6 zD(#dy+x?~u5Olp-W_M$>&b+rn)Qa!Pa|7albKIo`EtjY5Yypog(CM34Vfx_%T(4gx z-t#kkZr9fa9Y99;8x3~IfHQ6+gVBNMHkr^RR^E63sTyB)K`<##(~h(KjS{BX34 z(9yCIc_zSBQV5e&V&HfZS?+djJAilMfV^75uTvOf=jbp5zl$gO;>G-z2dHb_DMAcvP$lcD{&p!}@{pcoGVu zua7WsK2DYQ6}D4k3jYheLt{6xGG`uu&(il2O{m?tQqOy|@VEYWT@xS6I5Hg{%ppVQBkj@GjI_sE@ zvqqaV*wh&yb^9C=^nqXP^!0=Ng=#SUG==hL`WIcnPBpzWT`unR>dKrnHE_hjAhAcZ zk)+w7?hSxgK$I?(!4JhruU3>hFU%rzKOT906t9r%ne38Hasv) zn?0PlcT6xDo>sd_=h*izqTo99-_z`jC*fsNQ&~<`RfiFP9~gkQ=~g{M4@U8E(=oP} z3xqKik1qM>q<+{T)n6W?sNWGk?)X91DDP=~TEZmJ379u(@#szJzcbt`)55VhI8e z*NYuiF$jlq&aN$6;8J|dF6wE9^jyAOD&Hm!w!@$Nt{6&sQB(i6JQ^ur8v~&wsD!5O zSqj*^$+7BGT#A|1y~Djv{;U(~fjI!C?p@S-&(SJQ?b{h|%9+DUO`wkCmCZWqSd2h(KUDWk;{ zQ*!2pFxtn!hnRC7$o?3J2+>2?nfB^W{ubj-K@7c!z50%iwinXK#1=MqG^jr}vRo!k zHWk*GbeC+-SdRdFx>NWae`YuRj%UzKxg)v7Xg>I{+&KfexB1>SsNSWX){doFddUGR zBT-oe_wMa(2mhCH_b7@jMp|grfB32AsL0CCytfA)oIFIR5wJbUi6^&1qv`Y8?C-JB zucCg5S&ojjDcnqroPzT6zHmtbx{p~ureM9ZK2qS8<##pveW}0q6G6#O4AU0(LIp{O zRRAQ6?oiw2$4gR+<6Q}x1#)oHS>n>^n^#oYjM7H+@P+46ykEY#raq#>ktw>eU{qG{Bv@#CC(o zY9^K(KmQFiOo~37X%HcKHxc6#*CkmVK0ESONw~ARg?C&mz5=f5J@Yx9s9W9Y$&{gy)ar z`&DG4TN#`S-Kv5jT;x8CW^&i9Cr?5mhfDnN-8=-~!Nu1kAZG9ZCaqzjj~VsMMx38~ zKxt!MVX)G`VBy_Pt6dn3o)`@J3IzujGvy1MSdOO8GF^T+i$3{>9_2`S zMccZly!tZK`1tlpx90$bS0rHEfKQ8GH{pC{q#4GiZ&O33Jg=AYy(|fzZ+(2Mj1wGb!I&SW; zxc#H*VnGu}VgPKiqOMG|hBq5-9BIWIVx{7JL{C@3Aa1UM7HfJWkn_(bjX9j-EAo|E zt^zR{mw>U94U>X2Ea{K6u?5dzX9klgYMD&WdhW=@=ag6QvG$zuMQKnVUM5ZOcki;<`~ zlE#z)ctQ=|J4?o|4z)16oIA5oHLGDRQ>04q>&tOLf+iZ~3f)SLVH_9eWTUwt ztg6fUR|6{$=O#X2IydkEHob-qtix+lQVSjs90MpIJ1gX`XA1~p0xa}l^4W_FDn0{L zrN7Cf;!Xlx$dV}!3qP)*w5o1pBvq=Tc1+$ZN^1R*0W#(zN3ak%>R(B#48;pzYdiJp zlg05v*h2=c>W`W3pYmo<-`}@B+i=(^!PwAL^Xc-Vj73-q*tLO0uj_ya>>!}p{BzxZ zzkrK%GysAbGYw#Q$De0u0O4%Q8h}nVG=L&$08CQXO?ecMutAYiz;Bp|d)&z#aW6o6 zxTl-E$(d|VDb6{ynT>{uJ9OYimbaOkSq7--i?6?Lq4c!Y%63G2N46iyqWyba6$$fb zD{b;@y!fJ>fKCIK%9xcxJI#ubz|D4| z4m4mY8VQ_UNjMO-yHMG)ZnL|%ZE;{x(>ohXu2p1xKL(hNrs=#Wq?BV(igC;ns)59h`@p)T{BHM{*rlOJ9f};0`LO3KN1(dR6e5eS?xFo%GB%><# zE|PH*$w(QVT_mH34QCUv84036%SFjG`MwshSqX4Kez`Vzi&tB@xQSfkoQ{4qNgCOC zTDpR*yYnq673bt%N9tWd&V3{GGB$SL3)Xay5->HwPyAj0Zw6`>bf{$uqX;)k@HcY7 zG6&Cs&Mhl&>)$t-=^TO%hR5z2liX!38A<#q1=BU088O$eokc_|8WeoIQq80lGX}Eo zS(>Gg80-T^F>Y94OdmSM>5M;_J4nQbZ811W z=zp1WLa34akL9Lh>j*2Pl<5|_3HjJfSRsK~K!;$@x z?bCxvNNriSj2^5InNP9SvDd!FYq;+W zi4F2zeI73BpZ7?TUcZQwXT}c7rCH|R%8S#u(B2p~h0q*#9jDC1xR~VyJRfJw@O(_m zvn%~qturQEPHXfQYG7IaQ==og=SPT&vi=H?C!H~xU|`y_0BW9CtN-7qBIMvW$@ic* zQcUiXt&BcAp6x!<9Wh7<(JV3sNi2rCN0Z{@lJB2iWLB7q2a`H6TUo#L({hMh$n8OmVczV(3|Q8~7i-u|9?9uWw2Ps1%q=yJG~SHV_|!Ub$o#~~ zJ<-XaW+t!D<##m27AY0xuNV2}B}#tAJkT$e!lp@ZQ5_17Q2|6Ln-8=`y#gI}Pz{5c z;;gs)T{C@`;F>~`0hR{I8P4G_svQ{MBGv*h z90S{+FDhSj8L&ATGa{ibK<9pMh;81YD zHzoM{;9&$IG0i`BjnnK7Gs1RuPOEqEWxZjVNI+RSV&doOVf7;NAa-`Yv67P*;29HL{9kRd^l+Yhd&u z8~zPGL-C%AC5f-Fw={fpDBf6Osy**bI9Gv>=z1BtAnE0?G`CeHUfsUvApmz*`J z!xuOy7m>hX;t)WEQ;EduF0W{?0spniG0vYk%$5;zrGwc5y|sBqZ(8l1BROAwLVn)- zlgGq9hZN{ZM}xtKN#bN z?-?S)(b`YV(YG|5ic4gWq|$3$BDfM zv@66qPamWOJ~&&s;VN8qHZ+`wi*eX$bKABE_QGI%jL(KOsq7x&JOZ>FfYac<9BKAK zaHj4H`*|Va=I0(?G9P1%{q7(bBTF~=L$N$YC`=f`VUz?Dwr4{yF7K4)9zPOQ5MpL= zGFK{WP<~B$_*RZg^%WKlzfVF4vyiIv$cp(CW1m22sqgq9xXk1iZeb7zHG)3*N>jAR z6xGi~p2geqGeTnqUDbgLK0CsD{TE>k5$ar%$pB|MGwoT#Z8 z$}tJOC4;s-S1+ULJm9zi=%%a3s@q=}!e{k`T~Ab~%8V;B=>@Xl91_q`Vj52eSD|4< zCqY}*wtLhzF~ljcY|Ile)+*DZsx!<5}G9lmv81qS&_ zvjX8w8v|qvlulasyb8ndq)BCnxGl6aTLQjzmw*AbWnM=J^Q|$|>>{9ze)tkKC{%8nUAtaEHK;jr8`=n+cF2qYa4VFjiOJzx`KIv*103pHY%2C-&PC;wIin$nw(pmzrgg{Y47rct8)dm>Pl_yD?T!BJXl6)RA9ip^cylvZ%V9{7=kml2 zDWzS&{!6CR`Aw-%NuPTm78Pn?V^LiJOH>mlAzb{1pIG`krN1qUA$eg}7eNRSNJ06O`p)XZURjl<=uW|mOZv4k3s_(+8rp6wx+ zx%SYrI`$C2owtV$C3|Qsi`uYf7+-zw55tU;WzI~m;mW%ud>yg~9b zWy2lQrx?&TO~Yz=Rae1(nKxe96?8lw7Q#p7triztH6*N-3qtC~N^ug|O1UB#Wlkbn zDT|XB=kyzqD`=Do$-5!wt!8EWaB_lhiSS~&e<1;tD8kK|GpiE=;k@em* ze1Ad95ro3O&Az@Jx-gB|9Kl}p{2*DnspXus106|oA6Ls6%&HNRMgQV;xlw)h+XL-x zSHZ)#d#j(QfhQfjimX=IRje#Lvc)(?K-cyrUq57=RZBTzGTA zK>55=)vjoihk~&$YdiGyMiHtF-bsY}3gthtQee81h+eB64od(LA{55JT~wZ=AT1Np zF5;{f9-qrePc7f=H0a?jKR*X~lry!7ITX@j@968!@u8y4uR5y-1n zF6+OnS~+DTCErYno={6qqH@G=JCm}jy9(c&DRcm!=Sp4Fe_7JUL3q?~FT<5vGEjoFoA4k z>QzoQV*C}(g**uoM4>j8AUU!is*Y7`sf@llh!}M)EV;sG&`)2%$A?|;=a6&S*P-@J zT)CZ=xnk}_%v=APUuiTb$86k~dX_+p9o$?rn)4)q;=o-(33?bYbse{ zvX`Xi)3gm(Cv_{mNhid#W!Ke(v=hiz$*MEp66ju_ZQCT^#4~L#i9-i~ubA;?bCF@1 zN9Or6ZWdaJ_%c#x4aMHis zdI@cT`pT-i*WqNMfDMnWI6D7X_qRDfnddn7Ap70SdA7q`M$c`5zKi*H*S*jcBcOg^ zxBKM(oxSGLW5ttOnZo6fpdmKi`M?=D>2@Ln+~r1V`t>Gk4tHu)LSS4zi3t=e1uV92 ziSqr-W%P==WIkg{pF}>~dpmMh{=wD_GL)I;T z9x=z=fljQZUso9qs=?^vduAzVZr)m2p^Tq+Rz_S zBHrlVI9;{)36WMFSw-;jHL1fzeWqthsah@j1#)E+H+0Hj2U8BL@?+g!ZY;1s2C1;@ z@oqO3a01wlDJ+S{%8gH#iRX83i20vRN~@a~Cf^T2eKeal*vkYWl%P`~l0P`?zE_BP$`BL2$(-WLc+}-4fZ3 z-dw4eA6u(my|X7{atg#Ug=*vavrY zJXupiLH%ma&Loy*74Wi~9g}38wS%h4*mo?9uxONi(WjL&r>1A(L5PkwfK3Z$V8}0F z$O#3#E7o=D?!kdD=6Z@As$z4exdNNaENsXU~erJ|55`NrjJI$Ws$ zpi4e-k+?`b*4TajIHx){n(n%9x$ax6d!X4yVtRDeW6>x{x&t26JCr?8f^h^!eRr(& zr&U8E0I>z}Fluc3U@T1?iS(Y{YBHWoS@IEg_nVGiu+82h;;Hno>D*UM{D%WG(-5D_ z^|BehKx6Wgx6%=;Wt6^=!Wdac#0D}YMPRbCy{eSFJKMHY75Uv#p1iTk4rGj7b`WXt z9cZz2DD|Y*z*@Fo|D>jp#0mBj@ZtE^j;lyid|*C!6o@rYHc#wK0wnYuZj{v>j`IkX zzR5yH^VfH+qRX_J1Pf}J*wzLh1te<~`T>xE)*;rGe=rLdkmm;dJLd-dMuN4B8)>Rh`fanL|p?+U-qxqb^*tcandBa9{nK; z3EIjP7&fJ?%@pE?SOWB5xR@WwVhM~E5VN>Qv$g@4&e{fGI%^w%>8vg4PPO{d7=T|x zG;xX${czogp|xBNTBu+&`KanJLs>$Aics9&e>@H1)~c6o*ZsPYVs&jEm(_yL#CB zib6FNkgn+N_ebY`UhkhkW}F^+(5wfuuGohfIU*7q`tAG0bX$r>S%f%&RF6!$z`Z=i zIE-)d0iPEtbXImc8}&xFSnoMo-QCg|Dt;zA@`2x*3a*{kvg*VEQoUn8@Tc#((6}8eWh23*up#N6;y0=rqEJ54Z(5xfH@j^^bK!$?|1*% zfBeAD-u(4}P;f%@arjO&`ls(X{nP*HwvYVvf9-vP%9l0z7#{`-gQJl!8>&7#YJoQ& zjG8UD+)~?DdGr%IftgHj7M*0Mz%k=TAJ9y}kz=z?)D(NiWg9gc#ljCbtsbdjB(^OtD;^4po=T0P`8~fB+Z^k`|B> zKXGAUQHhT_f(A1}$WLsHG;KE7(ZL-G=+R{{G<&1t{ zIA0rWF)1m{1y>h338P|u{-cG&OK2HfvT5yQ1J!l})Wh+8@`Ddh+G9}vxT8+>2u|M$ z0`+Sy3_O^xRKwf#P@M`l%wd`VtjzXt4x&|ybn)cd3AykO>wNwg`rZMd0eY;)JHl=n8Mv?eXIQ z|28#DVgmJN-omB29ej7_4BR;a-aIpc?oFDEGd`3yMDeZK=^?R`HqvAn#ey-$2#$dM z7x$h4iSn`E_41HR3(tK>La6icm5f?*mGu#v{MnyMG62MI?z#B5Wzjdt59q6AfrHxI z;1;oc^)HDbtbEMG`*kx+vi2qx$#!DF_B(uXoIA6PQnzic3TF66iek{v_&gO>Soba< zCAZ?-%%RR_JRbpV{SQW?wYk+vzb5{Frde zQ`1N$8YsQF7(dSRLYBw(mFv^Qi+b((1#V5L>w`Tmx`OG|>j6c53y^32M5K?C>jUL( zUI&-DWzcN3=A&*0j!H^WFc z3x1L=T4{whVRP_Y%N`Hw+kXm-(}avGNBE$dOA$n2=7I23i2x0(a}tM+nJd+lUx9Xk zvSXNvHTBzVtEM=1dU<}~fr>qg(7XW~@MFaeEWn`CnI`0q0MZu8<{}@}g(Wseb}oaa zWJ2^#^Llh99a;bfeQU=Q{`L@Q`~yQo*ut!x<9%t?bdV|o;XKR&c{W`c30-!k8xvs0 z4NoV^Zgjrs82x`p@?CVtHvs&^yGl?ZoW>wp=c5vY-}7)){tfF^U98H{cPNY#qVV)w zfJkP<`+EO#ot)&E9n?|IiCZhtYX(C}N}Dvj2wJ7s-F?wZ+?>kMLr6L@9vhxVE7x9ZSfS{^_@ zi?RdA(m0(noLZA#y_Kh(MuVZc@!q}h z-cOzHy+1C9$`wsiuB)+ynjrf>d6Om>h|Ba~T#O4bo|6$&&#+0=Dv@*00N-RsIBDa0 zNXOQ1iw7lc?gwR<^}&1^Whl{~%lb5XGoqN-GiiWU<6ba6(^F~HC>bfX_8>=e)_mg_ zTr;0~^;=aB1Oyl3`BwVJ@$>b&=I@WjKs9kti+%B9X5Azcp*4TB5Ux(~98?r0>mMX) zKKl>QOg`jV#O26Nu1XNppJ*~_-DS=qRT)QIc%a^sb_`)>D2VPDgLayzSsn#)C!-26 zpNprl%J}}FA47Qd!IBAkn&V8#Ngmu>e_62TqUH$B$O+<9Ls90&Z=RMXZiJtLTg440 z>KBsb3WSa!Lruzqe9+g~-C94Q5g%I!G{owA!K4_}H(eLU1XXNmmbs#O*3WQIH=f|{mtB6~hNzXTiSpcTDDWD2~vtgZoP!_8w6V?mKXnBg&XAn{CQLC>!M>coz{~aA9@KLDdxIcV@$v z5))XZI|}VGOTF%^?kZvkd;P>WpsB&O&^-8&K5I%Yn)$@RhsUQxh+hf`;1ITabaAByx!WqNcXzKK z#VH|FIKzV#4sn75`TdBqaR-UCot_Ff^hRHc)Zju9OAS1`DSHuDZ&LM&P!wbZ(Ci&Q z=P=Ehb(nZQT~jCv%1Ffb>Y2N0Cbwl>LHhL_R)u#NN=t3(7s;7KM*ual5r;?}c7O^x z5-l7UTr-PS0|g(~Tcfaij*4Aa1>W)G9sye(6=TtqXNiss9~Gj0FxqUV)oOdAKT4JL zTNm6(?DK5ICNu}Ve&l0^)8Acd>-X#5CQJiIK7DK)we{Unpb6eo)*rN$^|^>=f!lq& zkW2a&203|XX&u{aha5^gkGoXXFYDg|dQmF>Q@1kF(27|Y+_>G#{K7u0fkyC2z&Wd@ z|K6fMfb975#07zeNN_2tYA-AA*K#863;7pb)F@yOW* zw4v>;rN}gwd94>4E2?O4nFe7sJzhkIq1|heEzU>+@z}If0 z(f6t`_FqraD0?Z`2FPnt5&HEdRDeUK@be=a&Jt&@{DDx~VPyO>$v2(7lCBouot8g; zI?pPNxl$-s93a~W^H8VD*HCtmitqWx$~CWrVu8J1IK!JUndl;9LO)B^*^Fcoz=aa5 zsBki)caUWE`el~FSH||1lsmumuZe8q0k0jZ!@G2d%RacD&ugZ`1J>Dbto@hAlYq6} zUmv3EA^C@Cj9TFVWu6ZAfGz0KjuxnIxSGBP8sGx6>Q#yCw zV^};#fScS=K>|8c1W5k2dd+l=()D@5^p#RSGAM}g0-g-hY2>xU`|He-x~VX zMmrtYdTgH;wFCBumRLkk)iMD=j|6sZsEIyNCzLMYI}-He{4`Vy4k7dm4$}k#$wXU6 zc1&dXN)~r{L3J=Z7Fh@e=5fygY#I3^TRn$IHogP`V=MFcW|GI@#Sz)sSM zQO#I|4QZ6PY~`25OrQCMT*%=WzuL?Z|E0i&yZNOak}UjudHBUE>=?5XMY1W025az8 zMujS{X_5i&l6t@zZq?uFQ4E~ian%7KJ>83j6)3j`B2<|Qo3^i+?lBF==eC>ZIcE(p zTqCUXAEqT}@+z;u96j%&Gq!7{`*^?F1E-Bf_Eg&$4fmu*w!4kI!bYe!xM#7EZ5!Fw zG_tSSlN;HW8mYRCu!V1pW)AJrOpIl_X=b}^CQs-{(~NxqJl0=DZExr^34nl4SnTV< z%TSVU%hqf?@4AjV?>MUvgtiw1HKD@l1d(^pmHZbms?1P_XfhTpFEELWshrYbGom-hRP1bKymirb!P`C7 zs^Qcdk-P^ie1{Wbrpr4cc-DpD>`0s)fwMsZdy=k3W9q$&iBV*Vos}4cD!DIYa!!o; zlMwwmp$b;eBt|K!QeqTTf%~HIg7RbYs(=zH{E=hiY{(0ez{!s)_|+&B%qgi7DBlqn z6u72>$ahvJ4@cK@lp5mB+Hn@;A@b_u7WoGe2t;|y3lZXWroQkn+*=xF@#WraCQ?l# z%b;4$jH;Bn*J3iVQN&|_B0u90l-NH3(1M;Zl}Z1sRwJ>|qLx&MqkRgZ(YD!8aaaxp zxr4<>HOq<*>}BlLr_m8r^WuFtIztN3zzb32;C&2#I##b+7%*!%J~iD|$jF&83Ikm* zZ-8fDuckY#f~#`SV5E)46s*m(urzm?VrZ%udoayWw==7Y#+7NQ@h}W*PJDT8m_1%eVIpV-SZ7!Hsa3a29Ks$pg6F=;Ejj3f_RV##kR z2G>ltF*i#<#tRlpOr^QUQ{zIHSmq6-+PSE|PhE81vav?HBI*$w*^DljgiH`ik?uWQYvJ zTz8=Bf9bq0uY=Pob>)AU{rEHB0zJa?i5-!=k{TF^b2nD&ocFcPnRKtKmS3;8OAI(& z#ZS-sn#3Yu2!yAAYU-{o1pSPPj=Sf5MPA_^JyKP2kvEGQ%N~a)aY|YudB$)f=Qi2b z6oH77Nw!C+yX%7rm;q^))!q}ra%ZDF%2eDqf!8ka*L`!Rc*VQ~2JPjid=WTnA92=j z=ftn{EbTEJN-w1k9*Skzcja`83_|bFlWhP!lKl?EnO;#_eoI#&Xwc+q<5t5DNZ+&| zUO!`JpZG}!=w%2bKejv|EASQkY%muDKQP^&d2i^a`&)hk8g0kaJ;`mUdRj7;8A_ad zC04*iDr$eGQ?JH4xK}F9=|TcT|J(dz3~jG1y<9UTX};+-)Y(q2^cm;t&AOx;X^(}; zz=)H!2GE3PxHGm==E}}COlxN!q*d*M)CCZS^fiasH~2c1bF9EXJrb`yZfnD%3)6XV zNSlcX5P>Oic52jO1GJg5fCJ`RW~9ZbyU75OHk%i|$D=MeTpxJG^7$a2z@Fl2Kx-du$^+lLK<*bvSJrpGPSf1dr#pC6L8qzV(&E_3Ti$T%?RVaN z=H$(9oOXYaRw$+6|1^+8NCTfl=i%FQZ~>`fH@~hb-k3s^{QTFauzyd~FSz#j=m#J7 z5KsQ=r*Mc5VWE#+NkqIn8W7H|uE}4j908($=6;nvK!8W5e#P<0dq{=^B+BLVR+Wy1 z0L&b&B69N$S1{h2pL69$qsPBa4}I%X2!uns!{9ULg2AhfPyW<BnR*>E!vFuBB1xhOE0MMMF67(1UQT=O~X54hf16niuNwRXxP zv=!e7nVPXnfDeu9*gKqlVQv7H43RZdVE@AqN$I(oX$WsX(8JeEzWmL%b!5&PwcN>> z-@##^9An=Nqv~TxZnz7VM%Ipz@ZLk-={ew@9%6jPG}IMyYn@*q=DHVdqX;`KsWnfC zX0nN}S_`SBM`!Cq4XKdz`HD~n2K6iboV<~|(%z|QaUB7hi+b~&?TH~_Qfr$G+_A?W zM~Bg1AY#{d5auCbh{2}53G2j@M|vphZUq*!#J~p{Uz{UPs-xdu_fLy+gs%Jdu2$$3TYBzNB zrp)cOW6QT6YgCrvjZF9RfB$!%{hL4k#4milckAoaLtJwP!d@Sm$Z#ZHp~HscPck`K zAu1LSrlh+_p$j(?_tLb7#4H(0N=nBJGl2z%q*2^^|Ne|oVA8a7NE!uZp7(pP-R;P` zX1B&G#D<$!Pzurp$so1)R|2JR8Hv&;uu-INRmuRgW6jpsC}u`C_7f=~fRCBrN#ML; zW}DV;r(ZL5(Nl{foEHPo7mpi82*zVV*p+#N-MDVLVkDi1$TV9(+(b(tu4;V2SPC~C z@<;d@s3!z@-LyFSy#{&Np_!1kprD9Pw#d7@EApaH;&M0v3ap%XEpNDH_`s|`vck+A z2jmDwZ-~*sBiy?IT9eMhpenC3nGrk*W?H`tN;84}W!j019~ux%X=#P)Y^O77+lz7* z^lMcMYuQGUd@x~Nx0B$T=(@0Fu3&Q=r+r6&R}1jpbUZpw*QBZ#azj=9L`>SQ925geq~?98ZF$S{eQ3`pUd`YV#HUp$n+}Pl15C>q!w%?9+XU1k~_EjXsNjic`Zu z=+}gRdQ%cmTe}LICoG_ntTA8d3COAKBwa#IZAsNzQbk8j#cys)N@-4H*lj3|(r+{F z5-aB!sNa}$^PB99R1v&QPWY1Wdh&&ryW_~$2L zc~nN%S_$vpc}173e?!s5pGI`S{I8pCT!84>2+_51KGC(IF0rvFyyV9l9pP29>X>px z_hCnPg-A)FtE^uYqHCjm6|gDJ5?$v0OgFOVqSy0@u8=&@`S~Qz1qnH4)exbPs;WPu z#89R5E@k>dJ$I&Sux0@nw?5 z+834G^=NEm&vMOq!8gM4@_YSgt{eCz+pCQ9=VVCzL$duX60&HGoH}$4F_jQ@WgcPwaSJJGCS%VK z-F*s06jaqpD5$@|nndmt0_vu0PQ5M!RE}bO(K-oD$x5C;(&BIu`g?*a zB0EY3)#OV~!KdD;dSXsN)~*p&DJp}Qx^uudSLvWP4KvIr{sqM(3^ETSy3$fBTt zD8j?%`hcgXC`11j!wPf(lT(n;yQJ1QMMr{h<96-$T1S1H~7<#f%@ zvNpo4qqIFZ5otP`D{pwl;VTu6DGXq=_X`~}CEMOlkjUf9pbsJZ01hI3C4sxUs#F>!c z2$C@z^N^kX7Hg};neCW56{G5RhEl2)#F??@-znTMsD3T z>|8~%#S(tCg@>0@b4MT+d@?FJ9dG*czrE8it5ogugTp%w4}R+Nnw`++zy90%j18F8 zJN?k`PGkD8Uf%(45!%H3|MQ`SWLI^lA0FQ8S$?Ni?Swwx!)=uczxx;w5gfcRda_{W zbvTD(l9of&xPQ9?uD%66gQ<1BZu5{^d0u+?v{WWg%`!!cp-4oepB4BsD>Y+3+= z%`DljK13faC#$~3AB!a(OCK#zY?YdcFT2uS8d^wE1l!y2r_z3gNZV_r`_UkwbNdop z^K0Y*-{i4^u^j>HC>735*uWy)HMK30h)kUsp>0`yJ#BwyY{_5gKNePKKOgwtRcb$>?kvqLklb$pW@^6d3$8o1Uh*62RcGts&kvP?iT-rP!yr zGbUe1S;iWgxWUJf>rs|0z?>(_zzxPAl!k_l!H-5I3uUV(0|2n0da|6X zIsyF8VYQ!PO)be6JCW7i7WBNM0zI!O-H%49VMPBw2bfR)+kpAP)~DnpjC;X}8{0+5 zzQ%F~w0ATY5l+b)S+amaJyS;e5rph^mJ9+g5wg+A!YO$VOE#J{4obtfjzsv zg42WXW(KxM_`3#Xz)Knq^w>({f0d02D1ViWtM*kk8b-KU;{rcMBu5F@HjHAhUB7fN z^60O!4a-IXKiv7~J2=?>f@PYvzYxb&`YIck92_7{UuC1A_rJ=9JM1!`F8WGM##-Sm zj@17Zaa}OQQZv}T1lmg)exMD^*T@gF(U}jd$<&R~2imBO!*vs+!x&Z@=U2s!h{R|@ z^q`ZSX438t@^GXL<*dk1-7&gI`nW{2t#q7vtZ7^5(K96)6lr^)bU(WAVf1JlG+2=~ zV59%7(&`#4b{gNmqQSa->jdH>#sGgp9yL%VMv2?|+>eO&BF+%=tAh9Pr>j3zx1yS) z&zlmfw-t%((QxKpz^WY0@{XhsTan2K=Sv4r<9yz&3!Hbeil=WUHQfpnLMGx_R!Knr zDm1Fq8TxH#^%aaOsrH2kP_^jR6dGF@lyD6gi!H0(>TQsJzrfgDb}s4&y0C>-V>}6! z7-DWk3<-tSFR^-vEC7GUkS}gvX@UiA6pjb7500#4$%5swB3bpN=FaN)#wggW+cPUm zJ-?Ub4(7-6AWC6qdLOEIWA=?ImHf?JJjeR)dUm5&xY{zgZ1}h{fD(Tc{T(DD_4le-{jzhP> z%9fJhVQ{E+qyKpWoNvND8twN9k)|b)=%HgCfE%3af&~qo1q z+=ao}?(rEM%7xYx->@dj)fNMUEaPU>lbIAv!5KZ&!kTa= zeXNa6B*F2i*0Oe*j0&;jVcLvJbKROF1wjnkR8=`U9 zbH)U+MbjNV0nGM4;&gWU<}^WO{9*n#v?=jK8h{DGR!J_nPW1g+>oEkt*cv+DrsiyP z03ur{rN61tZ!0+u`pzg^;Eckaqsi1rz&JR@iMFMqWBwOCfHd@FLc~kow~W%6aHXRX zaK1eIEZc-TH!)~5-%gMS`o;QQdB70*${U&4 zo0%Rl%5bcHW~B0vbp}|jbZ&fEnrT|K4Q1E2y&T!D!e6P%jnF(`bAj1hVrb_B_{bL# z4V?QCIT>@~(MZ?S39$%AUvGiH3*ph{L*IRhB*V@T2VIhLiWo}Qs2W2P@*iFTzNBP9uH36MP4em>@BAw&O?2UtnXZO_mZIUzB; z%-Z!+zg@!%GXizQz0Bq0F8a^LbzUSwW~Om%HPy{bO=mCzRtcaO<~V3UhywIYA#Qw> z4lu(T0x+G&%^U}Cx)wnOhpOSff5<(3@B}zTUxUKrvDo=rP(b04kI--9M9huJ#Nn zy&XrtY@P^0j3c>%+uAd5PCyK2vS6nv?y&&k9byeB;=jzl8I z$0Lzla6JxT90H<|;}K3kScTx&{kD@W4kmKzynLo7w;s>tM4BU$aBW#x@bZNg+s$X~ zzLun8=eu()d9OQLDCP%S3VEj`+vj>4l1|<(dWB>*H%~Mb)5#c)mR8fMs%KiVMK52> z<$4P9grq1XMV6~OpBv~;5BAun3?}o1k=5h}3dMo`7Ru$Uv9o=JmO{}^_jvPcJMXN~ zlzDc4KVq((U!U!3>B**BC&@-tD%N^_7g*0-ufM=x;LLNqUc0XwkOJhB zlFFLX<8|B4PUx{$T;t`vf!=veE>9JjNl|7MrZE6(Q|q$cdIEDeE|iMB?i=WB$@CN@ z*TXOs35~i3Te|bv!oUt1mGmGmbDoF>34VJhp6VSaR&7q9C+nbLxqPvuu*S}NZcCvT zI7APsv}Xq*Y6&2fEnryRa`HgdSvy7xwg*oE@_FfOcebyHaZ-|+50-5A0G_lsxjvAA zYMtHDRaL^jJWVsbJF0HGZ*Wa+Jw_hL=;Qv5D|?F|EUd|9c2pSO)K3B{k^owOt?lHurb zTGCon$yEgjOGAl*w)iVbkh|hJQF!1en&L1RS0yNJb})sN%-)fs0Em0tUY^lX#h)|z zT&`HCMB~yV2Bx*72eLgbR?jiv^vTvyEX1ytI+-n_azM)lirJpA%irna(3^9;E!6+X z`d5`s6YNSWOVR7?@4*5wuaKoxt(fa$lnbpG=mGOFnveK5p<~+avHKjq1tB^XidZ>- zs)a!?FN1wf3ljupnJQR%a1uupA20< zPztnuiCEbgq`iE8hZR10=@_f@9XMtssQDZK!K(_ac1nfCd`rJwM1_5k-YT9PSKBy&_5y&X7t${Z`C7OY3r+S70MfpZUD?f_AG zG|lUCa&GnVcS=`B%g}xHx@D&&ieb_YW&t(f>u!wKixwTeIB$B(@*;AlK@+%uLzjxrclp%z^rPe`F5>`o-Y{x=9c7em!f}PTbiuQ-&TpFLs zhHq{U>4I_&&`k=s&hQbNBW28F15;i9 zmQ7cgPuoK)shuUoDin?kEdkOURQwum1Nx~XeJ$ROE4M7mqxh1RbjOw7@8un6b?14( z+Bi>2%7NB-$5k?Nc?e7177SP?&#hWPKeNMtgu;SbTs zi3oNglgsylO~-6L7t5m*&V+TpvNj({VisA+#H$aK9SCMhJh@ zzBGbe!0Jt0Wg=r|dpx%_QSf>)$!sA7C4N4Y&Y=xZ$=2~PNo>{Ah^b`kux86G(KVkC?m%8x+5W(2a?xCkCX1_47A{A$9RNFoxs zCE@>UcO7XY5>UV;a+w4JeW8^h0wABr77~dxUirxgC(?t7$Oq`#Oq4c#N;8AyUXz=d zo#;F~E7uZXud_j84I)pG__v zjYp%g7`JychHrKuUV{YOZqYqzIZBPP>$$pEV{~tBKJt!3&N(O^rN(MvT)ZyY#7adQ z@WF3CJ}qh@7S=MITgb&Z6wcLiM{?1+arJ2~+R#+DC^{A8ahyJZLya{}+^hyJ6X$Bt zsOVnNc&s@NBY(7(o5%qk@oBN?(Y;|V59JL+XL9Re@n{2A8~X(sfY#Pg ziP8Gn#waK3BgTcscx*p>6E6{u)*5($Of^P*G@GG zT7!Nc5UuClCa`fpqUPpipfUF*_r;n>484rciN(1aQAb-%B)T--)g;DG<+O?Wqo<8A z5#`o#2gPR9aPl|Q1zwYW~Dw@CbH1|yID$GMtF0~h@(*BFm;UqJnFe70~-EgQSqXe@~# zh|~d0+);a=X(;2AS`?2_0RB-$Tm<8<)YQZ#qqnsa@lAtRq-K6yggYdDB(Mp6Pevz4 zYGSqZ_0hV$uVDt-Dq7lEt9BIZRx&B-(a%lU+$k63iMj~(gwI=e^Rr4Ro{rTK|k!IsNcbs!V zTkpKLAK2?m`KH)@`}}?h<{o!i^2!rF^V5g&*S+%cXIggO*N5-1_`Ofwbmv8PoP4eQ;fE~# z^!ab^yME?1e>nBS_-3lFclm}xFJAP_*DwEY9E%_G?0qK=?y}&lyFc8G#r2~Q@5dHg4@zxbm~Yd>1d;`jgfr&DHk{_?SN zK3c)zmp{pW@7e3tUV8mUt5|%~jp@^8_1y7``#*A7{BN(O#vhxx{cA6M)WhQY{qGNd zb?N(W{^gyIiY)$}q0P75a_7DGHhz2>i=Th^X+1Tm^k?{wH?jC~;Spu^<_DfUelyf{rCMfz~c9bqPLR2>&O52_)!+W zusXIQ*;{(%QP+Pvzm$XLkUt{qJPesoD^Sz(> z$l3fBi~n)Tq)XiT-#l=}=0CCcGoM|SYk1~?3%<1ZJrE#s;xy)w z$f4IfyBU)`_%+}7;_rU9nYcRorSEv`j~nicMRsGcO%0d5zrj3Y zkG?2=)%l;VMmpL1TkibP1%~&lyB>@zX7OKmw@>+e{S#-u99hBQS4}^;{U6g$eDu$Z zyNX1P{q5A7=4Ow$WIX4x_kXyse~SAy_v&npxQs~T@b&Lp^`)=%ezlzgGmGCjYfr!D z)C~=PUd5fp;_LVP<=|J|T5->MZWD|D;IXSuxa8au&b@@YfW;3w@$w%%wp{(u9o%Is z{;lh;_~)v74*22|+%+uzU#aWA^x$<}zj}kafyMa?%wH%!xcbHqxjR^V)pb{XEq~SH zf7>H^4~swh(C=3)fB3a;i_r&I{LQwRf1do84?nv&`Y4OvxM9^#uYNZ1OeXpai@&~n z#;Jcfevd0RMqgy{R$-qjUc2}DH?NMq#^RTM>%Uelf8mu|?u)*~;tM)&zTuVAuKwWp z=$}};x$}mb7cXA-y+20ZWAQ219D3h7pTGV5+SrFIK6leGH#NVr&+`eauk>Jl@#5eA z=7#30=f}pe__gD%`N{`ZH~)5JY&ZY?d-Kz;B<9@FADhPF=R9}wDJOlZbLjloEEb>l z%R6F+zBS|F8)I`>{G!dBC$(JD{rT_56c%s$&IQ+8J6V45)z|_Szjf+=-E+w=_WJT) zW1TGi%KF#u?|b<2KTeDjm5fBb2wsn9>*)x@>xJ=KaZfaJELxs8FyT}1#Dc^eF|lAl zLK8v4OZmSM*ztevX1{ke7}nH?~I5)6U4s?*>D!peGj2}o6w{agcGqgre_PYBVl^NI7%-h4_sm| z$@XPN1CROwAz;q_iGvSH^x7M64>>BR?+nyW>zHHrK{iYI)U!8!oYA04N$@O`w6A&^7Jm$}~HNlA_YCj=FDQ$LhBmtNmjVtjU^os`} zkLy7Pl?P#UkC!PX68UWRn&Rp}Hf>BK=xHmw`q=Z<1Y~iPMRMO&xRNg5Zd?hEhUcU# zL0-HI^Sl`3eJjWl=0%c{98da(BEkRy6B$o!oZC33k!*m#aexYgm4=%iK?m|W@T8yQ z^Za09eYUuU#7ZYex(8nu0ciB+y>;2#Kmh>tP^LVmInsse+B#py@d|iS!mD8wWU_tP z!Wz^-rBk`M1;!P#q!XaZB9Y5b4)M5QId=oFRE{7Bq96&fpa`m<3A$hirYMM_D2cMD zh^nZGx@d@|1g{cFl4MDdR7sO`$&gH0kVRRNWm%C`S(A0ykWEEUL`70$MNw2mQ*^~p zOjS@tRZ?YDQB_q_b=6Q!P0&P5(qv81R87-#&CpC;&_!L+WnIx#UDI{l&`m=yL_>o4 zR54UTGjzi+OcPBsQ9T?aQILs5c=Rv+qPzM!qdOXXx)R3kMSKe21RY17d~eoeT?{IX znGM%EQqcq^&V-xu3Zw_Z%X}XGkv)TDtrEtgm@8s5a&SG##}8;`EB36I&x^0Zm=diC zslY%nGtYp|=i~vX-k^KPK*>P9c0S$kr^_0YLG3yVSDGtXDCrm;K|{r|Q;u>OjNcAQUdP6qH93@hR|)G-picWeFiG>l&| zB7SKQKOvb+p6E~Z1qWf`xe2TdOmRq#2&5fa9ho<`ndt^ET;0rQ+kC`{K3#W&uRCMI z<_{EUmk6Ki1gZUe-4oP)^Akk-3m}^X;9?>%$H$HR2~So>dQe^y%3F`?ez;zXYdx+v z;)-UL>Y);bDYg9UrTi}<{T>zR_YUUAby%n8;`xhEI#Bt9gQT|$+2h$jWtct3GrqKZ0*G9h)yF2 zF7@!+?;M|g@59Z@S6p>bj)9=>?l@|8y)d;F@CRy$s1ZDGUdXP$S%ZQr=- z`_F&<8-2N7{_4_`W}aFTi_eQ?Vq8md=&b26apJW2tcJa74y@^nPdH%cw%S?oS@Ajb zO4E{Zut#J4p7Sj;=F~R`d(_N`O|9V$HR7MDX^A)1HPjuNm>nP2pv78irqsp9 z)h%13%j4y`WPM}pezEEG(V^#$YL4l1>krst%6`*!o7}JjRdtTvtFEzjVg2lefu{C@ z52&4A(^z|CEmzYVt7$r}J~};R~hrYYOT|RDM zLt~dUbz%MT@r&vjhwhs>p|Q5BaeC~qMS5%kYBlQ`H)?y;&5uoA$xW2TpM7;^plRsQ z^Aiw|okE*Sb-W1+r( z_pVcR8@JoIV;c4v`pm||V&}9^+Olqy+Ha>sA z(9aHxa~pp>^!NQ2#~b6(vnO>fK4|C%3u?Le%9^Q4bmN4%ad+I&jYD5IrjMT+Z>Wn- zs2#fM?3d${V&h}$jC)HtnauW?hxH%}NhG2R^8WtUwW_TVPR_vH49O{ts8O^fccM6IPv+a=i;Lz7<&>d-CbxkXEs9&_ADsn31>qPy?= z_QQ`n{>0BG?J@a;Re$^Y$D4lk;=twmC0lO(#viOsWH-hQVqryq1kyY+>Omv;~R=*j0_c=?sze!Mx7NX>^u|BU5B;d-th-`UYR~#8c3j;a4SO~a z+I<>RWJ>LEbqCgTHO`F#Ibved-1wB*rr6LOc-0~fy;r{=HZgWE^u!0&oV9tDz^zeCFulUNE6 z92H^o%N%WGAgyB_yC;~zDNkYx_PHd&#m9d`5(snFqg4oUR5w^ye5h6Sd7Blu&P2QX zw6w1JWqcOTY3&T(`z84AV1ddP3ke%C0vTwKiA5r}AP=o;58+CEcXIvka3*Ut%MDXo zZUAP_pfy2Lu#A_uJJ=1KH3=71?QEZKEcB}llcLPmP&TcNQKgx!g|DUjwViA(XU7wf zi)&U#PTckS$S#u;`;1Gh-shdUi31N1u0Jq$)9Sg=TYf!v?+<=GFY<9h`|{@1+DF_Q z8rL{OpEdps{q_mA*|O&wrZDY|!~e4P8%qvVzH-#w_8ZIJ{j|MeY3_{`*FIpcj67!_ z?Y;1oqa&}*I41JzuN?dJH)kCGr?=iX;rZX$s}hm7SG~)fdE$q=H%E>|`<_7H5h~+t zh_6G~4S{$i+QXE#eU29r36#iL_eZct(Hj2-!a{__xo&@N3IlyH*PnF?u3fY{AS^N? zV+t}2ESjE+VMu`m2IP8}B$=nz1BH~2O>hk;uAy6)8`bE{dT+W7UPt>B)7&1G;~p2xcB# zOR@H|D*eKIGjNLfLb<~_C`C`U7asiBPXZont>-xQ+7u+WY%iKpfGq8l61!dzJ%XKf zo!0{(Kw5x{^%@A(00je|}u z+n2Trp0|N=rZBAO6uMi{(n5-y^(jp%<9R7K2~Yw837LU|;YNzy>;~2rZv!$j5VEfO z?IQq%WwU%Fw8C3)z1`!NU)+FY2TBd}$r&s+ubAznG3@OR1}qKxHh@Phg2?4%`-|+J z#+BNh>xDkT34pZ{+80e}%jfMu=qHx@Xyd~Xa3ZAX2yiCAp%vxf!L5TWU>h*T*<2o5 z{3`qIBUOGKy&nM*Bo8`D!{Qa#pcaCrq8fs64{ZV5mr%I`5h?{{_x^!2W^^kKWAWT8nA3;W# zj{ucK$1VgKLOTO*js&zv(9rohLm)(AJ>G|2DrcjdkX~=XeP#R{ z#Oc}fsP9}{KZEdDgwG+Ihj2au*#il_7mSEs7(9Coc|VW)ix9qma52Iq2*Y$x7yu7@ zTgj0Rjwf&<$1VAVFkRp}8^nc7g?V5+wz?4U#Jgb4Bw~ZL!42{5Fz8NcTvvp%z0dB; z!6yb&-7V0>^*X(tqD@qel^(1p01FX9{}JdCqyOdPRBzEPtn6d{Fi^|+2%MOG#Ows9 zN&%F6c7d>Yz=1|Jmsmy{t)Syg5c!Y%cz!dJb64yU_*0;L#6Pe?lcalLt78hzHG$ZU zb|Au(F*72OzhKQIyzN3D{)75QzdKIyd4olPXHL+U3e62zBT_IUt-GL^`4PRmf(-tc z3y9OWg=H_rJ^3G9iV)73%W%(@S|H|8UID`pDs5A6Yzh^(ebDHx4fM9q!B^zJ9QRis z7zi|{VF4e-AB6nCzIaFdDuWn%Q9&bygEBG4*JkZcK%R{~Nr~3h#5#%ox6{HjdNhQC zd_B!FTnSgh`VI-|t1OQdQ9%{iD8k#iBOIZ^*yUf3@(-;j|D>S&u)eFts;}MOx5Th= z3*|Q-JiPrkS1GRoUq?3-=|fnoMp^qK9=7d%+_xYs?StMCYc4IF(C`yL!T7>`t1!^t zkG;2^3!FpVnMmux_knP76$0tRLxP7nK;(=~q*jLhAx^Jc(FM(9K=~J9NrMG~d6$ja z`9Ap&U!VGO_`ngb$Ro@_2=N^38f`oTWg{NFKUZKIPZE*E$Va-klW?W^wbX@koo@hv zXy8j5VHrU?eJX;qpBvZA{G~pPd+J{p&*7eQ|6SvonU56FKx)s=pnqM9>$?cF?uGGx z;-1#VFh9}CsTFaeg%rOR<>hgmi!cp=e(*nqZa?(CO1J|Il*2cRfE+~T9@@;>5SC%$ z8LhQpd?D^D>sU4-J`WRZzl!wYh`2N&ektO!E7D&w;{9*&Zc4@bKjEHW6t?F*+!Ngj z<9{6yzhOjt4dNtIhUu?CeX}a!-$0yT7QX*3;u9<44+QaWOo;EGH7<-3UqI~*jPyf4#q9@CgTlHI-;1?e_ukOb;?E9p3e{`~Ib~A+Pr! zehdQ5TYxGOK6@MY1otrh6WmjpFupqyPpF9RF(N)CfP0w!NW^I^3F8UGXH>*zAiifs zydCic74c6YPU9NF?OntPkM^o*W`2%)p&XjeVcZMi^|0d+KAa6W;4i`p0xyWXAn}6C z3kol&yrA)d&I<-Fn7q)&3+=qn!3&+dVDUm1FABUU@}k6xGA}B;sPdx5i#jhFylC=b z8!xu=Vh1mF@}k9yUA!dllE_OEFUh>5@RG_)8ZYU*Wbl&7OKrT=&PyG<)X7U0FLm*< zz{?^pOS~-evck(MFKfK4^RmIqCNH<~ayu_~@Ny?FTfE%GD*~^Gydv?6%qt47sJx=_ ziq0zrub8~j#w+c-(!nd8ykhZ67q1GuD)Oqtt1_=DysGl5#;ZE78oX-qY8$V%^J)jL zcJivlt6jV%@S4bL60ga;rtq4|YZ|ZVyk_v4$!l%A*3N4kyw=HU7O!>jy1?rquS>ix z^SZ+8Dz9t2uJgLV>n5+a@p?P2ckp^AuUov{#Tx=|h`b^3hRhoZZ>YSX@rKSD25*?W z(Z(C?ywSlMoxEZ3Mi*}iyeaag#G5j2D!i%krpB8(ZyLO5@@5-vw)18OZ+7yg#hYDx zo4~h;e4E6#$$Xo_x2b%a#<%Hwo58o4d|Mme*3P$e@NJ!Zo5i%^X&%TZu0GIe0w|J-odwb^6eJi-ol-zo8(GT*82ohsj{@tr!~Y4DvU-`U1@w)34G zd}k-$Y4M$1ye06K$XgO`$-JfTmdaZiZ|S^c@RrG2ZM@aaTOGXB$y*k0b@5#S-zD;0 z65l2BT?*f&@?9F=rSn||-(~V$ZG2Zd-_^l)b@E*n-_>;w_-UFOP><2sAfM z#A#i96A@ZlD&sRM;y=TCiVGr+T2M9JFzvMCdPF|h4^4}F4WT-pUBP3+#XDfKm*ome z0}t&bUUztVJcyHDWQl*j0r49VsLf&fG9Yxcc7*X~(EuIs)bUFq|I7J4KnEe-gb>DC zN5r)eaq0}w;V?b5gZPCo-jDm~6>;Kw2qxisi0TZ^t*9t`M)G`Ro_i4AuOiRAxUVeZ zJj54OyeHX|*0QiXinkziR6L{cRuSgTIe5VVhnCZxMb8kzyqj>(BhY#hKKo4Y3>QX= zX&i4x2;Wm57b2umM@0(o;Xe@f5(4ptVVv4i8K*Q94}VnVEeNZzW3IK8`S`DflnKud z-vI|3PaxW6iHQy!Lf}Tj5_kEVRJ{CZ8Vh_-=1BhUP;UC!Uek;xJBLXEX=NO=;WqlYj$nZDrbX$hig-F9#)7j0UNW% z#wsi_8}?kLi)Xim#Cq&e@m-zXJ-j($qTc;K<;%14aGi^yCUqbmQ!q-hC6$<|J^i1$;;P3dO|ygge-mfLq=G^urmC$#eO> zL}goE1m80cb`sO6&9h?B@Gti!T&|i3`CQeNxP8W!04%_+^Xa=QE_Vldl1q@Dx z&X49t8iC}DFrLLd;qR#gwGqw7WA+2sBDW$`;dWCf z(SUcME{*UP2h1c^(gTo^M}KZEzp6?w~Y>FUUz@UE%iT_A5p>X$TQ zlMH-G^$4WIW-AU;MM9^ZD(0Z{%jK!Lcz*$8k=3{o{*&yP_n;wXeoC_wvwc6p z*$2)}lw4SGLO>}Gts4pg3^Bg$o9$HeGqE~a6SHSms&-lvk!eTzIw1qsiO37;7AmEf z3oCO(4YkNjdwar(C&SOkLE7gLsEuL#J=_zF!gvfgOgs;K=AeHGW@?}W^FVcpi2CY# z-@6tXWoDetVOkP7z#)guTDa1t{lw&#N(7p8X#SglzOVqcelgt@`c!k2Z%^J2YY`G- zy@OvCOnV96-IG-H82(&>M><+-R#q(rpz@o=yu|{TMiwIv$+ixzG_KY2R?7(;f6%Tk z<4W|LWM5|9L?c6*M8g@!2)0&t$^M6q$(d~)Lecd&k z#QE{nkq@T#ow75Bk&U|VCl-V&}IHv@bA{^ot#`pCz&RbWQS1x8A6$3&U zwp~EmuRVfw*a1M#R1$Si=#)S;z~G7be;GKP!TYP zzAGs^Loh*LIkM1MHnHRv%(f5ihaG@)BWK}C^U=2pE(KVy`**o_GX9tcX%`?AjL1qL zd&xEf^kqMy7ZmP7coXZ%k+_EI$#J+3*PXj@|4oE%A&jQ|{fuJ(5oFf`6TM`thm1qE zZt#`hHx59)yHHVeTI%PA<7Aj0=G4*o??Zl~sc%9DHWSwu5D33P64@`jQX~->`Zeaa zZwO-WEMYjgs~6Wmi$mw20lj-4SlP_@=vl}|WxR!WC4DOGWd<8VDsRw*@GOnU{k!;f zne%}BB=6jVKr|IijgX9UAHp#-rp!3u%NlqTfy)7%7E1%oWCRJ7*?MmeB5O}sEh zN$ho?>6L}LI3NV4gsjC{*Pre8g64-?1iTF}WEaZt4)z$31%j1^c@Dl9*1JJ~-7d#U zj~O7Cg%jOz=jF(fk-`3V-ys67)0i^M*8`No%?|Wdyo0H~pAvw=u}aFU_Z%@B;9+ zPxR$V?JD5>U(8W&Euj~%2Y1XoLUo)x09OkvLcXb!)mqxo0V%-uI!X@|27QN>Qa*@G zg+UhpAwW7ftF3_3FxJ7259S;_LZ{)nLJh_C5E#z~*<&opepjd-dW(G`aG?RiOWp>c zCfG^>=bG|hF%~61Ksy#Hu)bo=!%|Ai1(g@L4g1IO0&UrpFmDqplE6H`v|+!aj`R8L&|fNGJOXJ7{xgFK+rb&GSj^cW zfE$oLft&+4yMSaHq60)*_Q!mrd3-ej$?FRS`hbG#`wo8R;Rk~r9DYTnXmQ+Q9P_zdbHUMCO!jOOd;r|kFPe{y5l+qTDZzk8V5{;uW!g5&J#Hb%^YGvE1dyx>P;@aajoBva(EDmiV-#;z>Dun@?F#Q}7J_DX{i0>RVax=msy^LUIz6 z(}@vjXVhdFh)J8j(a2&%gi?2g)M8Pgd|!Hq6c+6vI|{=?CeJS5rB5fycZ)IEm(yGi zDx^0H*+dT(!$su!72J1Xa+AM-yL6y<49#uQ#gQ=s<9jXYANOkH{gBcWf; z1PI&{P>#h;!+;M+;BWCXo)NE;?9NLZEyzxNrabGX#*9gMH*`q3Hop( zB)j)DC;B`HV)KZQW4Z8op;P=O_S*hpoW?FJ9N-SF0K}_;`aF;P2I~Ad&jsWfK#nl19q4L6oq-d8M z0)+4xwTJP^U?iL2<4WUE9#pXUZh{?84<`X&VO5n_Sk!tV>P&4C6nFy4+Y9CO!iVNy zaumY-X?R9$S^>NLS-37iAekzRFT_2`OJSj;JpqdqEQO^iTCr!QB+KoO^bZAXe*st0 z_k`;YoPRP;eU01Bh z=8JYmzx=>?u!aClwA^;b=mS_=S(6 z{-WjoACYDY(QQi~R#K&)Exf9d`jbCm>^XcJ$v2lVqwpXsfNA;@^dv(lE~G&$9XWJ@ zMZ|00rIq=p6bluuN2C`o<{%N~vv5IYB%L8QRE+Rc4jq$LKv#(Un;>8Cm}4HzZ~^dh zqzcd)W8{aOO~sOgnM+PR5H^IpuI$;Ukt%n>_rtD0 zn9*tB23_iNp+uW$p9axA-$^#rYvfce3hNO$I=_p(9ENFeg_ojm` zh-qocaNC45?Fe1IP8GTz5E>}ONJxWSqXge`kY+x@5rO|PW@oscfCNy6i{V&YjC3^C zE13AcsFTq*Uq*y8ce(CMk%nX@`jK9be(z^Un^FG#0sb?mAbJBRI=U1|z}9{$u789+ zp4Jh@nFpQhq!SI6fa4+uXS^f4q0%NHkPesv@pTj@eunbXds>G{z9M`Luk@bMQF`KK zs6X_K(o(sUm+mQ0K6*!i($jm&LvgB;c$LbubWimVUrBkt51H#n2rnc29^rk2x)Z>Y zARK_8Asm9R6ybOT7oqcL_;TTT2Eus=S0mhs@I8bV5Ppg9JA`);{(%r*1wA;zG=w<_ z3PKmc5`%4fW`^ETAlW<&xMlCC918Rc--YRE&V;}49hFD-^b4O+x~pLW{{q5g2#+INiSR=N z`h5e}+YlZK;@9JP55i3d_ai)o5dN;k{oM$U9@ZRrI(YsyT)&O*BtkeRX|B*c1)3ui zr};p0hiF>}8@i`JbBW$jTJr56`H1*-qKlN4<|NH4DvzE~S_)Jq(OSaasR;Cp($Jiy zatZcyPwB#WN_8BIIkpC25aE1;s}XKTcnINngkK{35g~F6`WhF9x~RG!Vn>**sD@{8>KJ)ck`p`` z%09}5LtA7)(o`3xvnZltMGx9yHcWWZ2lP8MaBO_ z3HA;$T`Mx1qLFcAU6NEAXUG_)6`zC5Dmx`whC7r->KL0^DQK#Q?`UYc={T-~lr>t_ zl#-tVn>zcvJo2d-Lv}^o)@56?Jw0vJb|9Y-o;zK-5%tdCbn01)SIlagb=Znontxg~ z3dv+l)ySxF+V(UVy|n7&QssJZsJJLW>VP?cHrV8-X34Nc#THPz;VBX_)gMfmAea@3 z1~Z6anDszCE-Jkqbcxvi+K(Nq9$LJ{HdV(^rL--lGlK4jR>KL%uSqFtAS)%A42wx7 zkAW(Mgvwb1k}%6IunV0Fo=gIa$z-RO9_Xe{5mZsQB4rE!la2s#OigsHM#7a5jT2>m zCl5APkxB*GbUh5o?l5av<#`lCIEnz>?DhYw2wDxvi$FoY;X zwe^f+8)?Bzr!zo3Yg`(IDAZbNoeYN=8Pc!n_mt$|QN8hZ^|8koZ+3;>S4ICcGb3s^ zcu2D)Rgpx`8c*|QME_JKFsKajXqV?@bWt-s37d{J*OjaZ+tE2&NMq1d#V{4cHYClO z$WUeYsA~fNCz==5teS>{Q;#&%pD}G&wVJE67L$K%wm-#;>ogSjevE-H%D_k@d5-H^ zlMWj-6q4W%#Uh#vCA=0X51qpfL_rPI2#`&d9nx)A6YTQF1? z{(+{gDH%z$_Ha?9F0lE<;FC<^u>E9mBrY>_8#cx8(VJw_&FA_t(eR(}P@yQGn-(P3 zlhPh)kX^%Zt;wGdx{{!$O~H}UIG{^#ZEMf%fUaU1mnH)Y|(Kw%ifZnvNPh#ZGIE zX6-}dTE;gpWSFQ#$u}y}mv!tOQ7C`NOcEC3i#vhM$)}k>9}(*Iz)C@LR8-R<#=_1x zIAhH-T`RF2U`acknGqZjpPkC6iX&MwuH?`}QIr|VmsyKci6!w@kp6Ts*$pQH`nsr_ zOcpX&c*wMb&y^;Vq`t>Qk&?*{Oq$BM5v);ok-7FkgSFUcoeV+cr&2k{w6FO33ew<^rKbLB||+Ga1Ls*w%hK zqZUk89qXnhm~c*|p|w2hFlU4Zx%-qLy|Q z$FQw=+ffM4U{f=ym^M|c3mVqojOvgUt<8LKTCYQs2VzF)Igf6p=>S7$d4+C}pQZh-O(Mcv3;eToIDj|Vb zQ5af_{TQZW>W(4Eo}!qdC9T9bs2Upwwqav5r2XQdp*3guKrhuH})^aeUqHEf!WGPh!QuDcpiV*<|pH?$qBXEGJVmp>v zh4=6Uk8-ArfCE@<$JRASewwFQ+BS_omJOV)if>73qN546XzA7JVhmbEU9JY+3UksF zbji~t%h;y6(x6ru3DS|{$v8GPZJB2irkOtPz&=u(DwC6Bl6VI86ubhqo+Q_a$z+Am zt8$>X$R`Az!{ob;q1M0*2^!P@p6KeT?OCnW#>AJd%3X#u?WwMe<7kz%;TnQ9e{Sli zCF?p0x}0fqm*=~e9=5xPNOuk@btV0jq=E9_bKJrB@m6i4cPXnPf(0dz`#%d$6UK>Vb zw^5#g4}Kq*$_~2FL|54Zv{!Yolt>~imquE0(^mUVr~_YW&B$p{(ly1#xyM!qad(PO zQGF7)Z8{cNH&r>KqRlS;OODmqNd*!0tkiQzBBOsLJqPx%QJ0VlO zG*7ZDqp}pUE8H(AO8vGAei+umJVXp&p_YbV>|tS-AUC+S&Kb$H!AWoH_r zmHqIBf-#oO)RK~gytEnV^&97P5pF?1seQ&ic#aG54ARutw5 zikm?n85KES3Yn}pK1(rNe)+4qKX6QmQqAlTYZZRzg*mbmo zP;)q#MIA?)VS5qWImoS_9IDV{1GG-W(SEw4E3U4o)>0uv%`$=X?}BOI%7QA{P+rid z?j2LLmhCtIrX2x|5z{~wnbZc>kxco-P%K>FeWwFaEp2;+Bwr{DqA!Xq>4s|xs!bA! zr&>o1pf83`_X1X_2o{N@PbO)5RtJ$^Uq?Gkk2IXwp&0w(H{-78j?o2dC1MJ31I@NQ zoWQPO3{dUz{X!5Dby1nCI+`b&84pswigVc^I$*tDK?BREkOp+Zo*z;6&+`w?V?-WE ziGqVqR!dGAXltm}%A=46oJ?7mU^IgHR#YzK74&1I#yO3TV0$8T7`AC-(vVw@UL3YV zhS-9+?ThnesfEEG>ISB#0n^8>1Ol{BS0DpHV?Z=6BY1*!%!$-OgSD`F#_B|ydHqtM zCIeUswV`-Z5M@(WO@S)VUEMl1^)D7L3V!);(xD0rXiXK#6l}~}8){$cxY7h*qsN*R zG|4Bm3N*B~lJ+!Ll)){E*73|7Fic%J0#u`VJm$IzeYYdJpdA^|O(^EA6Urn+#-c51 zM~_hGi;6EJ;0Q~$cbBk67HzPxIG$gDdS6kjRXc8qDwy>)T=ZPjAv>aKow$gwM`7c= z#YH(V6<~x3umt*y4iIKCP{vC5kbq~MMABejb3$J=oEQin?U74kfK-fwaUqWMk**gP zU+M|W91M|qLFk~7%F-Hat7*wdGYKLMp4+oh1ylx>o3cSS2=pH8gVb66>UNUUfs3*0 zBP_U!3LQPkwxDx%RM2oo!J@3#o(ged^>*r~(n=a8FBp1YrIVnRwd@sWy#~*999l@= z47j2a@8Z7!%TG42WRlT`MP$H17gR`61KofL1T|Mwpo$Vb(iVAEdJK+c82;N3a8(Ih zvaLV?g2g5&i>kA=S!2VP0IQ@RNSw};QVXdh8mZ&4E2n-nP+=&T30_Vo<( zk}#8&V08d~fFDq_wBT7865o9O5Hs0;S0q-*J0O?v%;)@Cs>>$r!s}wBj(mFw3 zM#BXQvEYvmTCxWDVS~zOVE!|*Y{M8XSUn|{U1in5+yRe7DX1G}^n7rBFbSw(D%Pqh4jV1a0l zS`bVFwnI$v41I$8CV#wgh03#OnmajD*j8HOvcbMqU4yK z09FIC%7F7P4*b?w4Gg`pjxcfrr#?c6f`@>k!_co7;5Jmy!*3PoSD$t6AVDv53x|hLy`-e5)?J z42!C>jUXN#l#%$tk)F|nv|*iEBF;Yf(6D{dS(7IdHeFLVEVdh)lz>#}3|tOiezf5T zAZ9YMb=nSbitu#_0q5hv)yH#XnChjBsX$~noq@q$v{kld2NSBappRnciKh&;0pV)z ziva*uP>%`A8|utuuEV+X@a}C&tCKGlu9Y zo;AdgVYAF^R$;7}V;3kUTlLwZLo^4Z&xAJ0Ra`8?SlBjlJFb;!2aBDk=nzR%EPRr6 z7Pl|8(sz$x+sDxa51;J9lA19*L52EFx6bBBtLdi_K^t*U2o8H@U(QByO@(0#B91Cz z`4(V9+r+Wu#xIopC)Oy}i*1##>87v;qc0We`D8Jp(gGn#XqxAF);Sz=_o~P&>V-A5 zX5h?wQWKK#hNe-P7Jo=0kaRPOBU|Tka|-L@8V^U95D5|4H{1jXjzkbOU`;-6i>*h2Ve4&2 z(bH1e)jT;3F59%u=ZJ6(gBlp6(pce(zc|te8yHZl3jaSKI4lVUxF=VzF4%HjHqL=_ zOvclIA+{~JvJ8n>v@T>WiD&guJe&=ptiv#fqb6a`(kKVE1l^kne4Qalmtz5|CN>mrWPKeIxu!MG3-$LQPaNyuWQZ?unQVSRRD zgkv34R1nWy*RYKY>3yxFqDf!i#1Y^Wr2vgWjMpG=;$wP}mVtz$fv>-qV@q^pm*ion zhaSOkk7RZ@O@Sftbiul0i>QIxxOHE7T zvwzlQ95DpL21^X`1>>v9u3+1k4kDyc5=6haW!%WYu`~pTu4yg|D6(o88BGWKfBBZ_ z2jwkIWXZuwZ-Zb-5aeNYw655u%sznNLMB2PD1-KxV90dqN{;C@D~H0Ym(xFqK?CMx~=j1GLM)P-r_;Tg9wUtgmcCr9M!Bp)d}crk8Pm;<{pewSw|jv^QKg z)}<;z>k6tNxbV6*L@Zg*1AeVyp{vLpPW^QuripeMzPq|&Vq9R)RjnJif5FCKllPGW zk^m~Crd`Ln(MKmn4#%>x;A}((K~fqK<0a%0OPygQ)B{H&KDPh27CM(>w{TaPJd!;D`)qLQ#ygbsI;H1}x*Y zY6lFI%HV;7yf8Tjoo8iJH=y(QklMt3o$ND;( z6eIJQ!}67U_Mv0aKti#uK@X431=csX?KHurO%wJ34O}?fF>FX8cX7wknpL^vvt>Ly zb)$+=W(=)?4E{9Zz@0^>MnW-oH@Dp?Y1xIZkdANK%GhE66`S?V?d~uXPS~UXN)Mv# zNUrrQuB5>t=`3`vAE~ejyyrusvkQ9wkO^Fc0!bdIeoq-CsR%vOQ-oi$V?faZr_k;} zIAhw~xjqx0JV^D!#0PKkH85B!5QtS1gJ8nJ$-0*#yP7}IP>6;-B)AyZrz=YvV9*gL zxBsyRnilXPfYAy-(QL5Qs&yY@9>&aW1a(W47i0wmVg=4X(*$?&Z*wIbO$BKZebNL) zYoRCw5)6x=73)&z!4#bvkK$lf1v`;8p?mdo+e};E;Yj;bYRV{ZsNMKXFwUceqzuJZ z%G-bq^eL$RL?t-)cMxB!0zIUr;;2^-&R_6G2Tv=@)_2QOr4rOw)o4>~ftVaXJ}^{y z9(4TJJmAX23D|;lKQ~Hmu%(R@jC-w=>3uh>vMi5vA)~@MSC%x-@Fd$xsIpxXOg)EY2=m-yz}*d^bxFn4-JP20N@~@N2NVARHP2ug5Vm~1KhF@s5-<8IzK>! zlL@V1TQSGNU%3q4{@ZLWWziy1&&(e&Q1lf^+gd>;jeRR{V$-oj3c{mgJz6FZa0Bn@ zk>C--loI|aQxGCymcr-k0dT?7p;CdMhP4uVE7I0uWlSMDX`~0TJs6;ZC^AF#a&|JW z8v3i-5O^IpIj6}H7ag@8=entHzWupEX%-ffOfIwC;9%r2AXr_c2)ZC*Zyw07kcQ?? zwVvRzJFKP=YElPV`(#am1y{p99yx9Oi1GP8nFCPN(N<}!u3&m$zfvK~JC0{P$&K;= zVw<@}I5|~-C{)M~qe2FejX<3Utti+e(NiEEfpIgfr#Opn(%1cysbLI^86lddu_!=W zfDhBdkwk!F>(gashFO%%fWIQ+C7YS4JP|5#FV&!sf^4SB5QMB}I2ZNnewX~7Fl#I` zmXHTAY$k-`i`)&=jcsh6A!8GSN={A~Z|D%LANve$P|X&m-iUsJm4pf*qlnNtsuHB` zXSuSWZ%o|Qd>1MF^NM{|@C>9ATZZj5 zsl=xd;D9Kqz^xh#4O%9_j`5Q*x>IUW859|~e95rlkvliMwlwRfV+kFS=C5r)M;zfD z?9#)fFIynPqLh{)?>N|i>VoLN1@*;GQjktmtqX!{vHj)5I9a3GQ31PI@ZpO+VM zfBjPmaHrFJf!!?7wpw}+l4pF%6N_PLT{cHwu*{KZ+{8Q;WjK{#IfYlWWWCIJH07z6 zevy*T!j}vcvj)^OoYMzX*WZ5tDQ?&&enp)Ov^Z#$86v}V*G(I$?qCNpXhOy{J?j;2 z-43s(+B)lDM=^XLBm?}LBME8iRgOH2G~XBA$7Y~X$&;dVsP{IH3RrmXSJ*8B-7ZlS z>lbYKEzLyc{yCCg19$^NSatW$O0o=ZK@%hq#zeAqLrwM?N4^!M3d)!$g5`!iBXCr8 zAppax0i#T=V6YNlzmTS-HA%64$+cB4K@xo-esmewa0s_!6aLl^@-o=8`>WyeL1jn( zOD4MnyfePn+e0TT^#b!4YmT;P0ydRHTS-(8%!6dT?$3vCUisx&YVn0SgQ0a;6sOc^)}HdckY`gh#t zIFt_`p9*QfcYn40&xc^Q&tbIZH0vyfw``H|Q?oi|9aWv9`b3_yaAN|!k-_C;;Dan$ zzvn*xZ*PoAp7g0T%x4T|4=S3Vds-Tpih~0@>kr&aKu7-n+B@$c%c}d%!+Wn+vUjVf zTHCw(k6r$Qs`VB%T{nl?+CN}8NURXdGPCgCwr?ET(_z#BJl=9GNFXE-AOy+@Nk~XY zDCcAaD_hc9Rt~mu&JpGP{LZ=ezWY-5>)X>K?6qBjo}u4)=bn4Q@BDt>z~Bv8ESwTP z`FlF;Qpo~J_^q>7`K8btgbh`8aS^1Mrm;pzM8Ob z9CbWSVru_cSlY#fq6H`q$-MU6jI0#X~Qm;+!I-4jdw;9$QGRyCArGOHdaqTJ8b4-fYHD7RX|TZX#t zmnE>aAL+vT=o}v>p1XR^P+b65}Y;g^JT@qKK zgaLmVK!%&BpLA@i=+6LtC2dfspPnrs=Vsoc95O!dCl}f@3g7v)N@=wKN*hTD z$~QJS-VDIJT13Yr{#nOvM=7AqoazPtCM}q&`#UydQIASPf!;ti%}Im*e3-G+Y=g;l zUse7Ix>1EN2iY*_u2#F1a!!)UCUW;u7@@ytXS8-~U}BN$FiGEmWhARi2YDWnml2!> zpY$6UtzS<0g7ztVj2%*I6}1oIRvb3@1r~`y;LIW6De494S6vGYsDgl_AmN#o2+;tv z`L)ilkFFejI!tbPwr4C?mQcZ{7+V0K*-8sAI|-2jk<@SY(p*i8+9>20WJN~AOX%5f zy#lf=bb;UM=N#?b_=*gHNeix}5#EqQA!`w)J=r%f*DNGkUE32#kX}ii{x(}5I}hcH zi;YPBrjj|zPy&h~7aCgZN_AIV*ZZ1;8O!aU z&vJIOeyKj|^&lIWpTj%R%68Sx4Abrsd+|x!Yk%0*ikD zR}kYme&&X)|G_WR$6yR+J&&D$ZGf_Up&r?ja?9v&&zuYsZ_oB~po7%aBR5J(*{Mg( zJLbX-CVKU`nnK?}F5voobwonefb=GJ6fO~{NZqin=295`To=3?)`Knhgh$W&Tt4YvOZu_-PENOo*yn-2q?rNeMKVn=H8J0U5g`xmCOv+ zR$W07%0vn2vShUZNudwwaXpPh934E0FZu(O*jZgta<~$uC>eRN)T)Y7-O{^jbQP0l z8$V0U4txN58(M<;p#=<0U016QVHEgmE)cw{C?xBkZtXI<05+X4aim@!a|g-QZCzUN z(eH{qfQ$juHiXI4SJxEbT7zR$^0%!>UU|)xXQ=@8zFrF`q(G%2P_tJgkP;n>nW>7j|BGo-EKyv!4 zryt1Iz_=@@lek5k!BQoO@{FFYCCc!5l0@P$wR`O*m=0m5QH>C?J#uGKr2wS}Q;qp$ z!-f)?s}+(Y0pPBl+1n!GiA*}H3Z(P~MTTd6$)u+)=10kubieK!QD_m;`IbQ2*g>y>!{^o_chi)47fC~H<36>xh)E=& zw3M!({WiW0wco{#A$0fuSg+D*r2>VB05rJR)4OhHx$4=yF$iIM6ZKCnU%kEs=M4KZ z0P^Nf!a^W86XZGquW1}c>aO1T_1v1=*sDem^2_ltb{PWUUpUCguqMFJaH_&pRnOUb z8xSDDw1YRaMa?rv)N`jkOoV0KmZZ}n@~0=|RB3*oBNmXY451*Z;1KMP;CWt$Mkr<{ zs3ifd+WJE^bGp9S+=0>v@VwXX^K=tiBmCS5g~m<1&r5WB>`%u>IFTa#hN>;d=#3dv=i0M zL>E`>RSH`kbP_K5LE!T|Nbjk8dV+l2w{n*UlN8A=G)4iJaxYRZ++)Wga6AOQ)Wc9g z1DdB^bb2}#aA6@32E&fL8nps-@9Almr*vadJBXRY30Z0N;?vVENK_zJM1Ho9k~S!z zm+WyMOG)0rN2g4NnhQ7G`+7H-xoV1h?QM1MCz{MFw3aU`tD3t3>KN3?#sGdV!$l1*b35FVZri=)XTfH0&*^cqUff=O-2`2 zy`oDi(8@?-aNj|n3=ua^y|Sn2MH*HEk~h3!d2^ZSMtrsW8@9G+7fV43!C-W$Va`&e zSFbYn?fOH$#_Iv2G|oNRYD%`7j7keVEs$J9K_*kL?p-HyDK?d=YAPXvu!1ox;X7w& zx&_HgAEihMwxXnmu>oGe|7PSkcevWwPzS002yi$;%%)JU>4~&i6GD^M8^5(rgBTGE z^F%pZKo2w|Nku0>wX8F$fwA}V9@c`qN=im2Kn}>2>-VA;S>YRc9o0%=u#1R<`LSIlG@Ph6_JnNf82}yF zprJCpe$@s_rYeJYiKOZ@d<-Me2iQ`k+<(eky=lkAf|V0<#3~(8=mtXxIT1j!dh;2% z5kzd+5vC7eQowp8XnV^XeMQnXDjlI{l(EQMs<-ZGDxIDcik?FWeimXN%u~ls)!+2A zq-1r6(r|+2J@ErZd8Dfs7l9WX-P)-3D|3~SE9>;PTmPD@5>1xh&0Plp9)FQQX_w93KE(1!h3{&Cy7V2ye zv)?h_$Fi8rbxAIWygX8$>YaK?b&xPD5k(IX{O~auC=mlwf7{z+a4H2LBN-4*1(8+a zHKvdzZwZm?>MhNb4?sS1T?AdxT#jMO$64f3zoY-}(s^=G?IAMAP7p|d?P-*DL}3n> zS)o#4^O1QZ%1MHfuO^52ZvDxT{@M;@r=}S`1QH1(n-5K2g1)R&ydlSZPw#*8q{9-1 zZ5t68jdZPCI2!0vt0JT0_lHu(8QbuWHpiIE#dc$K!G*+$az65z@FBp{srUA-lu3Ac z71w0uIqw^0>vSb_Z@OzPJayDhPy#@>36&)Eex0V-&uSS1p-(8INw2*R^g5HPECdQ+ zNTbP|kQ;>y{CB;UbWF3upv(to1-)ZY|7dL{tp#2q)p>!{Nr94$2T&FIiVt6z`^N`+ zqRLkB%XHgIk08F$+8UJ}R=e@mw>KghK?c)NuY-iEJlsmiLFgq1Cn8V_Qv6dDutDILI!_R*>OsAV8zERY4@6@j$@D}vdT`gBjE zhHCScO3`Ope}>1Ca4)vLypwO!WZ>Oi;@mnSU^r1~wm(2+X zW*k|Or#{=eYG2>eesCG)z&O-1a9kcrkTq!rwKF1KRiB$NiG~wAVA&%y0VoL6IkhskxX(|G9pP$jU;RHw6I7h)cfii*)2`m2# zx^JVC$FC>&`ZcJDX^1umP`T0}Fq6Yw@*MTWDRDwre@-rngeKYni;V`4kr;#)VhSQd z_@#YZfF|yhoONFO<=#4PKQOoD;rbEY%m3KCP!xboC_KV@(!XbJGz1=)G-I}+SD3G% znA(DRX|vGew*rA1MoWlW+`b^3f2AjqwPB@7S-?!xr&hzXnd3`GennO`Ie@08=oJe& zsK5*jB}r&72$^PVd0#!9r)BO^=qFq2fxSmu*jHcE@6^{LLyDuyR`~h0=zGFit~fCO z1mIl4u1kDU=vnRt>g(O34a!(tKf&?wm?=ys^$k5E$9v(zL=l_6rVq#tqsU+8h+Cqs z0%GZ#!-C}u#F~Dv=0%N74YRohNcvD#lf(r##2{AR>fNE!diF@6>U88{=E?EZ(vA+? zY@`nGW)n3Ml*zxX2Ry2uh__{jn&Z`;R(7Z}kF9wnl{jKAG;tkWsI)xTZr^!8JR+hN zL^r4 zoFEnkHAnrhTQgkF<06I5h_DsfEb2$Sgn=>P2&c9tq8M06a~o@i>^kU_fV94Kj*=^U z&UQjvREqHZg6}9PsL21Z-j}LNo>u8yULOtO9|noL9mr37CF`%cBe3OKE(U4>1B49i zsh{*FsTFf27{<|@qKZnM6Q4*d3)#GM=e?hH4SvZqgdiK>Zn{`2!2A4J*OrJiQM3qh zuJOWwD%JfxQBX25u_oE-a%3}w!sU}|GJ%*j0Z=X5L4t=uCXNE3`uW@+g~n%lU{Sfs z10jbG{|j@x=!7#g?_t8(*ZF3btGeUQOlAQxJ0&}GC4YMUo?Hu-+w19wxZ!c`C(p6o&L9(>1_I6p2L!P8Jt3 zOz_XKjig7Zm8oC#UM2gw-gPz_2{*c)sM)X+a)LdkQ`L z^(z_gNmar$OJ@yVts3!xjBRmZ2q>lN0Dl>@mvY9 zRRSCeOw&=<_DAYvWYZ>!9os2;PLZr`cEo9DC}MSo3(>ED1Q%L9lHSOesq6a9kx`or z#FuNc0h6#jY|??YRcTsqVUbzwQmzMjfHIu}3LF@5|Nqq6hQvTrPRAc(zE`6A+Iqc5 zsxd#jzIqbvNLU=zgW$xMg7HU^imRpTSn5&zKOz|eSh{&lTk9u^wax4Me?TeYpz^FW-~so;{2}8{$$wF^nRp+X$@{=w>GDw>S3xlX>C^ zD9h$!`XVugRQmR6<^LQa;UjKKVU_N698LO5m$$B223b-m)@YX!i&q;`Oo@>c!o9&) zkL^pIy%ymWC!@LjR<(2<@Sh2PpqPXQZ9^(WxesL!byL3s=9%)37cmPc2XL-(Pr11- zC8=o-j*>498q4NJ!S-ic2;HnC8|>4f>yiOzBeX*dFDEGtq2+OXk%pP4C25#~&Q&;* z0OkbiWrf@e5a78*cV<+(d4`z{p|L*vxa{c8Ac{j;#}%bvWP{YLeE|tg>r90H5rtr$ z#}Or@jbfGU$z<4(R7BPZ0K12XIqGS*^<}e~)(8rHATp83H**9b&J~AlK*&YY5x*EQ zZ~|MX9>0ecP#PCDDL8OMdI(bhv_Lw#y)Q}5xrPK40!lb1Mubxnk`2IHaHXaW1Zqb; zq5p@YTeIO8-qAk@5HgV`!c88IQ}{c@*ni#Gmy#;l>8Ai_wM^BjGtu!|JJ~4nu@d@6 z;oqfhLsbhO4knL!;sGqR%px;sA$rKB&uuPNPwMZ7^8qA=f+P~O=xvAyp?Y#(GU>5g zE4QFEAjAVzX!~S(N~|)R@FDVt#@AY^>J3;5QOT|1NigYF~73*>sxI+&xj8;?Ko#Atx>+5-f@&R_IX>1CAC^+EP#J3mFizK%Jm%J}Q(W z*}D*AT0Tx#JbAw%Vi>}BE}~d>)ad-TZ?Y(GVYJ~g{lqzg{p#s`?ZMFMV_?1~FkfTa z0A#hcD)NqW7dRMdSX8uA#}cT6dPZNQt~<>Hx6%hQbAiUwfU*dj9=u&Si-1-?v;W?I z2@_#4ibLmF{WF3=mYfFKyu4`CWFfDV9QMH+LR;@p#~wE z4S*G?xlrBJPh?8ZY;E@L=UDgyaZZ_U5!p_3nB>|KW0OklB*9_>4<)})&*|^XoS&pD zPOgO=utz{>Z2)5FV7AyixU=S_!ynSt|upde!s}jIY$h)Vm zy1Orm*CWbRQo3g4FM~Rjst?G$vyKYl*^;cxJ(Z#=radeF2Eh zev4K$Cln&6Tc@g1%yu^m*|Pvyq}w`V5yyHQtEs(M5rwu=y~hoKl9Rhk9ZEOo9lY42RUv#IP28 zPpV$Dm%*B(?$Bbfn7wT09@-^Zt0fjknQ6Y}dq*Sl&pJDz) zmHGwqM9~~;uB>GGfV_B3|DMsHk(=mvX6kovOW*{;3)H3DN8n+Di@>DewOtY*ATlr( z2aXWh0XCzBdR>=RsD1(a^+&`)V$803LY) z`s8@wpi^(`{{<&Pb0Z8VU+H|8zR?SuxwxT(8|PXTlkzvp;p$EM>O0AQm*fl7{E*B6 zgzqDBk7Rjf# z_I1T#TH=T<<;zk`Ks8L?QJYFdeI*A{muz6BxVU(Jt|c*~05D8TLMSjfCw-OupUd23 z>v*=#127# z^-KVL5`p~aZ^`8E1 zGrBXf3U=?3EP_3DshZx{ACd0{XdVIR#~13o{RSr5awM2=(f~ps2{CH&IPszbsovKY zYp!Vvx*1s_GYAz@CB`I{+#l`$oW!Wby}z%8PjpRSx~;QR>tI>%;UebhhrK}QhGmRw zh5CR#W2Sxaco8Jxk(V|xcc2+WxKK?(EDA6nLcXA{`!~*b6;1y`Bcr~DnK8C9r_Ty7 zh!~BD1`HYifCbbC`?rsGr7mbqJkqWQ(ZjcmV)EPvjHwXitVjYiShX<{biS)T)PL%D zr>d1R(Wfy9}C)*|>H9OeVO9@Id;wu1Cz% zT3B6T92?uG`a&aeBBZ8sT^09&FbvVB$uh)N3ebz6*iTpSQ;~~?hXB8nI7;3@TaWBJ+UV3al$9wfvd>%k{FH94u$*f}CKu&Ft=lT3Br23Nkiyhu5#s zTaXCZqpn;l*~`aj3=snRG1V)O&LmzioKv6ey3{BGa^etji!@vcap`kiTcQfg;OEdk5)ULvS=5oFZVkW@!|q~G8F1aijsu~kN=ha`4Y-{hFF;ws}$^33g>DoJVM=` z{RvlL`9ZTa4ZjW1QiQuxc$x?x0Si`Noz+GKl(szz_#9N2l(FAIqT~EyR#5#d(Vs^k z6t&8)>GIr^e$-%V*i@SQfs~9Bkqq>)3P2geRbSWjqiRnaeGI@%7GehS$;pk%Ot1+e zP@Gy&&mi03EN`)ut8eH7a7xdb5ehd?ET23nI8{AV2JQeL7+Xa#&=hgCBvjutHTWGy z8hc+EX`%fvL`cOTvxwre#0Uw6tZx~p&<+iFrh!e67b`fz&s`GTfI;mqp}m# zgbKVkM=^k40S+)~cHcEe=FHF9*2rWMcj|%~8AU2ltp>Q?7vTPsR|Wz%*~B8d8e$B1 z*`F}`$+2>!EUCV4U{I4^+`Mb-vgI9d@aXX^2q>v$5t&fja-gmJpuoB}f? zAvvjj*cX$&DgCdz5knqL#luWuNidSoyqK@J_2T^!s2}a=Te3rP5pS* za<0F9a!UX*1Rsmgnv6H}v`GC#A3!@if#aKjTv;v)@!&MM3~kHCBXKzgHb)h=fY4j; zMt^E9zB{~_p!H&w1P@6w0!@p^!ohSxv7cssw)aOXfujN8@j3I-TXx+w0`o&!F)vr1%1rN{#Y>J}5L^$_YPrvTcNRHSiY*x7O?439l z{iZ`Bs5s>~<3KTVa4v`n^;?be(veGGM$+~wOU2qLQ4@rbOe=G{ps2xuR@V-yREvq( zO@6?{$c7L~8eQXc%Qd6ZaM7AXp!-oAt14yzItm$FR>VcfQX)lq-9VSy+m>m(!No<> z8%hNmQ=C`l3Fj-fUY$S27M@&LVp*~61?rIlfl>PADj})EnoV(R&a;IZiSYYDQi%Nl zx2Z=Bw1kkMNgBaJL=Wc+YvDj~tYc}*+(PZaRo4%M1vF(PHalJGNOp*(XDe~D0C4Gb zsre?D_hr}-Sn7s>#`ex$PFRuZ)1-A^b08I5yTPLJ|K!otqX(Do+()m!WI2%ptYAy-J^KeX~LTo}g?wttM1s3myVNhDmdyvl6OFIwF?-{_0(u+VgHI9*Ie2xQQmV}MppLLyAvJP<{QvEIg& zS=OqK!hAn~Oi{+9R6Ini)Z+#k#cY=1%)Y9>yb9d`x;*Fn#@R(!-efTlo+-f0-?D4Z zDA>S<;ZgwLH{l#mw+`;sH*lHll8objnh|Pf%~w+I<0dVpTSwM8V`p`27*$tRW|!a* zd(ryF9G{&&=xE!Ma)f(G84#VSOx-qk!2_h9WAhTb142;S0zh5h-s-Ez50;o7m8;yo z#Cg9<7Ykj!6Ki2G-k|#R3t?e)18>hnQ!IRiW%H2{=9DHbwemh~8eqSgo$u2#= z1d7dN8}0s+Cv6BTXa?j<$tGz_Ny7RhnV4=~iX8`k&efCtxjzxAqQr;5sHm^RSP82q z4{q)4I=8SaeyGkJ&o#BWyv~l(P+q3aa5fUmyU+NCT_KIjl$j}#deOM+QqLE1 zc_AnWZlom$cS_4o8$4m2(Q*D|jn3FAf{PX4HNnk=6el1L_4I$8GlJEx<_vgh>)R-c4{I~!n047j)c=kZ^D@=Z4hy4ULCorM;Wq4Z!AoiVF$b-xhoCG@pS&gDj zsqQ+H-;VV|lA{0&v6&k>`HklcI#*((;0(u(j2;rKgwg7`gY)H$NQS5-@lrWbDDZugO1{yj(TzR~L}~ zuPC%#$1y^Kp&ZIceSZhe9gMp$&kTgz~mU99(35J*|tJjp*99rEc# zqU{;N%tGN?y>!sHAL%*M$*7WyYY5`6ARS``WbM_<2Eua-OwMOG=|*${C#Lzxe`Qt< zRRnPzC!Gm?AVHG}Jy`Yfflze!*#3+nD7&j0Q)!KCjwBEo>J@|kC5?|v7!rrvI>AEi zB*;9e*DCIWc8W}vjW~o*5|Dd}omUPTn9;~`AS(?ALc3OJbt1b8Kev))DLUY1?4n@? zG|oej0Cwf823l`?`YzgP$C1`NN*Ll^A`O9m!IYC`P-hfT##ax7rn%!*YW7Pfx`F}` zB~v)Br{qdlrw{Z35@miJFH?iw5CJ}bb0lKO3?Oxd7l5r^b3k7dg0DnsLQJesWhLqO z+JPWXo8=&Ke0up*b*pME33naEi>kG<7$YDaRP|v zO?o2Fe#mN=*Ee#cAcy_H-a8E}p93PtTq<_en@`ijw%28pHKvfug) zxezM9=ufyL#kmBkx9ZtE`S^3bBd5Mzj*kxjM{2=Xzk!ScX;7-a8T>hup~^UV zvd8H?Xeit_{E7JmI3WW&mE*5NNey(~I|dDpoi(?%oY~G1`PY%;)XI7SpkcFGK9*?7 zVG$@g;RWH~FVS};0c_)(qUdvRTIu@3>FnvuK&zVf$& zKjYJFnG3J_)szwfT5q`2Aw~iULA`76pO-Gb^ygg1nPFa_kzQ>*E^ab`HGf4nqVodV6AaoA@-^Kue?HgLbxcYXB%6RDUR zo&LJATwYvU*E4Hzu|Co#f|VKV6JJ?Ap7Ox|KqrG2`@4}{=Yk`9t_q8tq>Y)58^%!m z$sl}C7fEGm16phijRBe1;RW^IU9`c-Ttrc>s=SuVE5*w4njBXtj*jf%U`9~kV%Dn< z4KxeDY%xfm;mtOMVM={$3wP+|Te;)bUp9AjY=^qCKDYo^0K=r%gMb~^8vrHh!+O4% zzO{Mm!9{DAtx;vPv{Klb_0>lPB9lM5-`Rj&U_ezHo`HaG?Ak>dX6oV`%@GH$;XTK_ z#|zb`2S=DtQNAKR!RuM`gB@O2{gqsC%+)5U;%W4%j$^xd)%Kc14xkU<{c&^PY(z`j zSD$ItbL(ujO~{e0Zwpdyd2{KniVcL;Rv>-|kVV?TX$$FEiHL1<=6ve+Z131L>sKbHj^bsT zq4-nFa>Lh0qZo}e)|QtAK<@_&`msJgcu-ZC{erIDwht7(H%!df#=)tB~|(}JZcPR{V?#mo$;$S)5wFC!81SQfzX&CG)|J;irg zbk_X<)f$Ss_=p7RD|^qZ3b-PLP0O)}MGCUcUp!nqzINzH5M{&GtyRJ+VIuUUK>#Ij=I}`L!@ut%}Gi<|vMVX~t0J zq4&DB`ktP9L)$JFK_|z)Jh|p#cD~C+5l+sKV-ncJ0xn#V>K!iTZW73wDk-ghxjDTI;CxsGf@rheM7@03Tl z1A{yVW$z+;q<+@1p&0iFtbK6*L+4OV#rr!pZBnO<7mRB#CX- zR8_aJy_)K}QHZjdEYrYCQ1HV^Fe4AbGX2Fqn}css!j~oU!+~3bG56!bO-s7L)ief}aqj>e_{lC4JIp1R=RFNU_MEZg*YRmZ;gW>=F1(Sx1;is7H2f z$wh9=Mzqg%$%4sN@~EyYB~k$)#Sc{xTs<4=^<7)CUGBUo-czyYp<%>#L)Vrv;UiJc z#X}D2S5c}*cWue`+z8)ZB53vqNO0=Lt}Rgkwctsy1%?pfP@;Ow!hJf);TcH1>@V|$ zEw!}&JaJTo4?n6^kFVTFPQu`xGxp+%(H9^Y1|ikAq4_-a0p4L!)tC_>iVumG1dgL_ z>iVvH-W4t}0TKgX0#GcuxqC}&xYP-qf{e3;>Cxjlw}fmsKE?%r5ih`_McuM+ubDp; z{b%m^GYm3kq?qd@mC025;zQJi;Tk@{7)c7ET5yO+x zYZ+n0XQ{_8yv&SXO?R4i1s)!edERY3?PC~`tiy)@1w5i1`fRD&yFNT&6IPF0W&~$z zCr}hRx8#WBq3`$>gjy+l-?3mMYHB@%xhG=1ku@GA2RM=*w0ySR6cRC&_aIYu{&VQH z5BD0ANv3`Rs(}p76T7}OKvAG^P)18B_=6fyPwLu|FjFwN$QVkH{glt1+_fbR7sQ+q z;X))==w|9EU0ae0d6Xas0PQf2#WkRFOLQfJcSCLqnZ6Jwfd#ENZ!i$^9nji~r`Cqt zWsj|amwXjA;No(|Zb`}Q>0KY7fXOKaOsw%BrY@+S(X}PVBU^=Y9O9XbY7(etF8q~L zLrlD~hoKlX<(YFpsL#64?(s?Gd8o)etLtO1<(EDPfgHVh?oyF@_Ch7xXYdSrc#xJW z$;93@h1@$erA06aBL>4nhf^F&PIXt;2O}sItr5USAdws*%I7TnZp4Fg>Qz>lah<@Y z5&IGK+=YX1k)b%p%^J9sT_Tc3<>Pq^f8EXlPO$*1vT<$f<$SMu7$cEItBS-9a0Fxq zA!2yI5`g#Iy|A+bfUVgesm&%4TR90*Fxec3r_38)6*^vRsrnWY>T3f-tj3VJ@~^F0UX-na1JC2{52T6Q1w@6SH#oF%C{V2F59xWvWA@BRMSXFX_f zV?9r{lCvKEd*tTx?X1|?>^*per15rgyf}MsIdG-3{vH2G%$1A$Pt5b5m?kV<--Z@XY3U4;HPrLu9`HA0*;CDF6Tf diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v2.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v2.wasm deleted file mode 100755 index 4227d55e110bb768e89ae92684559db9feff873f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371663 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

    nxK#{#54DIJ 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%0D6CZ3_{>1nk2?Z95TK^ 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 o{G~1Z4r>1CT5*0?ZtUa diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3.wasm deleted file mode 100755 index b4b7679b8e1a345ab7f205d46743561096c05506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403133 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 z 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 z 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 WA9>^uj!IpB>&UG{%I+xUDgOtZMS(p4 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3_logs_only.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v3_logs_only.wasm deleted file mode 100755 index 79976b19b286ebb31f6b504ad17e05107551174c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521746 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%0Ap=pdy<{E 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

    mdRWMXBR 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 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v4.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_uniswap_v4.wasm deleted file mode 100755 index 72232d94a79d6af1df16e73445ff4edd65ac7fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530694 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 EE9*#?&fU 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ⅇpt?av(m{!VSF&DA=iZBe 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 B-b4TZ diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_sfraxeth.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_sfraxeth.wasm deleted file mode 100755 index 007327ce94b5121efb730b0c8f1308a4a2def90b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397014 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�m-y&NWH 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 diff --git a/substreams/target/wasm32-unknown-unknown/release/ethereum_ekubo_v2.wasm b/substreams/target/wasm32-unknown-unknown/release/ethereum_ekubo_v2.wasm deleted file mode 100755 index ea3f37dac2abea3223fbf93cfe61c9a3f014b0e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630848 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